From 432762410e74b94a17be6e1027592c9d6ced8610 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Tue, 11 Nov 2014 08:31:26 -0800 Subject: samus: Move board version to a separate file This combines the board version reading and parsing to a separate file that is compiled in both romstage (for early serial output) and ramstage (for smbios tables). It also adds a new board version that is wrapped back to number zero as we are running out of available IDs. BUG=chrome-os-partner:32895 BRANCH=samus TEST=build and boot on samus EVT1 and EVT2 and check for proper board versions reported in console and smbios. Change-Id: I8c8f17708ced7167277a98529ff4597589f53095 Signed-off-by: Stefan Reinauer Original-Commit-Id: 3ab8bba1021a8dd41dd2210ba73efd2231eb596c Original-Change-Id: I2aa03e7486a9581f94dc4e12f6f29eb0c5b3bdbb Original-Signed-off-by: Duncan Laurie Original-Reviewed-on: https://chromium-review.googlesource.com/229041 Original-Reviewed-by: Aaron Durbin Reviewed-on: http://review.coreboot.org/9473 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- src/mainboard/google/samus/Makefile.inc | 3 +++ src/mainboard/google/samus/board_version.c | 37 ++++++++++++++++++++++++++++++ src/mainboard/google/samus/board_version.h | 30 ++++++++++++++++++++++++ src/mainboard/google/samus/ec.h | 4 ---- src/mainboard/google/samus/mainboard.c | 12 ++-------- src/mainboard/google/samus/romstage.c | 5 ++-- 6 files changed, 75 insertions(+), 16 deletions(-) create mode 100644 src/mainboard/google/samus/board_version.c create mode 100644 src/mainboard/google/samus/board_version.h (limited to 'src/mainboard') diff --git a/src/mainboard/google/samus/Makefile.inc b/src/mainboard/google/samus/Makefile.inc index 502204e990..e8013a8117 100644 --- a/src/mainboard/google/samus/Makefile.inc +++ b/src/mainboard/google/samus/Makefile.inc @@ -28,3 +28,6 @@ smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c romstage-y += pei_data.c ramstage-y += pei_data.c + +romstage-y += board_version.c +ramstage-y += board_version.c diff --git a/src/mainboard/google/samus/board_version.c b/src/mainboard/google/samus/board_version.c new file mode 100644 index 0000000000..4575dd58bd --- /dev/null +++ b/src/mainboard/google/samus/board_version.c @@ -0,0 +1,37 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2014 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. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "board_version.h" + +const char *samus_board_version(void) +{ + switch (google_chromeec_get_board_version()) { + case SAMUS_EC_BOARD_VERSION_EVT1: + return "EVT1"; + case SAMUS_EC_BOARD_VERSION_EVT2: + return "EVT2"; + case SAMUS_EC_BOARD_VERSION_EVT3: + return "EVT3"; + case SAMUS_EC_BOARD_VERSION_EVT4: + return "EVT4"; + default: + return "Unknown"; + } +} diff --git a/src/mainboard/google/samus/board_version.h b/src/mainboard/google/samus/board_version.h new file mode 100644 index 0000000000..8b3fea38b0 --- /dev/null +++ b/src/mainboard/google/samus/board_version.h @@ -0,0 +1,30 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2014 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. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SAMUS_BOARD_VERSION_H +#define SAMUS_BOARD_VERSION_H + +#define SAMUS_EC_BOARD_VERSION_EVT1 3 +#define SAMUS_EC_BOARD_VERSION_EVT2 4 +#define SAMUS_EC_BOARD_VERSION_EVT3 5 +#define SAMUS_EC_BOARD_VERSION_EVT4 0 + +const char *samus_board_version(void); + +#endif diff --git a/src/mainboard/google/samus/ec.h b/src/mainboard/google/samus/ec.h index 295d04001f..1ba16777ce 100644 --- a/src/mainboard/google/samus/ec.h +++ b/src/mainboard/google/samus/ec.h @@ -22,10 +22,6 @@ #include -#define SAMUS_EC_BOARD_VERSION_EVT 3 -#define SAMUS_EC_BOARD_VERSION_EVT2 4 -#define SAMUS_EC_BOARD_VERSION_EVT3 5 - #define EC_SCI_GPI 36 /* GPIO36 is EC_SCI# */ #define EC_SMI_GPI 34 /* GPIO34 is EC_SMI# */ diff --git a/src/mainboard/google/samus/mainboard.c b/src/mainboard/google/samus/mainboard.c index 85e9dfbbee..53f31a59f8 100644 --- a/src/mainboard/google/samus/mainboard.c +++ b/src/mainboard/google/samus/mainboard.c @@ -32,7 +32,7 @@ #include #include #include -#include +#include "board_version.h" #include "ec.h" void mainboard_suspend_resume(void) @@ -41,15 +41,7 @@ void mainboard_suspend_resume(void) const char *smbios_mainboard_version(void) { - switch (google_chromeec_get_board_version()) { - case SAMUS_EC_BOARD_VERSION_EVT: - return "EVT"; - case SAMUS_EC_BOARD_VERSION_EVT2: - return "EVT2"; - case SAMUS_EC_BOARD_VERSION_EVT3: - return "EVT3"; - } - return "Unknown"; + return samus_board_version(); } static void mainboard_init(device_t dev) diff --git a/src/mainboard/google/samus/romstage.c b/src/mainboard/google/samus/romstage.c index 55658f5bd9..7c9aa6ee2b 100644 --- a/src/mainboard/google/samus/romstage.c +++ b/src/mainboard/google/samus/romstage.c @@ -30,6 +30,8 @@ #include #include #include +#include +#include "board_version.h" void mainboard_romstage_entry(struct romstage_params *rp) { @@ -40,8 +42,7 @@ void mainboard_romstage_entry(struct romstage_params *rp) if (rp->power_state->prev_sleep_state != SLEEP_STATE_S3) google_chromeec_kbbacklight(100); - printk(BIOS_INFO, "MLB: board version %d\n", - google_chromeec_get_board_version()); + printk(BIOS_INFO, "MLB: board version %s\n", samus_board_version()); /* Ensure the EC and PD are in the right mode for recovery */ google_chromeec_early_pd_init(); -- cgit v1.2.3