CONFIG_CMDLINE:命令行模式开关 CONFIG_SYS_PROMPT:命令行模式提示符 CONFIG_HUSH_PARSER:使用hush shel...
void __init setup_arch(char **cmdline_p){pr_info("Boot CPU: AArch64 Processor [%08x]\n", read_cpuid_id());...*cmdline_p = boot_command_line;...setup_machine_fdt(__fdt_pointer);...} setup_machine_fdt()—>early_init_dt_scan()—>early_init_dt_scan_nodes() 通过调用将fdt解...
这样就可以使用默认的CONFIG_CMDLINE了,在.config文件中它被定义为"root=/dev/mtdblock2 ro init=/linuxrc console=ttySAC0,115200"(视具体情况而定),或者在内核配置文件的Boot options中填入也可。
(1)CONFIG_SETUP_MEMORY_TAGS,tag_mem,传参内容是内存配置信息。 (2)CONFIG_CMDLINE_TAG,tag_cmdline,传参内容是启动命令行参数,也就是uboot环境变量的bootargs. (3)CONFIG_INITRD_TAG (4)CONFIG_MTDPARTITION,传参内容是iNand/SD卡的分区表。 (5)起始tag是ATAG_CORE、结束tag是ATAG_NONE,其他的ATAG_XXX...
#elif defined(CONFIG_CMDLINE) cli_simple_loop(); #else printf("## U-Boot command line is disabled. Please enable CONFIG_CMDLINE\n"); #endif /*CONFIG_HUSH_PARSER*/ } 如上代码,程序只执行parse_file_outer来处理用户的输入、输出信息。
(1)CONFIG_SETUP_MEMORY_TAGS,tag_mem,传参内容是内存配置信息。 (2)CONFIG_CMDLINE_TAG,tag_cmdline,传参内容是启动命令行参数,也就是uboot环境变量的bootargs. (3)CONFIG_INITRD_TAG (4)CONFIG_MTDPARTITION,传参内容是iNand/SD卡的分区表。 (5)起始tag是ATAG_CORE、结束tag是ATAG_NONE,其他的ATAG_XXX...
#ifdef CONFIG_CMDLINE_TAG char* commandline= getenv ("bootargs"); //这是从uboot的环境中获取的boogargs。 #endif 这里获取了生成cmdline标签所需要的字符串,相对于其他操作系统,这是与linux相关的。 if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) ...
对于老版本的U-boot,有大概率是U-boot传给kernel参数的时候出了问题,着重注意一下创建tag的宏有没有正常定义,如CONFIG_CMDLINE_TAG、CONFIG_MTDPARTITION等 kernel的链接地址与加载地址不符,链接地址可以通过kernel的head.S获知,详见kernel启动汇编阶段分析
#ifdef CONFIG_SETUP_MEMORY_TAGS setup_memory_tags (bd); //设置RAM参数 #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); ...
#ifdef CONFIG_CMDLINE_TAG char *commandline = getenv ("bootargs"); #endif theKernel = (void (*)(int, int, uint))ntohl(hdr->ih_ep); bd_t类型的bd变量是一个用来表示Uboot中串口,板卡ID,IP等板卡相关信息配置接口。commandline则是Uboot传递给Linux系统的参数,一个实际使用的bootargs环境变量如下:...