From 53942b96586fd0c9b15fb89b7c73dbf4047350df Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Thu, 14 May 2020 15:16:22 +0200 Subject: x86: coreboot: add SMBIOS cbmem entry parsing Signed-off-by: Christian Gmeiner Reviewed-by: Bin Meng --- arch/x86/cpu/coreboot/tables.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'arch/x86/cpu/coreboot/tables.c') diff --git a/arch/x86/cpu/coreboot/tables.c b/arch/x86/cpu/coreboot/tables.c index 0f04c4f8e9..a5d31d1dea 100644 --- a/arch/x86/cpu/coreboot/tables.c +++ b/arch/x86/cpu/coreboot/tables.c @@ -69,6 +69,17 @@ static void cb_parse_vbnv(unsigned char *ptr, struct sysinfo_t *info) info->vbnv_size = vbnv->vbnv_size; } +static void cb_parse_cbmem_entry(unsigned char *ptr, struct sysinfo_t *info) +{ + struct cb_cbmem_entry *entry = (struct cb_cbmem_entry *)ptr; + + if (entry->id != CBMEM_ID_SMBIOS) + return; + + info->smbios_start = entry->address; + info->smbios_size = entry->entry_size; +} + static void cb_parse_gpios(unsigned char *ptr, struct sysinfo_t *info) { int i; @@ -206,6 +217,9 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info) case CB_TAG_VBNV: cb_parse_vbnv(ptr, info); break; + case CB_TAG_CBMEM_ENTRY: + cb_parse_cbmem_entry(ptr, info); + break; default: cb_parse_unhandled(rec->tag, ptr); break; -- cgit v1.2.3