summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2016-11-08 10:04:04 -0600
committerAaron Durbin <adurbin@chromium.org>2016-11-09 16:52:06 +0100
commit15d2a79a1a50c9321267bfe1a8ee2be8767315a1 (patch)
treecaebb34c8821648ac10ee205dfa1147d0cb5410b
parent5577a475fcb22671aae2b483a1372b677c016cb9 (diff)
vendorcode/google: add common smbios mainboard version support
Provide an option to deliver the mainboard smbios version in the form of 'rev%d' based on the board_id() value. BUG=chromium:663243 Change-Id: If0a34935f570612da6e0c950fd7e8f0d92b6984f Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/17290 Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins)
-rw-r--r--src/vendorcode/google/Kconfig8
-rw-r--r--src/vendorcode/google/Makefile.inc2
-rw-r--r--src/vendorcode/google/smbios.c27
3 files changed, 37 insertions, 0 deletions
diff --git a/src/vendorcode/google/Kconfig b/src/vendorcode/google/Kconfig
index f275e6ca35..fcb28dfc97 100644
--- a/src/vendorcode/google/Kconfig
+++ b/src/vendorcode/google/Kconfig
@@ -13,3 +13,11 @@
##
source src/vendorcode/google/chromeos/Kconfig
+
+config GOOGLE_SMBIOS_MAINBOARD_VERSION
+ bool
+ default n
+ depends on GENERATE_SMBIOS_TABLES
+ help
+ Provide a common implementation for mainboard version,
+ which returns a formatted 'rev%d' board_id() string.
diff --git a/src/vendorcode/google/Makefile.inc b/src/vendorcode/google/Makefile.inc
index 6e950a1ebf..60ff84d01e 100644
--- a/src/vendorcode/google/Makefile.inc
+++ b/src/vendorcode/google/Makefile.inc
@@ -14,3 +14,5 @@
##
subdirs-$(CONFIG_CHROMEOS) += chromeos
+
+ramstage-$(CONFIG_GOOGLE_SMBIOS_MAINBOARD_VERSION) += smbios.c
diff --git a/src/vendorcode/google/smbios.c b/src/vendorcode/google/smbios.c
new file mode 100644
index 0000000000..7b147cdfe4
--- /dev/null
+++ b/src/vendorcode/google/smbios.c
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2016 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <boardid.h>
+#include <smbios.h>
+#include <string.h>
+
+const char *smbios_mainboard_version(void)
+{
+ static char str[8];
+
+ snprintf(str, sizeof(str), "rev%d", board_id());
+
+ return str;
+}