[PATCH v3 6/6] smbios: Add documentation and devicetree binding

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Oct 22 07:51:17 CEST 2020


On 10/22/20 5:08 AM, Simon Glass wrote:
> Add information about how to set SMBIOS properties using the devicetree.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v3:
> - Add onto the sysinfo binding
>
>  doc/arch/x86.rst                            |  8 +++
>  doc/device-tree-bindings/sysinfo/smbios.txt | 77 +++++++++++++++++++++
>  2 files changed, 85 insertions(+)
>  create mode 100644 doc/device-tree-bindings/sysinfo/smbios.txt
>
> diff --git a/doc/arch/x86.rst b/doc/arch/x86.rst
> index c6b70ce61a3..cc307aa8d5e 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/sysinfo/smbios.txt
> +
>  TODO List
>  ---------
>  - Audio
> diff --git a/doc/device-tree-bindings/sysinfo/smbios.txt b/doc/device-tree-bindings/sysinfo/smbios.txt
> new file mode 100644
> index 00000000000..b5223228025
> --- /dev/null
> +++ b/doc/device-tree-bindings/sysinfo/smbios.txt
> @@ -0,0 +1,77 @@
> +SMBIOS sysinfo information
> +==========================
> +
> +This binding allows the values for the SMBIOS tables to be specified in the
> +devicetree, as below.
> +
> +Required properties:
> +
> +  - compatible: "u-boot,smbios" or any other string depending on your board
> +
> +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. Within
> +that, the properties are broken down by table type, as in the System Management
> +BIOS (Basic Input/Output System) Specification.
> +
> +Available subnodes for each table type are:
> +
> +  - 1 : system
> +  - 2 : baseboard
> +  - 3 : chassis
> +
> +Within each subnode the following tables are recognised:
> +
> +"system" subnode optional properties:
> +
> +  - manufacturer: Product manufacturer for system
> +  - 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
> +
> +"baseboard" subnode optional properties:
> +
> +  - manufacturer: Product manufacturer for baseboard
> +  - product:      Product name
> +  - asset-tag:    Asset tag for the motherboard, sometimes used in organisations
> +                      to track devices
> +
> +"chassis" subnode optional properties:
> +
> +  - manufacturer: Product manufacturer for chassis
> +
> +
> +Example:
> +
> +sysinfo {
> +	compatible = "sandbox,sysinfo-sandbox";

Most boards use don't use ACPI but device-trees for calling
the operating system.
We try to keep our device-trees in sync with Linux.
The device-tree available under $fdtcontroladdr should be
usable to boot the OS.
We should avoid anything that could lead now or in the future
to a conflict with the the OS usage of the device tree nodes.

Please, use in the example a compatibility string that is
unique to U-Boot.

How about: "uboot,sandbox-sysinfo"?

Best regards

Heinrich

> +
> +	smbios {
> +		/* Type 1 table */
> +		system {
> +			manufacturer = "Google";
> +			product = "Coral";
> +			version = "rev2";
> +			serial = "123456789";
> +			sku = "sku3";
> +			family = "Google_Coral";
> +		};
> +
> +		/* Type 2 table */
> +		baseboard {
> +			manufacturer = "Google";
> +			product = "Coral";
> +			asset-tag = "ABC123";
> +		};
> +
> +		/* Type 3 table */
> +		chassis {
> +			manufacturer = "Google";
> +		};
> +	};
> +};
>



More information about the U-Boot mailing list