1 / 5
文档名称:

UBoot中MAC地址设置及往内核中传递.docx

格式:docx   大小:2,745KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

UBoot中MAC地址设置及往内核中传递.docx

上传人:LC01 2022/7/31 文件大小:2.68 MB

下载得到文件列表

UBoot中MAC地址设置及往内核中传递.docx

文档介绍

文档介绍:The pony was revised in January 2021
UBoot中MAC地址设置及往内核中传递
一、内核参数的传递U-Boot向Linux驱动传递参数的方式有两种,一为在系统启动的时候由boober=MACH_TYPE_SMDK2410;/*193*//*adressofbootparameters*/gd->bd->bi_boot_params=可以看到,U-Boot传给内核的参数表存放在内存中起始偏移0×100的位置,这里只是指定了“指针”的位置,但还没初始化其中的值,这是在do_bootm_linux()中跳到内核前去完成的。值得注意的是,
三、参数列表的构建#ifdefined(CONFIG_SETUP_MEMORY_TAGS)||\defined(CONFIG_CMDLINE_TAG)||\defined(CONFIG_INITRD_TAG)||\defined(CONFIG_SERIAL_TAG)setup_start_tag(bd);#ifdefCONFIG_SERIAL_TAGsetup_serial_tag(&params);#endif#ifdefCONFIG_REVISION_TAGsetup_revision_tag(&params);#endif
#ifdefCONFIG_SETUP_MEMORY_TAGS?setup_memory_tags(bd);#endif
#ifdefCONFIG_CMDLINE_TAG?setup_commandline_tag(bd,commandline);#endif
#ifdefCONFIG_INITRD_TAGif(initrd_start&&initrd_end)setup_initrd_tag(bd,initrd_start,initrd_end);#endif
#ifdefined(CONFIG_VFD)||defined(CONFIG_LCD)setup_videolfb_tag((gd_t*)gd);#endifsetup_end_tag(bd);#endif
四、解决U-Boot命令行中不能重新设置ethaddr的问题,经常会提示Can’toverwrite“ethaddr”common/
#ifndefCONFIG_ENV_OVERWRITE/**EthernetAddressandserial#canbesetonlyonce,*verisreadonly.*/#ifdefCONFIG_HAS_UID/*Allowserial#forcedoverwritewith0xdeaf4addflag*/if(((strcmp(name,“serial#”)==0)&&(flag!=0xdeaf4add))||#elseif((strcmp(name,“serial#”)==0)||#endif((strcmp(name,“ethaddr”)==0)
#ifdefined(CONFIG_OVERWRITE_ETHADDR_ONCE)&&defined(CONFIG_ETHADDR)&&(strcmp((char*)env_get_addr(oldval),MK_