uboot移植(九)——移植三星官方uboot(三)
2016-08-16 23:06
162 查看
网卡移植
网卡初始化函数的位置在board.c文件的baord_init函数中调用了dm9000_pre_init();这个函数,而我们使用的开发板就是dm9000的开发板,所以主要是移植这个函数
三星版本的开发板smdvv210 的网卡是接在SRAM的bank 5中的,而我们的的是接在bank 1 中,所以根据数据手册对SRAM中各个寄存器的定义进行对应的修改,修改结果如下
对应的修改对应的宏定义
(1)#define CONFIG_DM9000_BASE (0xA8000000),这个是网卡的基地址,我们使用的bank 1 对应的是0x8800000,但是实际上这个地址是不行的,应该改为88000300,原因可能是网卡芯片内部的寄存器本身就存在一个300的偏移量,所以要改为
#define CONFIG_DM9000_BASE (0x88000300)
(2)#define DM9000_DATA (CONFIG_DM9000_BASE+2)
改为
#define DM9000_DATA (CONFIG_DM9000_BASE+4)
+4的原因是 DM9000_DATA对应CMD引脚,因为端口复用的原因,这个引脚为高低电平时分别是表示发送地址和命令,CMD这个引脚接的是ADDR2(地址总线的第二根( 0 1 2 )),所以+4是因为4=100刚好对应第二跟地址总线也就是ADDR2
将更改的代码同步后,编译运行测试可知,开发板可以和虚拟机ping通,使用tftp进行下载时也正常,至此三星官方uboot的移植已经完成
网卡初始化函数的位置在board.c文件的baord_init函数中调用了dm9000_pre_init();这个函数,而我们使用的开发板就是dm9000的开发板,所以主要是移植这个函数
三星版本的开发板smdvv210 的网卡是接在SRAM的bank 5中的,而我们的的是接在bank 1 中,所以根据数据手册对SRAM中各个寄存器的定义进行对应的修改,修改结果如下
static void dm9000_pre_init(void) { unsigned int tmp; #if defined(DM9000_16BIT_DATA) SROM_BW_REG &= ~(0xf << 4); SROM_BW_REG |= (0<<7) | (1<<6) | (1<<5) | (1<<4); #else SROM_BW_REG &= ~(0xf << 20); SROM_BW_REG |= (0<<19) | (0<<18) | (0<<16); #endif SROM_BC1_REG = ((0<<28)|(1<<24)|(5<<16)|(1<<12)|(4<<8)|(6<<4)|(0<<0)); tmp = MP01CON_REG; tmp &=~(0xf<<4); tmp |=(2<<4); MP01CON_REG = tmp; }
对应的修改对应的宏定义
(1)#define CONFIG_DM9000_BASE (0xA8000000),这个是网卡的基地址,我们使用的bank 1 对应的是0x8800000,但是实际上这个地址是不行的,应该改为88000300,原因可能是网卡芯片内部的寄存器本身就存在一个300的偏移量,所以要改为
#define CONFIG_DM9000_BASE (0x88000300)
(2)#define DM9000_DATA (CONFIG_DM9000_BASE+2)
改为
#define DM9000_DATA (CONFIG_DM9000_BASE+4)
+4的原因是 DM9000_DATA对应CMD引脚,因为端口复用的原因,这个引脚为高低电平时分别是表示发送地址和命令,CMD这个引脚接的是ADDR2(地址总线的第二根( 0 1 2 )),所以+4是因为4=100刚好对应第二跟地址总线也就是ADDR2
将更改的代码同步后,编译运行测试可知,开发板可以和虚拟机ping通,使用tftp进行下载时也正常,至此三星官方uboot的移植已经完成
相关文章推荐
- uboot移植——使用三星官方的uboot进行移植
- uboot移植(八)——移植三星官方uboot(二)
- 嵌入式linux开发uboot移植(七)——三星官方uboot的移植
- 嵌入式linux开发uboot移植(七)——三星官方uboot的移植
- S5PV210-uboot移植-从三星官方uboot开始移植
- S5PV210-uboot移植-从uboot官方的uboot进行移植
- 三星官方uboot移植实战1
- 从三星官方移植uboot
- uboot的移植2-从uboot官方标准uboot开始移植
- uboot移植(七)——移植三星官方uboot(一)
- uboot移植-从三星官方源码开始移植过程总结
- uboot移植——使用官方uboot进行移植
- 2.12.uboot的移植2-从uboot官方标准uboot开始移植
- uboot学习笔记之uboot1.3.4一移植
- 飞凌OK6410开发板移植u-boot官方最新版u-boot-2012.10.tar.bz2
- uboot移植:uboot下的mkconfig解析
- x210v3开发板u-boot-2012.10移植之二---如何学习uboot,掌握uboot结构
- 逻辑概念解释:以SD驱动为例去解释成功将驱动移植到Uboot这句话的含义 + Uboot中的驱动和Linux内核中的驱动的区别和联系 + 如何在Uboot中实现某硬件的驱动的逻辑和思路
- s5pv210三星官方Uboot分析(USB启动方式)
- 朱有鹏老师课堂笔记,从uboot官方移植到s5pv210上(二)