mainboard/google/octopus: Migrate onto SKU ID helpers
Leverage the common sku id space helper encoders and set the sku id max to 0xff for legacy to ensure we behave the same. BUG=b:149348474 BRANCH=none TEST=tested on hatch Change-Id: I60a37a5f9659b8df4018872956f95e07a3506440 Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/39035 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
committed by
Edward O'Callaghan
parent
8187f11d1a
commit
c6ab2ffaa0
@@ -6,6 +6,7 @@ romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
|
|||||||
ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
|
ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
|
||||||
smm-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
|
smm-$(CONFIG_EC_GOOGLE_CHROMEEC_BOARDID) += ec_boardid.c
|
||||||
|
|
||||||
|
smm-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c
|
||||||
romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c
|
romstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c
|
||||||
ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c
|
ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC_SKUID) += ec_skuid.c
|
||||||
|
|
||||||
|
@@ -13,6 +13,7 @@ config BOARD_GOOGLE_BASEBOARD_OCTOPUS
|
|||||||
select DRIVERS_USB_ACPI
|
select DRIVERS_USB_ACPI
|
||||||
select EC_GOOGLE_CHROMEEC
|
select EC_GOOGLE_CHROMEEC
|
||||||
select EC_GOOGLE_CHROMEEC_BOARDID
|
select EC_GOOGLE_CHROMEEC_BOARDID
|
||||||
|
select EC_GOOGLE_CHROMEEC_SKUID
|
||||||
select EC_GOOGLE_CHROMEEC_ESPI
|
select EC_GOOGLE_CHROMEEC_ESPI
|
||||||
select HAVE_ACPI_RESUME
|
select HAVE_ACPI_RESUME
|
||||||
select HAVE_ACPI_TABLES
|
select HAVE_ACPI_TABLES
|
||||||
|
@@ -10,7 +10,6 @@ ramstage-y += mainboard.c
|
|||||||
|
|
||||||
verstage-$(CONFIG_CHROMEOS) += chromeos.c
|
verstage-$(CONFIG_CHROMEOS) += chromeos.c
|
||||||
smm-y += smihandler.c
|
smm-y += smihandler.c
|
||||||
smm-y += mainboard_misc.c
|
|
||||||
|
|
||||||
subdirs-y += variants/baseboard
|
subdirs-y += variants/baseboard
|
||||||
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include
|
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include
|
||||||
|
@@ -21,34 +21,7 @@
|
|||||||
#include <smbios.h>
|
#include <smbios.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#define SKU_UNKNOWN 0xFFFFFFFF
|
|
||||||
#define SKU_MAX 255
|
|
||||||
|
|
||||||
uint32_t get_board_sku(void)
|
|
||||||
{
|
|
||||||
static uint32_t sku_id = SKU_UNKNOWN;
|
|
||||||
|
|
||||||
if (sku_id != SKU_UNKNOWN)
|
|
||||||
return sku_id;
|
|
||||||
|
|
||||||
if (google_chromeec_cbi_get_sku_id(&sku_id))
|
|
||||||
sku_id = SKU_UNKNOWN;
|
|
||||||
|
|
||||||
return sku_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *smbios_system_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
static char sku_str[7]; /* sku{0..255} */
|
return google_chromeec_smbios_system_sku();
|
||||||
uint32_t sku_id = get_board_sku();
|
|
||||||
|
|
||||||
if ((sku_id == SKU_UNKNOWN) || (sku_id > SKU_MAX)) {
|
|
||||||
printk(BIOS_ERR, "%s: Unexpected SKU ID %u\n",
|
|
||||||
__func__, sku_id);
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
snprintf(sku_str, sizeof(sku_str), "sku%u", sku_id);
|
|
||||||
|
|
||||||
return sku_str;
|
|
||||||
}
|
}
|
||||||
|
@@ -35,8 +35,6 @@ extern const struct lpddr4_swizzle_cfg baseboard_lpddr4_swizzle;
|
|||||||
const struct lpddr4_cfg *variant_lpddr4_config(void);
|
const struct lpddr4_cfg *variant_lpddr4_config(void);
|
||||||
/* Return memory SKU for the board. */
|
/* Return memory SKU for the board. */
|
||||||
size_t variant_memory_sku(void);
|
size_t variant_memory_sku(void);
|
||||||
/* Return board SKU */
|
|
||||||
uint32_t get_board_sku(void);
|
|
||||||
/* Return ChromeOS gpio table and fill in number of entries. */
|
/* Return ChromeOS gpio table and fill in number of entries. */
|
||||||
const struct cros_gpio *variant_cros_gpios(size_t *num);
|
const struct cros_gpio *variant_cros_gpios(size_t *num);
|
||||||
|
|
||||||
|
@@ -42,7 +42,7 @@ enum {
|
|||||||
const char *get_wifi_sar_cbfs_filename(void)
|
const char *get_wifi_sar_cbfs_filename(void)
|
||||||
{
|
{
|
||||||
const char *filename = NULL;
|
const char *filename = NULL;
|
||||||
uint32_t sku_id = get_board_sku();
|
uint32_t sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_33_BLOOG:
|
case SKU_33_BLOOG:
|
||||||
@@ -67,7 +67,7 @@ const char *mainboard_vbt_filename(void)
|
|||||||
{
|
{
|
||||||
uint32_t sku_id;
|
uint32_t sku_id;
|
||||||
|
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_33_BLOOG:
|
case SKU_33_BLOOG:
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
#include <boardid.h>
|
#include <boardid.h>
|
||||||
#include <gpio.h>
|
#include <gpio.h>
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
SKU_37_DROID = 37, /* LTE */
|
SKU_37_DROID = 37, /* LTE */
|
||||||
@@ -60,7 +61,7 @@ static const struct pad_config lte_override_table[] = {
|
|||||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||||
{
|
{
|
||||||
uint32_t sku_id;
|
uint32_t sku_id;
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_37_DROID:
|
case SKU_37_DROID:
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
#include <baseboard/variants.h>
|
#include <baseboard/variants.h>
|
||||||
#include <delay.h>
|
#include <delay.h>
|
||||||
#include <gpio.h>
|
#include <gpio.h>
|
||||||
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
SKU_37_DROID = 37, /* LTE */
|
SKU_37_DROID = 37, /* LTE */
|
||||||
@@ -58,7 +59,7 @@ static void power_off_lte_module(u8 slp_typ)
|
|||||||
const char *get_wifi_sar_cbfs_filename(void)
|
const char *get_wifi_sar_cbfs_filename(void)
|
||||||
{
|
{
|
||||||
const char *filename = NULL;
|
const char *filename = NULL;
|
||||||
uint32_t sku_id = get_board_sku();
|
uint32_t sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
if (sku_id == 33 || sku_id == 34 || sku_id == 35 || sku_id == 36 || sku_id == 41 ||
|
if (sku_id == 33 || sku_id == 34 || sku_id == 35 || sku_id == 36 || sku_id == 41 ||
|
||||||
sku_id == 42 || sku_id == 43 || sku_id == 44)
|
sku_id == 42 || sku_id == 43 || sku_id == 44)
|
||||||
@@ -74,7 +75,7 @@ void variant_smi_sleep(u8 slp_typ)
|
|||||||
if (slp_typ != ACPI_S5)
|
if (slp_typ != ACPI_S5)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch (get_board_sku()) {
|
switch (google_chromeec_get_board_sku()) {
|
||||||
case SKU_37_DROID:
|
case SKU_37_DROID:
|
||||||
case SKU_38_DROID:
|
case SKU_38_DROID:
|
||||||
case SKU_39_DROID:
|
case SKU_39_DROID:
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <ec/google/chromeec/ec.h>
|
||||||
#include <baseboard/variants.h>
|
#include <baseboard/variants.h>
|
||||||
#include <sar.h>
|
#include <sar.h>
|
||||||
|
|
||||||
@@ -21,7 +22,7 @@
|
|||||||
const char *get_wifi_sar_cbfs_filename(void)
|
const char *get_wifi_sar_cbfs_filename(void)
|
||||||
{
|
{
|
||||||
const char *filename = NULL;
|
const char *filename = NULL;
|
||||||
uint32_t sku_id = get_board_sku();
|
uint32_t sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
if (sku_id == 2)
|
if (sku_id == 2)
|
||||||
filename = "wifi_sar-bluebird.hex";
|
filename = "wifi_sar-bluebird.hex";
|
||||||
@@ -31,7 +32,7 @@ const char *get_wifi_sar_cbfs_filename(void)
|
|||||||
|
|
||||||
bool variant_ext_usb_status(unsigned int port_type, unsigned int port_id)
|
bool variant_ext_usb_status(unsigned int port_type, unsigned int port_id)
|
||||||
{
|
{
|
||||||
uint32_t sku_id = get_board_sku();
|
uint32_t sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
if (sku_id == 2 && port_id == RIGHT_USB_C_PORT_ID)
|
if (sku_id == 2 && port_id == RIGHT_USB_C_PORT_ID)
|
||||||
return false;
|
return false;
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
#include <boardid.h>
|
#include <boardid.h>
|
||||||
#include <gpio.h>
|
#include <gpio.h>
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
SKU_1_LTE = 1, /* Wifi + LTE */
|
SKU_1_LTE = 1, /* Wifi + LTE */
|
||||||
@@ -60,7 +61,7 @@ static const struct pad_config lte_override_table[] = {
|
|||||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||||
{
|
{
|
||||||
uint32_t sku_id;
|
uint32_t sku_id;
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_1_LTE:
|
case SKU_1_LTE:
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
#include <baseboard/variants.h>
|
#include <baseboard/variants.h>
|
||||||
#include <delay.h>
|
#include <delay.h>
|
||||||
#include <gpio.h>
|
#include <gpio.h>
|
||||||
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
SKU_1_LTE = 1, /* Wifi + LTE */
|
SKU_1_LTE = 1, /* Wifi + LTE */
|
||||||
@@ -63,7 +64,7 @@ void variant_smi_sleep(u8 slp_typ)
|
|||||||
if (slp_typ != ACPI_S5)
|
if (slp_typ != ACPI_S5)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch (get_board_sku()) {
|
switch (google_chromeec_get_board_sku()) {
|
||||||
case SKU_1_LTE:
|
case SKU_1_LTE:
|
||||||
case SKU_3_LTE_2CAM:
|
case SKU_3_LTE_2CAM:
|
||||||
power_off_lte_module(slp_typ);
|
power_off_lte_module(slp_typ);
|
||||||
|
@@ -20,8 +20,6 @@
|
|||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
#include <ec/google/chromeec/ec.h>
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
#define SKU_UNKNOWN 0xFFFFFFFF
|
|
||||||
|
|
||||||
static const struct pad_config default_override_table[] = {
|
static const struct pad_config default_override_table[] = {
|
||||||
PAD_NC(GPIO_52, UP_20K),
|
PAD_NC(GPIO_52, UP_20K),
|
||||||
PAD_NC(GPIO_53, UP_20K),
|
PAD_NC(GPIO_53, UP_20K),
|
||||||
@@ -70,9 +68,9 @@ bool no_touchscreen_sku(uint32_t sku_id)
|
|||||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||||
{
|
{
|
||||||
const struct pad_config *c;
|
const struct pad_config *c;
|
||||||
uint32_t sku_id = SKU_UNKNOWN;
|
uint32_t sku_id;
|
||||||
|
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
if (no_touchscreen_sku(sku_id)) {
|
if (no_touchscreen_sku(sku_id)) {
|
||||||
c = non_touchscreen_override_table;
|
c = non_touchscreen_override_table;
|
||||||
*num = ARRAY_SIZE(non_touchscreen_override_table);
|
*num = ARRAY_SIZE(non_touchscreen_override_table);
|
||||||
|
@@ -30,7 +30,7 @@ void variant_update_devtree(struct device *dev)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* SKU ID 1 does not have a touchscreen device, hence disable it. */
|
/* SKU ID 1 does not have a touchscreen device, hence disable it. */
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
if (no_touchscreen_sku(sku_id))
|
if (no_touchscreen_sku(sku_id))
|
||||||
touchscreen_i2c_host->enabled = 0;
|
touchscreen_i2c_host->enabled = 0;
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
#include <gpio.h>
|
#include <gpio.h>
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
#include <variant/sku.h>
|
#include <variant/sku.h>
|
||||||
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
static const struct pad_config default_override_table[] = {
|
static const struct pad_config default_override_table[] = {
|
||||||
PAD_NC(GPIO_104, UP_20K),
|
PAD_NC(GPIO_104, UP_20K),
|
||||||
@@ -72,7 +73,7 @@ static const struct pad_config lte_override_table[] = {
|
|||||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||||
{
|
{
|
||||||
uint32_t sku_id;
|
uint32_t sku_id;
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_9_HDMI:
|
case SKU_9_HDMI:
|
||||||
|
@@ -54,7 +54,7 @@ const char *mainboard_vbt_filename(void)
|
|||||||
{
|
{
|
||||||
uint32_t sku_id;
|
uint32_t sku_id;
|
||||||
|
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_9_HDMI:
|
case SKU_9_HDMI:
|
||||||
@@ -72,7 +72,7 @@ void variant_smi_sleep(u8 slp_typ)
|
|||||||
if (slp_typ != ACPI_S5)
|
if (slp_typ != ACPI_S5)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch (get_board_sku()) {
|
switch (google_chromeec_get_board_sku()) {
|
||||||
case SKU_17_LTE:
|
case SKU_17_LTE:
|
||||||
case SKU_18_LTE_TS:
|
case SKU_18_LTE_TS:
|
||||||
power_off_lte_module(slp_typ);
|
power_off_lte_module(slp_typ);
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
#include <gpio.h>
|
#include <gpio.h>
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
#include <variant/sku.h>
|
#include <variant/sku.h>
|
||||||
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
static const struct pad_config default_override_table[] = {
|
static const struct pad_config default_override_table[] = {
|
||||||
PAD_NC(GPIO_104, UP_20K),
|
PAD_NC(GPIO_104, UP_20K),
|
||||||
@@ -44,7 +45,7 @@ static const struct pad_config hdmi_sku_override_table[] = {
|
|||||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||||
{
|
{
|
||||||
uint32_t sku_id;
|
uint32_t sku_id;
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_33_DORP:
|
case SKU_33_DORP:
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
const char *get_wifi_sar_cbfs_filename(void)
|
const char *get_wifi_sar_cbfs_filename(void)
|
||||||
{
|
{
|
||||||
const char *filename = NULL;
|
const char *filename = NULL;
|
||||||
uint32_t sku_id = get_board_sku();
|
uint32_t sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_1_MEEP:
|
case SKU_1_MEEP:
|
||||||
@@ -45,7 +45,7 @@ const char *mainboard_vbt_filename(void)
|
|||||||
{
|
{
|
||||||
uint32_t sku_id;
|
uint32_t sku_id;
|
||||||
|
|
||||||
sku_id = get_board_sku();
|
sku_id = google_chromeec_get_board_sku();
|
||||||
|
|
||||||
switch (sku_id) {
|
switch (sku_id) {
|
||||||
case SKU_33_DORP:
|
case SKU_33_DORP:
|
||||||
|
Reference in New Issue
Block a user