diff options
author | Simon Glass <sjg@chromium.org> | 2020-11-05 06:32:11 -0700 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2020-11-06 10:18:20 +0800 |
commit | 44c74bdd5828c885b97a1518b9d85239a1020c6c (patch) | |
tree | 93c7b4344741ebde63b5e143dbc10ee75d4dba35 | |
parent | f96965315489fcb7fc9df8fe4da0137150bb3826 (diff) | |
download | u-boot-44c74bdd5828c885b97a1518b9d85239a1020c6c.zip u-boot-44c74bdd5828c885b97a1518b9d85239a1020c6c.tar.gz u-boot-44c74bdd5828c885b97a1518b9d85239a1020c6c.tar.bz2 |
sysinfo: Provide a default driver to set SMBIOS values
Some boards want to specify the manufacturer or product name but do not
need to have their own sysinfo driver.
Add a default driver which provides a way to specify this SMBIOS
information in the devicetree, without needing any board-specific
functionality.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
-rw-r--r-- | drivers/sysinfo/Kconfig | 8 | ||||
-rw-r--r-- | drivers/sysinfo/Makefile | 1 | ||||
-rw-r--r-- | drivers/sysinfo/smbios.c | 24 | ||||
-rw-r--r-- | lib/Kconfig | 3 |
4 files changed, 36 insertions, 0 deletions
diff --git a/drivers/sysinfo/Kconfig b/drivers/sysinfo/Kconfig index 3914150..85c1e81 100644 --- a/drivers/sysinfo/Kconfig +++ b/drivers/sysinfo/Kconfig @@ -22,4 +22,12 @@ config SYSINFO_SANDBOX help Support querying device information for the Sandbox boards. +config SYSINFO_SMBIOS + bool "Provide a default sysinfo driver for SMBIOS information" + help + Some boards want to specify the manufacturer or product name but do + not need to have their own sysinfo driver. This includes a default + one which provides a way to specify this SMBIOS information in the + devicetree, without needing any board-specific functionality. + endif diff --git a/drivers/sysinfo/Makefile b/drivers/sysinfo/Makefile index aecf0b0..6d04fcb 100644 --- a/drivers/sysinfo/Makefile +++ b/drivers/sysinfo/Makefile @@ -5,3 +5,4 @@ obj-y += sysinfo-uclass.o obj-$(CONFIG_SYSINFO_GAZERBEAM) += gazerbeam.o obj-$(CONFIG_SYSINFO_SANDBOX) += sandbox.o +obj-$(CONFIG_SYSINFO_SMBIOS) += smbios.o diff --git a/drivers/sysinfo/smbios.c b/drivers/sysinfo/smbios.c new file mode 100644 index 0000000..80ebd19 --- /dev/null +++ b/drivers/sysinfo/smbios.c @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2020 Google LLC + * Written by Simon Glass <sjg@chromium.org> + */ + +#include <common.h> +#include <dm.h> +#include <sysinfo.h> + +static const struct udevice_id sysinfo_smbios_ids[] = { + { .compatible = "u-boot,sysinfo-smbios" }, + { /* sentinel */ } +}; + +static const struct sysinfo_ops sysinfo_smbios_ops = { +}; + +U_BOOT_DRIVER(sysinfo_smbios) = { + .name = "sysinfo_smbios", + .id = UCLASS_SYSINFO, + .of_match = sysinfo_smbios_ids, + .ops = &sysinfo_smbios_ops, +}; diff --git a/lib/Kconfig b/lib/Kconfig index 8f48753..fdc35a9 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -658,6 +658,9 @@ config GENERATE_SMBIOS_TABLE Check http://www.dmtf.org/standards/smbios for details. + See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in + the devicetree. + config SMBIOS_MANUFACTURER string "SMBIOS Manufacturer" depends on GENERATE_SMBIOS_TABLE |