[PATCH v2 6/8] armv8: Add generic smbios information into the device tree

Simon Glass sjg at chromium.org
Mon Oct 28 18:04:45 CET 2024


Hi Raymond,

On Tue, 22 Oct 2024 at 22:07, Raymond Mao <raymond.mao at linaro.org> wrote:
>
> Add common smbios information that can be used by all armv8
> platforms and set it as default for qemu-arm64.
> From now smbios library can load values from here for those fields
> doesn't exist in the sysinfo driver.
>
> To run this with QEMU arm64, please dump the generated DTB
> from QEMU first, merge it with the one we build and then re-run
> QEMU with the merged DTB.
> ```
> qemu-system-arm -machine virt -machine dumpdtb=qemu.dtb
> cat  <(dtc -I dtb qemu.dtb) <(dtc -I dtb ./dts/dt.dtb | \
>   grep -v /dts-v1/) | dtc - -o merged.dtb
> qemu-system-arm -machine virt -nographic -bios u-boot.bin \
>   -dtb merged.dtb

and please talk to Peter about accepting my patch[1]


> ```
> For details please take reference on dt_qemu.rst
>
> Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
> ---
> Changes in v2
> - Initial patch.
>
>  arch/arm/dts/qemu-arm64.dts      |  4 ++
>  arch/arm/dts/smbios_generic.dtsi | 82 ++++++++++++++++++++++++++++++++
>  2 files changed, 86 insertions(+)
>  create mode 100644 arch/arm/dts/smbios_generic.dtsi
>
> diff --git a/arch/arm/dts/qemu-arm64.dts b/arch/arm/dts/qemu-arm64.dts
> index 096b3910728..95fcf53ed74 100644
> --- a/arch/arm/dts/qemu-arm64.dts
> +++ b/arch/arm/dts/qemu-arm64.dts
> @@ -7,5 +7,9 @@
>
>  /dts-v1/;
>
> +#if defined(CONFIG_SYSINFO_SMBIOS) && !defined(QFW_SMBIOS)
> +#include "smbios_generic.dtsi"
> +#endif
> +
>  / {
>  };
> diff --git a/arch/arm/dts/smbios_generic.dtsi
b/arch/arm/dts/smbios_generic.dtsi
> new file mode 100644
> index 00000000000..c9f07283403
> --- /dev/null
> +++ b/arch/arm/dts/smbios_generic.dtsi
> @@ -0,0 +1,82 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Default SMBIOS information for Arm64 platforms
> + *
> + * Copyright (c) 2024 Linaro Limited
> + * Author: Raymond Mao <raymond.mao at linaro.org>
> + */
> +#include <config.h>
> +#include <smbios_def.h>
> +
> +/ {
> +       smbios {
> +               compatible = "u-boot,sysinfo-smbios";
> +
> +               smbios {
> +                       system {
> +                               manufacturer = CONFIG_SYS_VENDOR;
> +                               product = CONFIG_SYS_BOARD;
> +                               version = "Not Specified";
> +                               serial = "Not Specified";

Does it make sense to add these strings? Perhaps if the property is missing
in the DT, it should be missing in the SMBIOS table? Is 'Not Specified' a
special string in the SMBIO spec?

> +                               wakeup-type =
<SMBIOS_WAKEUP_TYPE_UNKNOWN>;
> +                               sku = "Not Specified";
> +                               family = "armv8";
> +                       };
> +
> +                       baseboard {
> +                               manufacturer = CONFIG_SYS_VENDOR;
> +                               product = CONFIG_SYS_BOARD;
> +                               version = "Not Specified";
> +                               serial = "Not Specified";
> +                               asset-tag = "Not Specified";
> +                               chassis-location = "Not Specified";
> +                               feature-flags =
<SMBIOS_BOARD_FEAT_HOST_BOARD>;
> +                               board-type =
<SMBIOS_BOARD_TYPE_MOTHERBOARD>;
> +                       };
> +
> +                       chassis {
> +                               manufacturer = CONFIG_SYS_VENDOR;
> +                               version = "Not Specified";
> +                               serial = "Not Specified";
> +                               asset-tag = "Not Specified";
> +                               chassis-type = <SMBIOS_ENCLOSURE_DESKTOP>;
> +                               bootup-state = <SMBIOS_STATE_SAFE>;
> +                               power-supply-state = <SMBIOS_STATE_SAFE>;
> +                               thermal-state = <SMBIOS_STATE_SAFE>;
> +                               security-status = <SMBIOS_SECURITY_NONE>;
> +                               oem-defined = <SMBIOS_ENCLOSURE_OEM_UND>;
> +                               height = <SMBIOS_ENCLOSURE_HEIGHT_UND>;
> +                               number-of-power-cords =
<SMBIOS_POWCORD_NUM_UND>;
> +                       };
> +
> +                       processor {
> +                               version = "Not Specified";
> +                               processor-type =
<SMBIOS_PROCESSOR_TYPE_CENTRAL>;
> +                               processor-status =
<SMBIOS_PROCESSOR_STATUS_ENABLED>;
> +                               upgrade = <SMBIOS_PROCESSOR_UPGRADE_NONE>;
> +                               family = <SMBIOS_PROCESSOR_FAMILY_EXT>;
> +                               family2 = <SMBIOS_PROCESSOR_FAMILY_ARMV8>;
> +                               socket-design = "Not Specified";
> +                               serial = "Not Specified";
> +                               asset-tag = "Not Specified";
> +                               part-number = "Not Specified";
> +                       };
> +
> +                       cache {
> +                               l1-cache {
> +                                       socket-design = "Not Specified";
> +                                       config = <(SMBIOS_CACHE_LEVEL_1 |
> +                                                  SMBIOS_CACHE_ENABLED |
> +                                                  SMBIOS_CACHE_OP_WB)>;
> +                               };
> +
> +                               l2-cache {
> +                                       socket-design = "Not Specified";
> +                                       config = <(SMBIOS_CACHE_LEVEL_2 |
> +                                                  SMBIOS_CACHE_ENABLED |
> +                                                  SMBIOS_CACHE_OP_WB)>;
> +                               };
> +                       };
> +               };
> +       };
> +};
> --
> 2.25.1
>

Regards,
Simon


[1]
https://patchwork.kernel.org/project/qemu-devel/patch/20210926183410.256484-1-sjg@chromium.org/#24481799


More information about the U-Boot mailing list