以前试过:在几家板子上移植u-boot1.1.4都以失败而告终,今天上午在龙人【深圳龙人arm公司是一家专业arm开发板 arm9开发板 arm9的嵌入式开发 嵌入式系统公司,能根据客户的需求,提供最好的嵌入式arm开发板S3C2440 2440开发板 Xscale开发板 PXA270 270开发板 EP9315 IXP425详情:http://www.szarm.com ,http://www.embsky.com/, http://www.embedm.com
】的2410板子上移植u-boot1.1.4终于成功了,现将择移植经验总结如下,希望对大家有帮助!
1.由于u-boot-1.1.4.tar.gz展开后在我的交叉编译环境中出错,将 \cpu\arm920t\config.mk文件中的PLATform_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) 改为下列PLATform_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu),)
2。将/include/asm-arm/processor.h 中的 union debug_insn { u32arm; u16thumb; };改为 union debug_insn { u32arm_mode; u16thumb_mode; };
1.由于uboot中的2410板子里没有龙人板子上的上用的那种flash, 所以就把ppcboot中的flash相关文件直接拷过来: a. 将/ppcboot-2.0.0/board/smdk2410/flash.c和flash-define.h 拷到 u-boot-1.1.4/board/smdk2410 下. b. 将/ppcboot-2.0.0/include/flash.h 拷到 u-boot-1.1.4/include/下 2.修改 include/configs/smdk2410.h a.去掉了下面三宏定义 #define CONFIG_DRIVER_CS8900 1 #define CS8900_BASE 0x8000300 #define CS8900_BUS16 1
增加了下面几个宏定义 #define CONFIG_DRIVER_DM9000 1 #define CONFIG_DM9000_BASE 0x8000300 #define DM9000_IO CONFIG_DM9000_BASE #define DM9000_DATA (CONFIG_DM9000_BASE+4) #define CONFIG_DM9000_USE_16BIT #define COMMAND_LINE "initrd=0x30800000,0x440000 mem=64M root=/dev/ram init=/linuxrc console=ttyS0" b.修改了 #define CONFIG_COMMANDS \ (CONFIG_CMD_DFL | \ CFG_CMD_CACHE | \ CFG_CMD_PING | \ //加上PING 哦,否则不能下载 CFG_CMD_REGINFO | \ CFG_CMD_DATE | \ CFG_CMD_ELF) c. 增加或增加了下列宏定义 #define CONFIG_ETHADDR08:00:3e:26:0a:5b #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_IPADDR192.168.2.110 #define CONFIG_SERVERIP192.168.2.111
d.增加了下列宏定义 #define CONFIG_INTEL_E28F128 1
#ifdef CONFIG_INTEL_E28F128 #define PHYS_FLASH_SIZE0x01000000 #define CFG_FLASH_SIZEPHYS_FLASH_SIZE #define CFG_MAX_FLASH_SECT(128) #define CFG_ENV_ADDR(CFG_FLASH_BASE + 0x020000) #define CFG_FLASH_SIZEPHYS_FLASH_SIZE #endif
e 去掉了下列宏定义 #define CONFIG_AMD_LV400 1
3.在 include/flash.h文件中屏蔽了下面一个函数声明 externint flash_write(uchar *, ulong, ulong);
4.本版在2.95.3的交叉编译环境下编译OK!在龙人的交叉编译器下也 编译ok。
5.将成的u-boot.bin文件复制到/tftp下,当龙人的板子在ppcboot启动后 出现的下面的shell 提示: SMDK2410 # 接上网线,执行:tftp 0x30008000 u-boot.bin // 将u-boot.bin 下载到龙人的板 子的SARAM上 // 注意这里龙人目标板的serverip要和宿主机的ip相同 然后执行:go 0x30008000 / / 执行刚才下载的u-boot.bin程序
这样,u-boot1.1.4就运行起来。。。。。。。。。。。。。。。。
这样就起来啦,但里面还有很多东西我还搞不清楚,后面再慢慢研究!
如有那位朋友对此感兴趣,欢迎联系我手机:13148818895 小灵通:21192100余焕丽我们共同探讨! |