From 1a50d08fc7671cea527299df5b80c0bbfa450f91 Mon Sep 17 00:00:00 2001
From: Duncan Laurie <dlaurie@chromium.org>
Date: Fri, 4 Sep 2015 10:12:59 -0700
Subject: glados: Add Board ID support

Add support for reading board id and populating it in the
coreboot tables so it is exposed to payloads.

BUG=chrome-os-partner:40635
BRANCH=none
TEST=boot on glados and look for reported board ID

Change-Id: Iba93a913b67e3b3230aded289c2e25585dec1195
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 472cb7bc84136a1a8b284d661868e64eca4ec004
Original-Change-Id: I478dc0b2f96310b7adbd84701e70598a57306628
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/297746
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/11570
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
---
 src/mainboard/google/glados/Kconfig      |  1 +
 src/mainboard/google/glados/Makefile.inc |  2 ++
 src/mainboard/google/glados/boardid.c    | 32 ++++++++++++++++++++++++++++++++
 3 files changed, 35 insertions(+)
 create mode 100644 src/mainboard/google/glados/boardid.c

(limited to 'src')

diff --git a/src/mainboard/google/glados/Kconfig b/src/mainboard/google/glados/Kconfig
index 587002f1c3..26fd08be14 100644
--- a/src/mainboard/google/glados/Kconfig
+++ b/src/mainboard/google/glados/Kconfig
@@ -2,6 +2,7 @@ if BOARD_GOOGLE_GLADOS
 
 config BOARD_SPECIFIC_OPTIONS # dummy
 	def_bool y
+	select BOARD_ID_AUTO
 	select BOARD_ROMSIZE_KB_16384
 	select CACHE_ROM
 	select EC_GOOGLE_CHROMEEC
diff --git a/src/mainboard/google/glados/Makefile.inc b/src/mainboard/google/glados/Makefile.inc
index 93fc3d6430..39129e86e5 100644
--- a/src/mainboard/google/glados/Makefile.inc
+++ b/src/mainboard/google/glados/Makefile.inc
@@ -19,6 +19,7 @@
 
 subdirs-y += spd
 
+romstage-y += boardid.c
 romstage-y += pei_data.c
 
 romstage-$(CONFIG_CHROMEOS) += chromeos.c
@@ -26,6 +27,7 @@ ramstage-$(CONFIG_CHROMEOS) += chromeos.c
 
 ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC) += ec.c
 
+ramstage-y += boardid.c
 ramstage-y += mainboard.c
 ramstage-y += pei_data.c
 ramstage-y += ramstage.c
diff --git a/src/mainboard/google/glados/boardid.c b/src/mainboard/google/glados/boardid.c
new file mode 100644
index 0000000000..59c6fff3b6
--- /dev/null
+++ b/src/mainboard/google/glados/boardid.c
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2015 Google Inc.
+ * Copyright (C) 2015 Intel Corporation
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.
+ */
+
+#include <boardid.h>
+#include <ec/google/chromeec/ec.h>
+
+uint8_t board_id(void)
+{
+	MAYBE_STATIC int id = -1;
+
+	if (id < 0)
+		id = google_chromeec_get_board_version();
+
+	return id;
+}
-- 
cgit v1.2.3