S5PV210的u-boot移植(2)

2019-01-12 13:20

三、 修改网卡

与SMDKV210评估板一样,GEC210开发板同样使用DM9000芯片作为以太网芯片,但由于GEC210开发板上DM9000芯片的片选线与SMDKV210评估板的不一样了:

DM9000的片选线CS#接到了S5PV210的CSn1,也就是SROMC_BANK1,由下图可知访问DM9000的基址是0x88000000,DM9000的CMD接到了地址线ADDR2,访问DM9000数据的地址0x88000000+0b100(0x4)。

修改配置文件:

vim include/configs/smdkv210single.h

将:

#define CONFIG_DM9000_BASE (0xA8000000)

修改为:

#define CONFIG_DM9000_BASE (0x88000000)

将:

#define DM9000_DATA (CONFIG_DM9000_BASE+2)

修改为:

#define DM9000_DATA (CONFIG_DM9000_BASE+4)

修改板级初始化文件:

vim board/samsung/smdkc110/smdkc110.c

修改DM9000预初始化函数dm9000_pre_init: static void dm9000_pre_init(void) { unsigned int tmp;

/* DM9000 on SROM BANK1, 16 bit */ SROM_BW_REG &= ~(0xf << 4); SROM_BW_REG |= (0x3 << 4); SROM_BC1_REG = ((0<<28)|(0<<24)|(5<<16)|(0<<12)|(0<<8)|(0<<4)|(0<<0)); /* Set MP01_1 as SROM_CSn[1] */ tmp = MP01CON_REG; tmp &=~(0xf<<4); tmp |=(2<<4); MP01CON_REG = tmp; }

重新编译下载运行,用TFTP下载测试网卡驱动: SMDKV210 # setenv serverip 192.168.0.21 SMDKV210 # tftp 0x40000000 u-boot.bin dm9000 i/o: 0x88000000, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 00:40:5c:26:0a:5b

operating at 100M full duplex mode

TFTP from server 192.168.0.21; our IP address is 192.168.0.20 Filename 'u-boot.bin'.

Load address: 0x40000000

Loading: T ################### done

Bytes transferred = 278528 (0x44000)

四、 固化u-boot

虽然GEC210开发板并不像SMDKV210评估板那样拥有512MB的NAND FLASH(只拥有256MB的NAND FLASH),但NAND FLASH相关的代码已能识别出系统只拥有256MB的NAND FLASH,所以NAND FLASH的读写应该没问题: SMDKV210 # nand erase 0 0x60000

NAND erase: device 0 offset 0x0, size 0x60000 Erasing at 0x40000 -- 100% complete. OK

SMDKV210 # nand write 0x40000000 0 0x60000

NAND write: device 0 offset 0x0, size 0x60000 Checksum is calculated. Main area write (3 blocks): 393216 bytes written: OK

现在已经把u-boot.bin烧写到NAND FLASH了,把GEC210开发板的启动方式开关打到NAND--BOOT一侧,然后复位开发板,串口并没有任何输出,u-boot应该还有问题(请把GEC210开发板的启动方式开关打回SD-BOOT一侧,否则后面USB连接不上,请思考为什么)。

五、 修改u-boot

由于我们的开发板并不像SMDKV210那样拥有16MB的SRAM和电源管理芯片,所以我们还要对代码进一步修改,修改底层初始化文件: vim board/samsung/smdkc110/lowlevel_init.S 使用条件编译屏蔽掉下面的代码:

#if 0

/* SRAM(2MB) init for SMDKC110 */ /* GPJ1 SROM_ADDR_16to21 */ ldr r0, =ELFIN_GPIO_BASE ……省略部分代码……

/* PS_HOLD pin(GPH0_0) set to high */

ldr r0, =(ELFIN_CLOCK_POWER_BASE + PS_HOLD_CONTROL_OFFSET) ldr r1, [r0]

orr r1, r1, #0x300 orr r1, r1, #0x1 str r1, [r0] #endif

使用条件编译屏蔽掉下面的代码:

#if 0

/* init PMIC chip */ bl PMIC_InitIp #endif

重新编译下载运行:

SMDKV210 # setenv serverip 192.168.0.21 SMDKV210 # tftp 0x40000000 u-boot.bin dm9000 i/o: 0x88000000, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 00:40:5c:26:0a:5b

operating at 100M full duplex mode

TFTP from server 192.168.0.21; our IP address is 192.168.0.20 Filename 'u-boot.bin'.

Load address: 0x40000000

Loading: T ################### done

Bytes transferred = 278528 (0x44000) SMDKV210 # nand erase 0 0x60000

NAND erase: device 0 offset 0x0, size 0x60000 Erasing at 0x40000 -- 100% complete. OK

SMDKV210 # nand write 0x40000000 0 0x60000

NAND write: device 0 offset 0x0, size 0x60000 Checksum is calculated. Main area write (3 blocks): 393216 bytes written: OK

现在已经把u-boot.bin烧写到NAND FLASH了,把GEC210开发板的启动方式开关打到NAND--BOOT一侧,然后复位开发板,u-boot成功从NAND FLASH启动了:

OK

U-Boot 1.3.4 (Jan 17 2013 - 11:25:27) for SMDKV210

CPU: S5PV210@1000MHz(OK)

APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz MPLL = 667MHz, EPLL = 80MHz

HclkDsys = 166MHz, PclkDsys = 83MHz HclkPsys = 133MHz, PclkPsys = 66MHz SCLKA2M = 200MHz Serial = CLKUART Board: SMDKV210 DRAM: 512 MB Flash: 8 MB

SD/MMC: Card init fail! 0 MB

NAND: 256 MB In: serial Out: serial Err: serial

checking mode for fastboot ... Hit any key to stop autoboot: 0 SMDKV210 #

输入saveenv保存环境变量,提示保存环境变量到NAND FLASH: SMDKV210 # saveenv

Unknown command 'saveebnv' - try 'help' SMDKV210 # saveenv

Saving Environment to SMDK bootable device... Erasing Nand... Writing to Nand...

Saved enviroment variables


S5PV210的u-boot移植(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011届高考数学临考练兵测试题38 文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: