[PATCH v2 4/4] smbios: Add documentation and devicetree binding

Heinrich Schuchardt xypron.glpk at gmx.de
Fri Oct 2 16:57:15 CEST 2020


On 02.10.20 16:23, Simon Glass wrote:
> Add information about how to set SMBIOS properties using the devicetree.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
>  doc/arch/x86.rst                             |  8 +++++
>  doc/device-tree-bindings/board/board_x86.txt | 36 ++++++++++++++++++++
>  2 files changed, 44 insertions(+)
>  create mode 100644 doc/device-tree-bindings/board/board_x86.txt
>
> diff --git a/doc/arch/x86.rst b/doc/arch/x86.rst
> index c6b70ce61a3..45f9ba308c7 100644
> --- a/doc/arch/x86.rst
> +++ b/doc/arch/x86.rst
> @@ -740,6 +740,14 @@ Note that this is a development feature only. It is not intended for use in
>  production environments. Also it is not currently part of the automated tests
>  so may break in the future.
>
> +SMBIOS tables
> +-------------
> +
> +To generate SMBIOS tables in U-Boot, for use by the OS, enable the
> +CONFIG_GENERATE_SMBIOS_TABLE option. The easiest way to provide the values to
> +use is via the device tree. For details see
> +device-tree-bindings/board/board_x86.txt
> +
>  TODO List
>  ---------
>  - Audio
> diff --git a/doc/device-tree-bindings/board/board_x86.txt b/doc/device-tree-bindings/board/board_x86.txt
> new file mode 100644
> index 00000000000..3766751896a
> --- /dev/null
> +++ b/doc/device-tree-bindings/board/board_x86.txt
> @@ -0,0 +1,36 @@
> +x86 board driver
> +================
> +
> +This driver allows providing board-specific features such as power control
> +GPIOs. In addition, the SMBIOS values can be specified in the device tree,
> +as below:
> +
> +An optional 'smbios' subnode can be used to provide these properties.
> +
> +Optional properties:
> +  - manufacturer: Product manufacturer for system / baseboard
> +  - product:      Product name
> +  - version:      Product version string
> +  - serial:       Serial number for system (note that this can be overridden by
> +                      the serial# environment variable)
> +  - sku:          Product SKU (Stock-Keeping Unit)
> +  - family:       Product family
> +  - asset-tag:    Asset tag for the motherboard, sometimes used in organisations
> +                      to track devices
> +
> +
> +Example:
> +
> +	board {
> +		compatible = "google,coral";
> +
> +		smbios {

I think board is the wrong place for the new node.

SMBIOS also includes chassis, processor and other information. We may
opt to provide non-board information in future via the device-tree.

If this is for U-Boot internal only usage, we should indicate this in
the label name.

So it could be like:

/u-boot-smbios {
   bios {};
   system {};
   board {
      manufacturer = "Hardkernel Co., Ltd.";
      product = "ODROID-C2";
      ...
   };
   chassis {};
   processor {};
   boot {};
};

> +			manufacturer = "Google";
> +			product = "Coral";
> +			version = "rev2";
> +			serial = "123456789";
> +			sku = "sku3";
> +			family = "Google_Coral";
> +			asset-tag = "ABC123";
> +		};
> +	};
>

SMBIOS is not x86 specific. On ARM we are also passing an SMBIOS table.

On my Odroid C2 dmidecode shows the information provided by U-Boot:

....
Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: Hardkernel Co., Ltd.
        Product Name: ODROID-C2
        Version: Not Specified
...
        Wake-up Type: Reserved
        SKU Number: Not Specified
        Family: Not Specified
....


So doc/device-tree-bindings/board/board_x86.txt is the wrong place to
document the new device tree node.

Why not create a document doc/device-tree-bindings/smbios.rst for it?

Best regards

Heinrich



More information about the U-Boot mailing list