diff options
author | Duncan Laurie <dlaurie@chromium.org> | 2014-11-11 08:31:26 -0800 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2015-04-10 19:34:59 +0200 |
commit | 432762410e74b94a17be6e1027592c9d6ced8610 (patch) | |
tree | 9d664ac7b4d0002cbd6ca87fc8cb85bf75ad7eb0 | |
parent | dd281edcfab464c4bf9df3fa9d86db5639c845e0 (diff) | |
download | coreboot-432762410e74b94a17be6e1027592c9d6ced8610.tar.xz |
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 <reinauer@chromium.org>
Original-Commit-Id: 3ab8bba1021a8dd41dd2210ba73efd2231eb596c
Original-Change-Id: I2aa03e7486a9581f94dc4e12f6f29eb0c5b3bdbb
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/229041
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/9473
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
-rw-r--r-- | src/mainboard/google/samus/Makefile.inc | 3 | ||||
-rw-r--r-- | src/mainboard/google/samus/board_version.c | 37 | ||||
-rw-r--r-- | src/mainboard/google/samus/board_version.h | 30 | ||||
-rw-r--r-- | src/mainboard/google/samus/ec.h | 4 | ||||
-rw-r--r-- | src/mainboard/google/samus/mainboard.c | 12 | ||||
-rw-r--r-- | src/mainboard/google/samus/romstage.c | 5 |
6 files changed, 75 insertions, 16 deletions
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 <ec/google/chromeec/ec.h> +#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 <ec/google/chromeec/ec_commands.h> -#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 <arch/io.h> #include <arch/interrupt.h> #include <boot/coreboot_tables.h> -#include <ec/google/chromeec/ec.h> +#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 <soc/romstage.h> #include <mainboard/google/samus/spd/spd.h> #include <mainboard/google/samus/gpio.h> +#include <ec/google/chromeec/ec.h> +#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(); |