diff options
author | Simon Glass <sjg@chromium.org> | 2023-12-31 08:25:45 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2024-01-07 13:45:06 -0700 |
commit | f19cf8d43adb061f1e744447a4676322cd326829 (patch) | |
tree | 9b456b961145e9f7908bd59059e71d97ba8ab900 | |
parent | 58c638330ab15c8ee465fa61e40c66234f9e7909 (diff) | |
download | u-boot-f19cf8d43adb061f1e744447a4676322cd326829.zip u-boot-f19cf8d43adb061f1e744447a4676322cd326829.tar.gz u-boot-f19cf8d43adb061f1e744447a4676322cd326829.tar.bz2 |
smbios: Move the rest of the SMBIOS2 code
Move all of this logic into the else clause, since it will not be used
for SMBIOS3
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-rw-r--r-- | lib/smbios.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/smbios.c b/lib/smbios.c index b417f8a..eea7267 100644 --- a/lib/smbios.c +++ b/lib/smbios.c @@ -544,9 +544,8 @@ static struct smbios_write_method smbios_write_funcs[] = { ulong write_smbios_table(ulong addr) { ofnode parent_node = ofnode_null(); - struct smbios_entry *se; + ulong table_addr, start_addr; struct smbios_ctx ctx; - ulong table_addr; ulong tables; int len = 0; int max_struct_size = 0; @@ -566,9 +565,7 @@ ulong write_smbios_table(ulong addr) /* 16 byte align the table address */ addr = ALIGN(addr, 16); - - se = map_sysmem(addr, sizeof(struct smbios_entry)); - memset(se, 0, sizeof(struct smbios_entry)); + start_addr = addr; addr += sizeof(struct smbios_entry); addr = ALIGN(addr, 16); @@ -603,8 +600,11 @@ ulong write_smbios_table(ulong addr) printf("WARNING: SMBIOS table_address overflow %llx\n", (unsigned long long)table_addr); addr = 0; - goto out; } else { + struct smbios_entry *se; + + se = map_sysmem(start_addr, sizeof(struct smbios_entry)); + memset(se, '\0', sizeof(struct smbios_entry)); memcpy(se->anchor, "_SM_", 4); se->length = sizeof(struct smbios_entry); se->major_ver = SMBIOS_MAJOR_VER; @@ -625,9 +625,8 @@ ulong write_smbios_table(ulong addr) isize); se->checksum = table_compute_checksum(se, sizeof(struct smbios_entry)); + unmap_sysmem(se); } -out: - unmap_sysmem(se); return addr; } |