diff mbox series

x86: Add a little more info to cbsysinfo

Message ID 20230725213708.255726-1-sjg@chromium.org
State Accepted
Commit db971a7587d04b3f1cf2e6d452f9e37f50c5b3ed
Delegated to: Bin Meng
Headers show
Series x86: Add a little more info to cbsysinfo | expand

Commit Message

Simon Glass July 25, 2023, 9:37 p.m. UTC
Show the number of records in the table and the total table size in
bytes.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/x86/include/asm/cb_sysinfo.h  | 4 ++++
 arch/x86/lib/coreboot/cb_sysinfo.c | 4 ++++
 cmd/x86/cbsysinfo.c                | 5 +++--
 3 files changed, 11 insertions(+), 2 deletions(-)

Comments

Bin Meng July 28, 2023, 9:54 a.m. UTC | #1
On Wed, Jul 26, 2023 at 5:37 AM Simon Glass <sjg@chromium.org> wrote:
>
> Show the number of records in the table and the total table size in
> bytes.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
>  arch/x86/include/asm/cb_sysinfo.h  | 4 ++++
>  arch/x86/lib/coreboot/cb_sysinfo.c | 4 ++++
>  cmd/x86/cbsysinfo.c                | 5 +++--
>  3 files changed, 11 insertions(+), 2 deletions(-)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Bin Meng Aug. 1, 2023, 2:09 a.m. UTC | #2
On Fri, Jul 28, 2023 at 5:54 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> On Wed, Jul 26, 2023 at 5:37 AM Simon Glass <sjg@chromium.org> wrote:
> >
> > Show the number of records in the table and the total table size in
> > bytes.
> >
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> > ---
> >
> >  arch/x86/include/asm/cb_sysinfo.h  | 4 ++++
> >  arch/x86/lib/coreboot/cb_sysinfo.c | 4 ++++
> >  cmd/x86/cbsysinfo.c                | 5 +++--
> >  3 files changed, 11 insertions(+), 2 deletions(-)
> >
>
> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

applied to u-boot-x86, thanks!
diff mbox series

Patch

diff --git a/arch/x86/include/asm/cb_sysinfo.h b/arch/x86/include/asm/cb_sysinfo.h
index 2c78b22d0d2..12fa395ffd2 100644
--- a/arch/x86/include/asm/cb_sysinfo.h
+++ b/arch/x86/include/asm/cb_sysinfo.h
@@ -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;
@@ -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;
diff --git a/arch/x86/lib/coreboot/cb_sysinfo.c b/arch/x86/lib/coreboot/cb_sysinfo.c
index 42cc3a128d9..dfbc80c430e 100644
--- a/arch/x86/lib/coreboot/cb_sysinfo.c
+++ b/arch/x86/lib/coreboot/cb_sysinfo.c
@@ -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;
 }
@@ -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;
diff --git a/cmd/x86/cbsysinfo.c b/cmd/x86/cbsysinfo.c
index 2b8d3b0a435..84822a3e321 100644
--- a/cmd/x86/cbsysinfo.c
+++ b/cmd/x86/cbsysinfo.c
@@ -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");