[PATCH] smbios: Fix BIOS Characteristics Extension Byte 2

Simon Glass sjg at chromium.org
Sat Jun 26 20:29:59 CEST 2021


Hi Ilias,

On Wed, 9 Jun 2021 at 09:14, Ilias Apalodimas
<ilias.apalodimas at linaro.org> wrote:
>
> We currently define the EFI support of an SMBIOS table as the third bit of
> "BIOS Characteristics Extension Byte 1".  The latest DMTF spec defines it
> on "BIOS Characteristics Extension Byte 2".
>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> ---
>  include/smbios.h | 2 +-
>  lib/smbios.c     | 5 +++--
>  2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/include/smbios.h b/include/smbios.h
> index ffeefb47372d..fc49fc10b9d7 100644
> --- a/include/smbios.h
> +++ b/include/smbios.h
> @@ -60,7 +60,7 @@ struct __packed smbios_entry {
>  #define BIOS_CHARACTERISTICS_SELECTABLE_BOOT   (1 << 16)
>
>  #define BIOS_CHARACTERISTICS_EXT1_ACPI         (1 << 0)
> -#define BIOS_CHARACTERISTICS_EXT1_UEFI         (1 << 3)
> +#define BIOS_CHARACTERISTICS_EXT2_UEFI         (1 << 3)
>  #define BIOS_CHARACTERISTICS_EXT2_TARGET       (1 << 2)
>
>  struct __packed smbios_type0 {
> diff --git a/lib/smbios.c b/lib/smbios.c
> index 9eb226ec9fbd..abdd157a7084 100644
> --- a/lib/smbios.c
> +++ b/lib/smbios.c
> @@ -214,6 +214,7 @@ static int smbios_write_type0(ulong *current, int handle,
>                 gd->smbios_version = ctx->last_str;
>         log_debug("smbios_version = %p: '%s'\n", gd->smbios_version,
>                   gd->smbios_version);
> +       t->bios_characteristics_ext2 = 0;
>  #ifdef LOG_DEBUG
>         print_buffer((ulong)gd->smbios_version, gd->smbios_version,
>                      1, strlen(gd->smbios_version) + 1, 0);
> @@ -229,9 +230,9 @@ static int smbios_write_type0(ulong *current, int handle,
>         t->bios_characteristics_ext1 = BIOS_CHARACTERISTICS_EXT1_ACPI;
>  #endif
>  #ifdef CONFIG_EFI_LOADER

Can you please drop this #ifdef while you are here - should use IS_ENABLED()

> -       t->bios_characteristics_ext1 |= BIOS_CHARACTERISTICS_EXT1_UEFI;
> +       t->bios_characteristics_ext2 |= BIOS_CHARACTERISTICS_EXT2_UEFI;
>  #endif
> -       t->bios_characteristics_ext2 = BIOS_CHARACTERISTICS_EXT2_TARGET;
> +       t->bios_characteristics_ext2 |= BIOS_CHARACTERISTICS_EXT2_TARGET;
>
>         /* bios_major_release has only one byte, so drop century */
>         t->bios_major_release = U_BOOT_VERSION_NUM % 100;
> --
> 2.32.0.rc0
>

Regards,
Simon


More information about the U-Boot mailing list