summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2017-06-02 21:48:01 +0200
committerPatrick Georgi <pgeorgi@google.com>2017-06-05 22:44:01 +0200
commitb09933a2eb9b0fbbfe35392dac98d415290867aa (patch)
tree597b5993b4e5743dc67f9e2a1d1d86ca4856b095
parent34e10871f9f1004a0c007a26d2d77440997fafa1 (diff)
downloadcoreboot-b09933a2eb9b0fbbfe35392dac98d415290867aa.tar.xz
google/reef: Add coral
A new variant copied from reef. Allow override of the SKU. Change-Id: Ibe160e75aa23623812f0fb9121d1d8226afc00d8 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://review.coreboot.org/20020 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/mainboard/google/reef/Kconfig3
-rw-r--r--src/mainboard/google/reef/Kconfig.name5
-rw-r--r--src/mainboard/google/reef/mainboard.c8
-rw-r--r--src/mainboard/google/reef/variants/baseboard/include/baseboard/variants.h2
-rw-r--r--src/mainboard/google/reef/variants/coral/Makefile.inc1
-rw-r--r--src/mainboard/google/reef/variants/coral/include/variant/acpi/dptf.asl16
-rw-r--r--src/mainboard/google/reef/variants/coral/include/variant/ec.h21
-rw-r--r--src/mainboard/google/reef/variants/coral/include/variant/gpio.h21
-rw-r--r--src/mainboard/google/reef/variants/coral/mainboard.c32
9 files changed, 105 insertions, 4 deletions
diff --git a/src/mainboard/google/reef/Kconfig b/src/mainboard/google/reef/Kconfig
index 0d3ec38e51..f3360ca649 100644
--- a/src/mainboard/google/reef/Kconfig
+++ b/src/mainboard/google/reef/Kconfig
@@ -57,6 +57,7 @@ config VARIANT_DIR
default "sand" if BOARD_GOOGLE_SAND
default "snappy" if BOARD_GOOGLE_SNAPPY
default "nasher" if BOARD_GOOGLE_NASHER
+ default "coral" if BOARD_GOOGLE_CORAL
config DEVICETREE
string
@@ -72,6 +73,7 @@ config MAINBOARD_PART_NUMBER
default "Sand" if BOARD_GOOGLE_SAND
default "Snappy" if BOARD_GOOGLE_SNAPPY
default "Nasher" if BOARD_GOOGLE_NASHER
+ default "Coral" if BOARD_GOOGLE_CORAL
config MAINBOARD_FAMILY
string
@@ -85,6 +87,7 @@ config GBB_HWID
default "SAND TEST 1904" if BOARD_GOOGLE_SAND
default "SNAPPY TEST 1088" if BOARD_GOOGLE_SNAPPY
default "NASHER TEST 4258" if BOARD_GOOGLE_NASHER
+ default "CORAL TEST 8594" if BOARD_GOOGLE_CORAL
config MAX_CPUS
int
diff --git a/src/mainboard/google/reef/Kconfig.name b/src/mainboard/google/reef/Kconfig.name
index 30e6a5d6eb..596167dcef 100644
--- a/src/mainboard/google/reef/Kconfig.name
+++ b/src/mainboard/google/reef/Kconfig.name
@@ -22,3 +22,8 @@ config BOARD_GOOGLE_NASHER
bool "Nasher"
select BOARD_GOOGLE_BASEBOARD_REEF
select BASEBOARD_REEF_LAPTOP
+
+config BOARD_GOOGLE_CORAL
+ bool "Coral"
+ select BOARD_GOOGLE_BASEBOARD_REEF
+ select BASEBOARD_REEF_LAPTOP
diff --git a/src/mainboard/google/reef/mainboard.c b/src/mainboard/google/reef/mainboard.c
index 702269c135..c6b199700e 100644
--- a/src/mainboard/google/reef/mainboard.c
+++ b/src/mainboard/google/reef/mainboard.c
@@ -50,7 +50,7 @@ static void mainboard_init(void *chip_info)
* a pulldown. This way we can generate 9 different values with the
* 2 pins.
*/
-static int board_sku(void)
+uint8_t __attribute__((weak)) variant_board_sku(void)
{
static int board_sku_num = -1;
gpio_t board_sku_gpios[] = {
@@ -66,9 +66,9 @@ static int board_sku(void)
const char *smbios_mainboard_sku(void)
{
- static char sku_str[5]; /* sku[0-8] */
+ static char sku_str[7]; /* sku{0..255} */
- snprintf(sku_str, sizeof(sku_str), "sku%d", board_sku());
+ snprintf(sku_str, sizeof(sku_str), "sku%d", variant_board_sku());
return sku_str;
}
@@ -79,7 +79,7 @@ void __attribute__((weak)) variant_nhlt_oem_overrides(const char **oem_id,
{
*oem_id = "reef";
*oem_table_id = CONFIG_VARIANT_DIR;
- *oem_revision = board_sku();
+ *oem_revision = variant_board_sku();
}
static unsigned long mainboard_write_acpi_tables(
diff --git a/src/mainboard/google/reef/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/reef/variants/baseboard/include/baseboard/variants.h
index 65a32b3f38..388397b0f2 100644
--- a/src/mainboard/google/reef/variants/baseboard/include/baseboard/variants.h
+++ b/src/mainboard/google/reef/variants/baseboard/include/baseboard/variants.h
@@ -36,6 +36,8 @@ extern const struct lpddr4_swizzle_cfg baseboard_lpddr4_swizzle;
const struct lpddr4_cfg *variant_lpddr4_config(void);
/* Return memory SKU for the board. */
size_t variant_memory_sku(void);
+/* Return board SKU. Limited to uint8_t, so it fits into 3 decimal digits */
+uint8_t variant_board_sku(void);
/* Return ChromeOS gpio table and fill in number of entries. */
const struct cros_gpio *variant_cros_gpios(size_t *num);
diff --git a/src/mainboard/google/reef/variants/coral/Makefile.inc b/src/mainboard/google/reef/variants/coral/Makefile.inc
new file mode 100644
index 0000000000..f3c87b2318
--- /dev/null
+++ b/src/mainboard/google/reef/variants/coral/Makefile.inc
@@ -0,0 +1 @@
+ramstage-y += mainboard.c
diff --git a/src/mainboard/google/reef/variants/coral/include/variant/acpi/dptf.asl b/src/mainboard/google/reef/variants/coral/include/variant/acpi/dptf.asl
new file mode 100644
index 0000000000..f3ff04b5e9
--- /dev/null
+++ b/src/mainboard/google/reef/variants/coral/include/variant/acpi/dptf.asl
@@ -0,0 +1,16 @@
+/*
+ * 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 <baseboard/acpi/dptf.asl>
diff --git a/src/mainboard/google/reef/variants/coral/include/variant/ec.h b/src/mainboard/google/reef/variants/coral/include/variant/ec.h
new file mode 100644
index 0000000000..586f1064f4
--- /dev/null
+++ b/src/mainboard/google/reef/variants/coral/include/variant/ec.h
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+#ifndef MAINBOARD_EC_H
+#define MAINBOARD_EC_H
+
+#include <baseboard/ec.h>
+
+#endif
diff --git a/src/mainboard/google/reef/variants/coral/include/variant/gpio.h b/src/mainboard/google/reef/variants/coral/include/variant/gpio.h
new file mode 100644
index 0000000000..6d1ce5a0e4
--- /dev/null
+++ b/src/mainboard/google/reef/variants/coral/include/variant/gpio.h
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+#ifndef MAINBOARD_GPIO_H
+#define MAINBOARD_GPIO_H
+
+#include <baseboard/gpio.h>
+
+#endif /* MAINBOARD_GPIO_H */
diff --git a/src/mainboard/google/reef/variants/coral/mainboard.c b/src/mainboard/google/reef/variants/coral/mainboard.c
new file mode 100644
index 0000000000..41a8056542
--- /dev/null
+++ b/src/mainboard/google/reef/variants/coral/mainboard.c
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2016, 2017 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 <stdint.h>
+#include "baseboard/variants.h"
+
+uint8_t variant_board_sku(void)
+{
+ return 0;
+}
+
+void variant_nhlt_oem_overrides(const char **oem_id,
+ const char **oem_table_id,
+ uint32_t *oem_revision)
+{
+ *oem_id = "coral";
+ *oem_table_id = CONFIG_VARIANT_DIR;
+ *oem_revision = variant_board_sku();
+}
+