mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-24 22:36:05 +00:00
smbios: add extended Extended BIOS ROM Size
U-Boot claims to create SMBIOS 3.7 tables. The type 0 table has a field Extended BIOS ROM Size since version 3.1. BIOS ROM sizes of 16 MiB or above must be written to this field. Add and fill the missing field. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
parent
272df36494
commit
8c919fcd20
2 changed files with 9 additions and 1 deletions
|
@ -105,6 +105,7 @@ struct __packed smbios_type0 {
|
|||
u8 bios_minor_release;
|
||||
u8 ec_major_release;
|
||||
u8 ec_minor_release;
|
||||
u16 extended_bios_rom_size;
|
||||
char eos[SMBIOS_STRUCT_EOS_BYTES];
|
||||
};
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <cpu.h>
|
||||
#include <dm/uclass-internal.h>
|
||||
#endif
|
||||
#include <linux/sizes.h>
|
||||
|
||||
/* Safeguard for checking that U_BOOT_VERSION_NUM macros are compatible with U_BOOT_DMI */
|
||||
#if U_BOOT_VERSION_NUM < 2000 || U_BOOT_VERSION_NUM > 2099 || \
|
||||
|
@ -348,7 +349,13 @@ static int smbios_write_type0(ulong *current, int handle,
|
|||
#endif
|
||||
t->bios_release_date = smbios_add_prop(ctx, NULL, U_BOOT_DMI_DATE);
|
||||
#ifdef CONFIG_ROM_SIZE
|
||||
t->bios_rom_size = (CONFIG_ROM_SIZE / 65536) - 1;
|
||||
if (CONFIG_ROM_SIZE < SZ_16M) {
|
||||
t->bios_rom_size = (CONFIG_ROM_SIZE / 65536) - 1;
|
||||
} else {
|
||||
/* CONFIG_ROM_SIZE < 8 GiB */
|
||||
t->bios_rom_size = 0xff;
|
||||
t->extended_bios_rom_size = CONFIG_ROM_SIZE >> 20;
|
||||
}
|
||||
#endif
|
||||
t->bios_characteristics = BIOS_CHARACTERISTICS_PCI_SUPPORTED |
|
||||
BIOS_CHARACTERISTICS_SELECTABLE_BOOT |
|
||||
|
|
Loading…
Add table
Reference in a new issue