On Tue, 23 Jul 2024 at 17:12, Ilias Apalodimas <ilias.apalodi...@linaro.org> wrote: > > Hi Heinrich, > > On Tue, 23 Jul 2024 at 13:46, Heinrich Schuchardt > <heinrich.schucha...@canonical.com> wrote: > > > > 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. > > > > This patch does not cover the case of a ROM >= 8 GiB which cannot > > be configured in U-Boot. > > > > Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com> > > --- > > include/smbios.h | 1 + > > lib/smbios.c | 9 ++++++++- > > 2 files changed, 9 insertions(+), 1 deletion(-) > > > > diff --git a/include/smbios.h b/include/smbios.h > > index a4fda9df7bd..00119d7a60c 100644 > > --- a/include/smbios.h > > +++ b/include/smbios.h > > @@ -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]; > > }; > > > > diff --git a/lib/smbios.c b/lib/smbios.c > > index 4126466e34a..e2a2f873a94 100644 > > --- a/lib/smbios.c > > +++ b/lib/smbios.c > > @@ -348,7 +348,14 @@ 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 < 0x1000000) { > > nit, but can we use SZ_16M instead? Then the comment below goes away > > > + /* CONFIG_ROM_SIZE < 16 MiB */ > > + t->bios_rom_size = (CONFIG_ROM_SIZE / 65536) - 1; > > + } else { > > + /* CONFIG_ROM_SIZE < 8 GiB */ > > + t->bios_rom_size = 0xff; > > If the size is above 1gb we should also change bits 15:14. I guess > being above 1GB will never happen, but can we add a comment?
Ah scratch that, you only convert and report mbytes, so that's fine With or without the nit above Reviewed-by: Ilias Apalodimas <ilias.apalodi...@linaro.org> > > Thanks > /IIlias > > + t->extended_bios_rom_size = CONFIG_ROM_SIZE >> 20; > > + } > > #endif > > t->bios_characteristics = BIOS_CHARACTERISTICS_PCI_SUPPORTED | > > BIOS_CHARACTERISTICS_SELECTABLE_BOOT | > > -- > > 2.45.2 > >