diff options
author | Simon Glass <sjg@chromium.org> | 2018-05-16 09:42:19 -0600 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2018-06-03 15:27:21 +0200 |
commit | 0864c565a274ddbc23dda667d71524e7efbbef8f (patch) | |
tree | 14e67fed8a5e51e36b5f1017defe1178914bb4b2 | |
parent | 85b469215f8e6b5566eb06fe970276344a56c7f4 (diff) |
efi: Update some comments related to smbios tables
Clarify the operation of this code with some additional comments.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r-- | include/efi_loader.h | 7 | ||||
-rw-r--r-- | include/smbios.h | 5 | ||||
-rw-r--r-- | lib/efi_loader/efi_smbios.c | 7 |
3 files changed, 16 insertions, 3 deletions
diff --git a/include/efi_loader.h b/include/efi_loader.h index 0c286bf6be..c66252a7dd 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -214,6 +214,13 @@ efi_status_t efi_net_register(void); /* Called by bootefi to make the watchdog available */ efi_status_t efi_watchdog_register(void); /* Called by bootefi to make SMBIOS tables available */ +/** + * efi_smbios_register() - write out SMBIOS tables + * + * Called by bootefi to make SMBIOS tables available + * + * @return 0 if OK, -ENOMEM if no memory is available for the tables + */ efi_status_t efi_smbios_register(void); struct efi_simple_file_system_protocol * diff --git a/include/smbios.h b/include/smbios.h index 79880ef5b5..97b9ddce23 100644 --- a/include/smbios.h +++ b/include/smbios.h @@ -231,8 +231,9 @@ typedef int (*smbios_write_type)(ulong *addr, int handle); * * This writes SMBIOS table at a given address. * - * @addr: start address to write SMBIOS table - * @return: end address of SMBIOS table + * @addr: start address to write SMBIOS table. If this is not + * 16-byte-aligned then it will be aligned before the table is written + * @return: end address of SMBIOS table (and start address for next entry) */ ulong write_smbios_table(ulong addr); diff --git a/lib/efi_loader/efi_smbios.c b/lib/efi_loader/efi_smbios.c index 482436e2ad..7c3fc8af0b 100644 --- a/lib/efi_loader/efi_smbios.c +++ b/lib/efi_loader/efi_smbios.c @@ -29,7 +29,12 @@ efi_status_t efi_smbios_register(void) if (ret != EFI_SUCCESS) return ret; - /* Generate SMBIOS tables */ + /* + * Generate SMBIOS tables - we know that efi_allocate_pages() returns + * a 4k-aligned address, so it is safe to assume that + * write_smbios_table() will write the table at that address. + */ + assert(!(dmi & 0xf)); write_smbios_table(dmi); /* And expose them to our EFI payload */ |