aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-11-05 06:32:11 -0700
committerBin Meng <bmeng.cn@gmail.com>2020-11-06 10:18:20 +0800
commit44c74bdd5828c885b97a1518b9d85239a1020c6c (patch)
tree93c7b4344741ebde63b5e143dbc10ee75d4dba35
parentf96965315489fcb7fc9df8fe4da0137150bb3826 (diff)
downloadu-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/Kconfig8
-rw-r--r--drivers/sysinfo/Makefile1
-rw-r--r--drivers/sysinfo/smbios.c24
-rw-r--r--lib/Kconfig3
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