移植最新uboot的总结
CPUID: 32440001
FCLK:
HCLK:
PCLK:
DRAM:
WARNING: Caches not enabled
Flash: *** failed ***
### ERROR ### Please RESET the board ###
在源码里面搜索“Flash:”,可以发现出现错误的原因,是由于board_init_r函数里面,
如果你的程序是从nand启动,那么会卡死,做如下修改:
# endif
3.6 修改UBOOT支持NOR FLASH
3.7 修改UBOOT支持NAND FLASH
分析过程:
nand_init
烧写实验:
①烧写到NOR Flash
SMDK2410 # loady 30000000
SMDK2410 # protect off all
SMDK2410 # erase 0 7ffff
SMDK2410 # cp.b 30000000 0 80000
②烧写到NAND Flash
SMDK2410 # nand erase 0 80000
SMDK2410 # nand write 0 0 80000 把norflash 0地址里面的程序烧写到nand flash 0地址里面去,烧写80000
比较
SMDK2410 # nand read 30000000 0 80000
NAND read: device 0 offset 0x0, size 0x80000
SMDK2410 # cmp.b 0 30000000 80000
Total of 524288 bytes were the same
3.8 修改UBOOT支持DM9000网卡
①修改smdk2440.h使它支持网卡DM9000
#if 0
#define CONFIG_CS8900
#define CONFIG_CS8900_BASE
#define CONFIG_CS8900_BUS16
#else
#define CONFIG_DRIVER_DM9000
#endif
然后编译出错:dm9000x.c:156: error: DM9000_DATA undeclared (first use in this function)
查找原因:
book@book-desktop:/work/system/u-boot-2012.04.01$
参考别人的代码:更改smdk2440.h和lowlevel_init.S里面的时序
还是有错误:看一下调用过程
*** ERROR: `ethaddr not set
现在可以用tftp下载代码了:
SMDK2410 # set ipaddr 192.168.1.17
SMDK2410 # set ethaddr 00:0c:29:4d:e4:f4
到这里先要在xp打开tptp服务器,服务器ip为192.168.1.50
SMDK2410 # set serverip 192.168.1.50
SMDK2410 # tftp 30000000 uImage
SMDK2410 # bootm 30000000
移植网卡搞定。
4. 易用性修裁剪及制作补丁
没有tftp时colin 下载uboot
SMDK2410 # loady 30000000
SMDK2410 # protect off all
SMDK2410 # erase 0 7ffff
SMDK2410 # cp.b 30000000 0 80000
tftp可ping通时colin 下载uboot:
SMDK2410 # tftp 30000000 u-boot_new.bin
SMDK2410 # protect off all
SMDK2410 # erase 0 3ffff
SMDK2410 # cp.b 30000000 0 40000
SMDK2410 # reset
①环境变量的保存
重启uboot后,会打印:*** Warning - bad CRC, using default environment,这说明没有找到环境变量,需要使用默认的环境变量
在si中搜索,可以发现默认的参数修改
②裁剪
③以前在设置好了环境变量的时候一直不敢用save命令
内核打印出来的分区信息
0x00000000-0x00040000 : "bootloader"
0x00040000-0x00060000 : "params"
0x00060000-0x00260000 : "kernel"
0x00260000-0x10000000 : "root"
以前是这么烧写:
nand erase 60000 200000
nand write 30000000 60000 200000
现在可以用分区名字代替:
tftp 30000000 uImage
nand erase.part kernel
nand write 30000000 kernel
set bootcmd nand read 30000000 kernel;bootm 30000000
最后看看能不能烧写文件系统:
一:
烧写JFFS2
tftp 30000000 fs_mini_mdev.jffs2
nand erase.part rootfs
nand write.jffs2 30000000 0x00260000 5b89a8
set bootargs console=ttySA
移植uboo 相关文章:
- minis3c2440移植之uboot移植(11-24)
- 移植uboot2010.09到S3C2440二(11-20)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)