aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/cpu/coreboot/tables.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2020-05-27 10:55:55 -0400
committerTom Rini <trini@konsulko.com>2020-05-27 10:55:55 -0400
commit0d6a3e23225ad8c8e302044f8f720f657edda4f7 (patch)
treea007bea38f55122ef7c74169e22106c8efeaf42f /arch/x86/cpu/coreboot/tables.c
parent0ab24c37f03a3a23982edb63d88c4f22bb8bc2c5 (diff)
parent0621b5e1eeb6bcf08b220136f09d433d880f65a5 (diff)
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-x86
- Use device tree for FSP-M and FSP-S configuration on Intel Apollo Lake - Add SMBIOS cbmem entry parsing for coreboot - Various clean-ups to CBFS implementation
Diffstat (limited to 'arch/x86/cpu/coreboot/tables.c')
-rw-r--r--arch/x86/cpu/coreboot/tables.c14
1 files changed, 14 insertions, 0 deletions
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;