u-boot配置文件之LINUX参数配置

本文介绍U-Boot如何通过一系列宏定义和函数调用将启动参数(如内存配置、命令行参数等)传递给Linux内核。这些参数对于内核初始化至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:LINUX_BOOT_PARAM_ADDR :在启动内核的时候,告诉内核CMDLINE存放的位置

2:CONFIG_CMDLINE_TAG  :表示把bootargs(CMDLINE)传递给内核

        下面这一段代码在内核启动前,向内核传递参数(以Tag标记的形式),这段代码依赖于很多的宏定义,比如CONFIG_CMDLINE_TAG等,他们通常定义在include/configs/.h中,所以假如要想u-boot给内核传递特定的标记,则必须定义相应的宏。传递标记是通过setup__tag函数完成的,具体能够参考cmd_boot.m里面的实现。

 #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)
       setup_start_tag (bd);

#ifdef CONFIG_SERIAL_TAG
       setup_serial_tag (&params);
#endif

#ifdef CONFIG_REVISION_TAG
       setup_revision_tag (&params);
#endif

#ifdef CONFIG_SETUP_MEMORY_TAGS
       setup_memory_tags (bd);
#endif

#ifdef CONFIG_CMDLINE_TAG
       setup_commandline_tag (bd, commandline);
#endif

#ifdef CONFIG_INITRD_TAG
       if (initrd_start && initrd_end)
              setup_initrd_tag (bd, initrd_start, initrd_end);
#endif

#if defined (CONFIG_VFD) || defined (CONFIG_LCD)
       setup_videolfb_tag ((gd_t *) gd);
#endif
       setup_end_tag (bd);
#endif

       /* we assume that the kernel is in place */
       printf ("/nStarting kernel .../n/n");

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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值