diff options
author | Simon Glass <sjg@chromium.org> | 2020-09-22 14:54:48 -0600 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2020-09-25 11:27:26 +0800 |
commit | d11544dfa9f4aeb959ea9ca642827c44bc92151e (patch) | |
tree | 853ab2fffd79e043e908ba63c74e6a2051fa689c /cmd/x86/hob.c | |
parent | 9c6aaf13473b611508e9bc3a5ab851255403c3bf (diff) | |
download | u-boot-d11544dfa9f4aeb959ea9ca642827c44bc92151e.tar.gz u-boot-d11544dfa9f4aeb959ea9ca642827c44bc92151e.tar.bz2 u-boot-d11544dfa9f4aeb959ea9ca642827c44bc92151e.zip |
x86: hob: Add way to show a single hob entry
The 'hob' command currently lists all HOB entries. Add way to list a
single entry, by index.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'cmd/x86/hob.c')
-rw-r--r-- | cmd/x86/hob.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/cmd/x86/hob.c b/cmd/x86/hob.c index 6b1f7bda5b..e3f512beee 100644 --- a/cmd/x86/hob.c +++ b/cmd/x86/hob.c @@ -34,7 +34,12 @@ static int do_hob(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) int i = 0; efi_guid_t *guid; char uuid[UUID_STR_LEN + 1]; + int seq = -1; /* Show all by default */ + argc--; + argv++; + if (argc) + seq = simple_strtol(*argv, NULL, 16); hdr = gd->arch.hob_list; printf("HOB list address: 0x%08x\n\n", (unsigned int)hdr); @@ -43,7 +48,9 @@ static int do_hob(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) printf("%36s\n", "GUID"); printf("---|----------|-----------|------|-"); printf("------------------------------------\n"); - while (!end_of_hob(hdr)) { + for (i = 0; !end_of_hob(hdr); i++, hdr = get_next_hob(hdr)) { + if (seq != -1 && seq != i) + continue; printf("%02x | %08x | ", i, (unsigned int)hdr); type = hdr->type; if (type == HOB_TYPE_UNUSED) @@ -65,14 +72,13 @@ static int do_hob(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) printf("%36s", "Not Available"); } printf("\n"); - hdr = get_next_hob(hdr); - i++; } return 0; } -U_BOOT_CMD(hob, 1, 1, do_hob, - "Print Hand-Off Block (HOB) information", +U_BOOT_CMD(hob, 2, 1, do_hob, + "[seq] Print Hand-Off Block (HOB) information" + " seq - Record # to show (all by default)", "" ); |