【原创】u-boot-2011.03在mini2440/micro2440上的移植(四)——支持内核启动

4.1 include/configs/micro2440.h

添加

#define CONFIG_SETUP_MEMORY_TAGS    1 //如果没有定义这个参数,则uboot参数必须加入men=内存大小
#define CONFIG_INITRD_TAG            1
#define CONFIG_CMDLINE_TAG           1 //设置bootargs出入内核必须
#define CONFIG_BOOTARGS         "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0"

【说明】

到此步后,使用bootm后在"Starting kernel ..."地方死机。按照下一步修改,具体原因尚不理解,需要在以后阅读uboot的源代码。

 

4.2 arch/arm/lib/bootm.c

static void announce_and_cleanup(void)
{
        printf("/nStarting kernel .../n/n");

#ifdef CONFIG_USB_DEVICE
        {
                extern void udc_disconnect(void);
                udc_disconnect();
        }
#endif

 

#ifndef CONFIG_MICRO2440
        cleanup_before_linux();
#endif
}

 

4.3 自动启动内核

如果要自动启动内核,需要在include/conskfigs/micro2440.h定义CONFIG_BOOTCOMMAND,类似如下内容:

#define CONFIG_BOOTCOMMAND  "nand read 0x30008000 0x60000 0x300000;bootm 0x30008000"

你可能感兴趣的:(【原创】u-boot-2011.03在mini2440/micro2440上的移植(四)——支持内核启动)