ppc的uboot命令解析过程 解析和执行 启动过程

NetLoop()[net.c] -> netboot_common()[cmd_net.c] -> do_bootp()[cmd_net.c] -> U_BOOT_CMD(…)[cmd_net.c] -> define U_BOOT_CMD …[command.h]
最终命令被定义在 section (".u_boot_cmd") 通过 U_BOOT_CMD 宏参数的##name来匹配

解析和执行

main_loop()[main.c] -> parse_file_outer()[hush.c] -> parse_stream_outer()[hush.c] -> run_list()[hush.c] -> run_list_real()[hush.c]
-> run_pipe_real()[hush.c] -> find_cmd()[command.c] -> find_cmd_tbl()[command.c]
在__u_boot_cmd_start到__u_boot_cmd_end中取出section (".u_boot_cmd")段中的命令进行比较

启动过程

start[start.s] ->
cpu_init_f[cpu_init.c] ->
board_init_f[board.c] ->
relocate_code[start.s] ->
board_init_r[board.c] ->
main_loop[main.c]