一:Uboot传参
1、Uboot传递阶段
u-boot/arch/arm/mach-rockchip/board.c
-->>board_late_init
char info_buf[256];
env_update("bootargs", info_buf);
2、Kernel接收阶段
kernel/init/main.c
-->>start_kernel
asmlinkage __visible void __init start_kernel(void)
{
... ...
setup_arch(&command_line);
... ...
setup_command_line(command_line);
... ...
}
static void __init setup_command_line(char *command_line)
{
saved_command_line =
memblock_virt_alloc(strlen(boot_command_line) + 1, 0);
initcall_command_line =
memblock_virt_alloc(strlen(boot_command_line) + 1, 0);
static_command_line = memblock_virt_alloc(strlen(command_line) + 1, 0);
strcpy(saved_command_line, boot_command_line);
strcpy(static_command_line, command_line);
}
saved_command_line为uboot向kernel传递的参数