我照如下部分移植成功,引用部分后面讲过程中遇到的问题.
问题1
生成的是zImage文件.如果直接烧入内存0x30008000,然后bootm 0x30008000肯定出错, 说bad magic num. 因为bootm只能引导uImage文件..区别请去网上查,关键字是0x40. 如果用go 0x30008000来执行,那么无法传递系统参数, 所以建议是zImage转成uImage,然后用bootm命令.
方法如下, 在uboot编译完了以后会有一个mkimage的命令
问题2
我的开发板定义是 boot 0x0~0x00040000 (256K)
kernel 0x00040000~0x00200000 (1.75M)
如果烧录uImage文件到0x00040000~0x00200000这个空间,然后reset开发板, 发现提示
nand read: device 0 offset 0x100000 ,size 0x300000 3145728 byte read :ok
这个是uboot里面关于bootcommand的读取地址错误, 需要吧上面的改成你需要的kernel地址空间就可以了 好像是/include/configs/bs2410.h这个文件 好像 呵呵.
改完后重新烧过, 出现错误 kernel panic -not syncing: VFS:unable to mount root fs on unknow-block
这就是说kernel没有找到根文件系统. 呵呵. 貌似到了这一步说明linux移植成功了. 下一步 busybox来做根文件系统.