[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