源文件:cmd_bootm.c
int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
…
if (argc < 2) {
addr = load_addr;
} else {
addr = simple_strtoul(argv[1], NULL, 16);
}
/*从加载地址处读取uboot header并进行解析*/
……
switch (hdr->ih_comp) {
case IH_COMP_NONE:
if(ntohl(hdr->ih_load) == addr) { /
printf (" XIP %s ... ", name);
} else {//
memmove ((void *) ntohl(hdr->ih_load), (uchar *)data, len);
}
……
}
|