Skip to content

Commit

Permalink
x86: Add a little more info to cbsysinfo
Browse files Browse the repository at this point in the history
Show the number of records in the table and the total table size in
bytes.

Signed-off-by: Simon Glass <[email protected]>
Reviewed-by: Bin Meng <[email protected]>
  • Loading branch information
sjg20 authored and lbmeng committed Aug 1, 2023
1 parent d560f7c commit db971a7
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
4 changes: 4 additions & 0 deletions arch/x86/include/asm/cb_sysinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,8 @@
* @rsdp: Pointer to ACPI RSDP table
* @unimpl_count: Number of entries in unimpl_map[]
* @unimpl: List of unimplemented IDs (bottom 8 bits only)
* @table_size: Number of bytes taken up by the sysinfo table
* @rec_count: Number of records in the sysinfo table
*/
struct sysinfo_t {
unsigned int cpu_khz;
Expand Down Expand Up @@ -219,6 +221,8 @@ struct sysinfo_t {
void *rsdp;
u32 unimpl_count;
u8 unimpl[SYSINFO_MAX_UNIMPL];
uint table_size;
uint rec_count;
};

extern struct sysinfo_t lib_sysinfo;
Expand Down
4 changes: 4 additions & 0 deletions arch/x86/lib/coreboot/cb_sysinfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,8 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info)

ptr += rec->size;
}
info->table_size += (void *)ptr - (void *)header;
info->rec_count += header->table_entries;

return 1;
}
Expand All @@ -462,6 +464,8 @@ int get_coreboot_info(struct sysinfo_t *info)
addr = locate_coreboot_table();
if (addr < 0)
return addr;
info->table_size = 0;
info->rec_count = 0;
ret = cb_parse_header((void *)addr, 0x1000, info);
if (!ret)
return -ENOENT;
Expand Down
5 changes: 3 additions & 2 deletions cmd/x86/cbsysinfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,9 @@ static void show_table(struct sysinfo_t *info, bool verbose)
struct cb_serial *ser = info->serial;
int i;

printf("Coreboot table at %lx, decoded to %p",
gd->arch.coreboot_table, info);
printf("Coreboot table at %lx, size %x, records %x (dec %d), decoded to %p",
gd->arch.coreboot_table, info->table_size, info->rec_count,
info->rec_count, info);
if (info->header)
printf(", forwarded to %p\n", info->header);
printf("\n");
Expand Down

0 comments on commit db971a7

Please sign in to comment.