SMBIOS: Update BIOS Information (Type 0) to version V3.2.0
Add Extended BIOS ROM Size field. Change-Id: Iec35c8c66210f0ddc07a2ca6f976a1f8fc53037d Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/31416 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
parent
1db2346e3f
commit
358cbb3a30
|
@ -371,14 +371,17 @@ static int smbios_write_type0(unsigned long *current, int handle)
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_CHROMEOS */
|
#endif /* CONFIG_CHROMEOS */
|
||||||
|
|
||||||
/* As a work around to prevent a compiler error, temporarily specify
|
|
||||||
* 16 MiB flash sizes when ROM size >= 16 MiB. An update is necessary
|
|
||||||
* once the SMBIOS specification addresses ROM sizes > 16 MiB.
|
|
||||||
*/
|
|
||||||
uint32_t rom_size = CONFIG_ROM_SIZE;
|
uint32_t rom_size = CONFIG_ROM_SIZE;
|
||||||
rom_size = MIN(CONFIG_ROM_SIZE, 16 * MiB);
|
rom_size = MIN(CONFIG_ROM_SIZE, 16 * MiB);
|
||||||
t->bios_rom_size = (rom_size / 65535) - 1;
|
t->bios_rom_size = (rom_size / 65535) - 1;
|
||||||
|
|
||||||
|
if (CONFIG_ROM_SIZE >= 1 * GiB) {
|
||||||
|
t->extended_bios_rom_size =
|
||||||
|
DIV_ROUND_UP(CONFIG_ROM_SIZE, GiB) | (1 << 14);
|
||||||
|
} else {
|
||||||
|
t->extended_bios_rom_size = DIV_ROUND_UP(CONFIG_ROM_SIZE, MiB);
|
||||||
|
}
|
||||||
|
|
||||||
t->system_bios_major_release = 4;
|
t->system_bios_major_release = 4;
|
||||||
t->bios_characteristics =
|
t->bios_characteristics =
|
||||||
BIOS_CHARACTERISTICS_PCI_SUPPORTED |
|
BIOS_CHARACTERISTICS_PCI_SUPPORTED |
|
||||||
|
|
|
@ -250,6 +250,7 @@ struct smbios_type0 {
|
||||||
u8 system_bios_minor_release;
|
u8 system_bios_minor_release;
|
||||||
u8 ec_major_release;
|
u8 ec_major_release;
|
||||||
u8 ec_minor_release;
|
u8 ec_minor_release;
|
||||||
|
u16 extended_bios_rom_size;
|
||||||
u8 eos[2];
|
u8 eos[2];
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue