bootstage: Plumb in bootstage calls for basic operations
This inserts bootstage calls into tftp, usb start and bootm. We could go further, but this is a reasonable start to illustrate the concept. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
3a608ca01d
commit
573f14fe4e
@ -199,6 +199,8 @@ static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]
|
|||||||
|
|
||||||
bootm_start_lmb();
|
bootm_start_lmb();
|
||||||
|
|
||||||
|
bootstage_mark_name(BOOTSTAGE_ID_BOOTM_START, "bootm_start");
|
||||||
|
|
||||||
/* get kernel image header, start address and length */
|
/* get kernel image header, start address and length */
|
||||||
os_hdr = boot_get_kernel(cmdtp, flag, argc, argv,
|
os_hdr = boot_get_kernel(cmdtp, flag, argc, argv,
|
||||||
&images, &images.os.image_start, &images.os.image_len);
|
&images, &images.os.image_start, &images.os.image_len);
|
||||||
|
@ -43,7 +43,12 @@ U_BOOT_CMD(
|
|||||||
|
|
||||||
int do_tftpb (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
int do_tftpb (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
{
|
{
|
||||||
return netboot_common(TFTPGET, cmdtp, argc, argv);
|
int ret;
|
||||||
|
|
||||||
|
bootstage_mark_name(BOOTSTAGE_KERNELREAD_START, "tftp_start");
|
||||||
|
ret = netboot_common(TFTPGET, cmdtp, argc, argv);
|
||||||
|
bootstage_mark_name(BOOTSTAGE_KERNELREAD_STOP, "tftp_done");
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
U_BOOT_CMD(
|
U_BOOT_CMD(
|
||||||
|
@ -513,6 +513,7 @@ int do_usb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||||||
|
|
||||||
if ((strncmp(argv[1], "reset", 5) == 0) ||
|
if ((strncmp(argv[1], "reset", 5) == 0) ||
|
||||||
(strncmp(argv[1], "start", 5) == 0)) {
|
(strncmp(argv[1], "start", 5) == 0)) {
|
||||||
|
bootstage_mark_name(BOOTSTAGE_ID_USB_START, "usb_start");
|
||||||
usb_stop();
|
usb_stop();
|
||||||
printf("(Re)start USB...\n");
|
printf("(Re)start USB...\n");
|
||||||
i = usb_init();
|
i = usb_init();
|
||||||
|
@ -322,6 +322,7 @@ BootpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
|
|||||||
BootpVendorProcess((uchar *)&bp->bp_vend[4], len);
|
BootpVendorProcess((uchar *)&bp->bp_vend[4], len);
|
||||||
|
|
||||||
NetSetTimeout(0, (thand_f *)0);
|
NetSetTimeout(0, (thand_f *)0);
|
||||||
|
bootstage_mark_name(BOOTSTAGE_ID_BOOTP_STOP, "bootp_stop");
|
||||||
|
|
||||||
debug("Got good BOOTP\n");
|
debug("Got good BOOTP\n");
|
||||||
|
|
||||||
@ -589,6 +590,7 @@ BootpRequest (void)
|
|||||||
Bootp_t *bp;
|
Bootp_t *bp;
|
||||||
int ext_len, pktlen, iplen;
|
int ext_len, pktlen, iplen;
|
||||||
|
|
||||||
|
bootstage_mark_name(BOOTSTAGE_ID_BOOTP_START, "bootp_start");
|
||||||
#if defined(CONFIG_CMD_DHCP)
|
#if defined(CONFIG_CMD_DHCP)
|
||||||
dhcp_state = INIT;
|
dhcp_state = INIT;
|
||||||
#endif
|
#endif
|
||||||
@ -949,6 +951,8 @@ DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
|
|||||||
BootpCopyNetParams(bp); /* Store net params from reply */
|
BootpCopyNetParams(bp); /* Store net params from reply */
|
||||||
dhcp_state = BOUND;
|
dhcp_state = BOUND;
|
||||||
printf ("DHCP client bound to address %pI4\n", &NetOurIP);
|
printf ("DHCP client bound to address %pI4\n", &NetOurIP);
|
||||||
|
bootstage_mark_name(BOOTSTAGE_ID_BOOTP_STOP,
|
||||||
|
"bootp_stop");
|
||||||
|
|
||||||
net_auto_load();
|
net_auto_load();
|
||||||
return;
|
return;
|
||||||
|
@ -402,6 +402,7 @@ int NetLoop(enum proto_t protocol)
|
|||||||
NetArpWaitTxPacketSize = 0;
|
NetArpWaitTxPacketSize = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bootstage_mark_name(BOOTSTAGE_ID_ETH_START, "eth_start");
|
||||||
eth_halt();
|
eth_halt();
|
||||||
eth_set_current();
|
eth_set_current();
|
||||||
if (eth_init(bd) < 0) {
|
if (eth_init(bd) < 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user