u-boot的命令也是通过目标板的配置头文件来配置的,比如要添加ping命令,就必须添加CFG_CMD_NET和CFG_CMD_PING才行。不然common/cmd_net.c就不会被编译了。
tftp + nfs 启动
setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.5:/opt/2410/rootfs ip=192.168.1.110:192.168.1.255:255.255.255.0 console=ttySAC0,115200
uImage
setenv bootcmd tftp 0x32000000 uImage\;bootm 0x32000000
zImage
setenv bootcmd tftp 0x32000000 zImage\;bootm 0x32000000nand 启动
nand + cramfs启动
root=/dev/mtdblock2 init=/linuxrc load_ramdisk=0 console=ttySAC0,115200 mem=655
36K devfs=mount
uImage
setenv bootcmd nand read 0x30007fc0 0x40000 0x1c0000\;bootm 30007fc0
zImage
setenv bootcmd nand read 0x30008000 0x40000 0x1c0000\;bootm 30008000
参考网址
http://blog.csdn.net/dongliqiang2006/archive/2009/05/29/4224249.aspx
u-boot传递启动参数不成功的解决方法设置:
setenv bootargs
root=/dev/mtdblock2 init=/bin/bash console=ttySAC0,115200
内核仍然使用其默认参数,该启动参数并没有传递。
原因分析如下:
先看看lib_arm/Armlinux.c中:
......... #if defined (CONFIG_SETUP_MEMORY_TAGS) || \ defined (CONFIG_CMDLINE_TAG) || \ defined
(CONFIG_INITRD_TAG) || \ defined
(CONFIG_SERIAL_TAG) || \ defined
(CONFIG_REVISION_TAG) || \ defined
(CONFIG_LCD) || \ defined
(CONFIG_VFD) static void
setup_start_tag (bd_t *bd) { params
= (struct
tag *) bd->bi_boot_params; …………
|
该段程序先判断是否定义了CONFIG_CMDLINE_TAG等,
才决定是否给内核传递参数。而board/smdk2410/smdk2410.h中
并没有定义CONFIG_CMDLINE_TAG,问题就出现在这里。
因此,这里参照smdk2440.h的
配置,在smdk2410.h(开发板名字.h)中添加以下3条定义(蓝
色部分):
#define
CONFIG_SYS_CLK_FREQ 12000000 /*
SMDK2400 has 12 MHz input clock */ #undef
CONFIG_USE_IRQ /* we
don't need IRQ/FIQ stuff */ #define CONFIG_CMDLINE_TAG
1 /* enable passing of
ATAGs */ #define CONFIG_SETUP_MEMORY_TAGS 1 #define CONFIG_INITRD_TAG 1
|
重新编译就OK了。
阅读(475) | 评论(0) | 转发(0) |