tiny210 u-boot 引导内核及文件系统笔记

来源:互联网 发布:通话变声的软件 编辑:程序博客网 时间:2024/04/28 16:00

使用u-boot for tiny210 ver3.1 (by liukun321咕唧咕唧)做好了uboot 移植

打算用u-boot 来引导内核加载文件系统

编译u-boot
$make distclean
$make ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- tiny210_config
$make ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- all spl

于是,试着将友善之臂提供的文件系统镜像写到NAND Flash中

tftp 0x21000000 xxxx.img

nand erase 0xe00000 0xd20000 (写入前擦除NAND部分空间)

nand write.yaffs 0x21000000 0xe00000 0xc75c0c0(将文件系统镜像写入NAND Flash)


解决tftp超时,以及总出现ARP Retry count exceeded; starting again 的重复提示 bug: 

修改步骤:

1.在u-boot for tiny210 源码net/tftp.c18:

#define TIMEOUT         50000UL 

 2.在net/net.c中

#define ARP_TIMEOUT         50000UL 

 

解决卡死在Uncompressing Linux... done, booting the kernel:

PS:解决u-boot for tiny210 在启动友善提供的mini210 linux内核/android出现卡死在Uncompressing Linux... done, booting the kernel.  

1.由于友善提供的内核时mini210的,第一步先修改u-boot for tiny210的机器码,使之与内核机器码匹配。

修改include/configs/tiny210.h

#define MACH_TYPE_TINY210 3466 

2.友善提供的是mini210的内核,根据内核和mini210 uboot里的配置,可以知道mini210的DDR2ram

和tiny210DDR2ram在bank的挂载方式是不同的,详见http://blog.csdn.net/liukun321/article/details/7270426 ,故需要修改内核

源码的arch/arm/mach-s5pv210/include/mach/memory.h文件26,27行内容,将Maximum of 256MiB in one bank的限制改为Maximum

 of 512MiB in one bank  作如下修改:

#define SECTION_SIZE_BITS    29
#define NODE_MEM_SIZE_BITS    29 

通过上述两步修改u-boot for tiny210即可成功引导linux/android.



设置u-boot命令参数:

setenv bootcmd nand read 0x30008000 60000 419100\;bootm 30008000 (内核从Flash中读出并加载)

保存环境变量 saveenv

重启开发板

.....

能够成功引导内核,但加载文件系统时出错

错误提示:

/init:line103:can't open /r/dev/console :no such file

kenrnel panic -not syncing :attemped to kill init!

目前还没弄清楚错误原因.....

试着利用nfs加载文件系统

设置启动参数:

setenv bootargs root=/dev/nfs console=ttySAC0,115200 init=/linuxrc nfsroot=192.168.1.103:/nfsshare/rootfs_qtopia_qt4/(友善之臂提供的文件系统在nfs下) ip=192.168.1.103(开发板IP):192.168.1.100(主机IP):192.168.1.255(网关):255.255.255.0:name:eth0:on(fbcon=rotate:1)

重启开发板

OK,能引导内核并加载文件系统...

分析原因:

1 uboot 烧写yaffs2文件系统出了问题

2 内核加载文件系统上面有问题

具体原因接着分析中.....



2013.04.22

今天重新来做这个Uboot及文件系统

确定以前文件系统出错原因是UBoot中文件系统写入有问题

参见http://blog.csdn.net/liukun321/article/details/8558425


原创粉丝点击