- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、内核参数的传递U-Boot向Linux驱动传递参数的方式有两种,一为在系统启动的时候由bootloader传入,还有一种是将驱动编译成模块,将参数作为模块加载的参数传入。
内核通过setup接口接受Bootloader传入的参数。方式如下:static int __init param_mac_setup(char *str){
……
}
__setup(“mac=”, param_mac_setup);
这样,当在Bootloader中指定“mac=00:2E:79:38:6D:4E”,系统在加载这个模块的时候,就会执行相应的param_mac_setup()函数,而传入给它的参数就是等号后面的物理地址“00:2E:79:38:6D:4E”。这样,该函数就可以对它进行相应的处理。在U-Boot中,默认设置mac地址的参数为ethaddr,我们可以用过setenv ethaddr Mac地址来设置开发板的mac地址。
二、bootm传递参数的方式在bootm执行的流程图中,可以看到会调用do_bootm_linux()在执行Linux内核,内核的起始地址如下:
void (*theKernel)(int zero, int arch, uint params);image_header_t *hdr = header;?????? theKernel = (void (*)(int, int, uint))ntohl(hdr-ih_ep);
header是uImage的头部,通过头部,得到内核映像起始的执行地址,标识为theKernel。从中也可以看到,内核接受三个参数,第一个为0,第二个为系统的ID号,第三个是传入内核的参数。在do_bootm_linux()的最后,会跳到内核去执行:?????? theKernel (0, bd-bi_arch_number, bd-bi_boot_params);最后两个参数在board/smdk2410/smdk2410.c的board_init()中被初始化:?????? /* arch number of SMDK2410-Board */?????? gd-bd-bi_arch_number = MACH_TYPE_SMDK2410; /* 193 */?????? /* adress of boot parameters */?????? gd-bd-bi_boot_params = 0可以看到,U-Boot传给内核的参数表存放在内存中起始偏移0×100的位置,这里只是指定了“指针”的位置,但还没初始化其中的值,这是在do_bootm_linux()中跳到内核前去完成的。值得注意的是, 内核的默认运行地址的0前面就是留给参数用的。所以一般不要将内核下载到该地址之前,以免冲掉了传给内核的参数。
三、参数列表的构建#if defined (CONFIG_SETUP_MEMORY_TAGS) || \??? defined (CONFIG_CMDLINE_TAG) || \??? defined (CONFIG_INITRD_TAG) || \defined (CONFIG_SERIAL_TAG)?????? 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
四、解决U-Boot命令行中不能重新设置ethaddr的问题,经常会
您可能关注的文档
- HDS VSP 硬件体系架构资料.doc
- Hit the nail on the head.Things The Throw-away Society等12篇英语散文中英对译资料.doc
- HMI人机界面的组成及工作原理介绍资料.doc
- HR面试提问(初试)资料.doc
- I could not stop for death 诗歌鉴赏资料.doc
- ibaPDA client软件快速设置方法资料.doc
- ICU医院感染风险评估资料.doc
- if函数的用法及实例资料.doc
- if与whether用法区别资料.doc
- iphone手机 IMAP 设置方法资料.doc
- 郑州西亚斯学院单招《数学》考前冲刺练习题(B卷)附答案详解.docx
- 2025年航空航天复合材料回收技术成本结构报告.docx
- 郑州轨道工程职业学院单招《数学》试卷附完整答案详解(历年真题).docx
- 郑州财税金融职业学院单招《数学》考前冲刺练习题附完整答案详解【易错题】.docx
- 2025年宠物体温监测设备行业现状与竞争格局.docx
- 郑州西亚斯学院单招《数学》每日一练试卷附完整答案详解【考点梳理】.docx
- 2025至2030幻灯及投影设备市场行业发展研究与产业战略规划分析评估报告.docx
- 2025象山农信联社秋季招聘备考题库含答案详解(a卷).docx
- 2025象山农信联社秋季招聘备考题库含答案详解ab卷.docx
- 2025年稀土永磁电机在便携式设备领域节能应用报告.docx
原创力文档


文档评论(0)