
On Thu, Oct 22, 2020 at 10:21 PM Simon Glass sjg@chromium.org wrote:
Some boards want to specify the manuafacture or product name but do not
typo: manufacturer
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
(no changes since v1)
drivers/sysinfo/Kconfig | 8 ++++++++ drivers/sysinfo/Makefile | 1 + drivers/sysinfo/smbios.c | 24 ++++++++++++++++++++++++ lib/Kconfig | 3 +++ 4 files changed, 36 insertions(+) create mode 100644 drivers/sysinfo/smbios.c
diff --git a/drivers/sysinfo/Kconfig b/drivers/sysinfo/Kconfig index 39141500a05..ee55b6206f4 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 manuafacture or product name but do
typo: manufacturer
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 aecf0b0d47c..6d04fcba1d1 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 00000000000..80ebd1921d8 --- /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 37aae73a266..ab2fa3cc706 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -644,6 +644,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
Otherwise, Reviewed-by: Bin Meng bmeng.cn@gmail.com