diff --git a/src/mainboard/google/reef/Kconfig b/src/mainboard/google/reef/Kconfig
index 0d3ec38..f3360ca 100644
--- a/src/mainboard/google/reef/Kconfig
+++ b/src/mainboard/google/reef/Kconfig
@@ -57,6 +57,7 @@
 	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 @@
 	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 @@
 	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 30e6a5d..596167d 100644
--- a/src/mainboard/google/reef/Kconfig.name
+++ b/src/mainboard/google/reef/Kconfig.name
@@ -22,3 +22,8 @@
 	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 702269c..c6b1997 100644
--- a/src/mainboard/google/reef/mainboard.c
+++ b/src/mainboard/google/reef/mainboard.c
@@ -50,7 +50,7 @@
  * 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 @@
 
 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 @@
 {
 	*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 65a32b3..388397b 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 @@
 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 0000000..f3c87b2
--- /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 0000000..f3ff04b
--- /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 0000000..586f106
--- /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 0000000..6d1ce5a
--- /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 0000000..41a8056
--- /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();
+}
+
