diff options
33 files changed, 51 insertions, 99 deletions
diff --git a/baseboard/asurada/baseboard.h b/baseboard/asurada/baseboard.h index 1658d4a3af..f3c0808660 100644 --- a/baseboard/asurada/baseboard.h +++ b/baseboard/asurada/baseboard.h @@ -22,7 +22,6 @@ * allow the second reset to be treated as a power-on. */ #define CONFIG_BOARD_RESET_AFTER_POWER_ON -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_CHIPSET_MT8192 #define CONFIG_EXTPOWER_GPIO #define CONFIG_HIBERNATE_WAKE_PINS_DYNAMIC diff --git a/baseboard/goroh/baseboard.h b/baseboard/goroh/baseboard.h index b3cfc3f0f9..55fa0ffab7 100644 --- a/baseboard/goroh/baseboard.h +++ b/baseboard/goroh/baseboard.h @@ -22,7 +22,6 @@ * allow the second reset to be treated as a power-on. */ #define CONFIG_BOARD_RESET_AFTER_POWER_ON -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_CHIPSET_MT8192 #define CONFIG_EXTPOWER_GPIO #define CONFIG_HIBERNATE_WAKE_PINS_DYNAMIC diff --git a/baseboard/grunt/baseboard.h b/baseboard/grunt/baseboard.h index 7f22d92d17..5206b0a5a2 100644 --- a/baseboard/grunt/baseboard.h +++ b/baseboard/grunt/baseboard.h @@ -34,7 +34,6 @@ #define CONFIG_ADC #define CONFIG_BACKLIGHT_LID #define CONFIG_BACKLIGHT_LID_ACTIVE_LOW -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_CMD_AP_RESET_LOG #define CONFIG_HIBERNATE_PSL #define CONFIG_HOSTCMD_LPC diff --git a/baseboard/intelrvp/baseboard.h b/baseboard/intelrvp/baseboard.h index d57de6e3cd..1ca3739d88 100644 --- a/baseboard/intelrvp/baseboard.h +++ b/baseboard/intelrvp/baseboard.h @@ -132,7 +132,6 @@ #define CONFIG_POWER_TRACK_HOST_SLEEP_STATE /* EC */ -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_LED_COMMON #define CONFIG_LID_SWITCH #define CONFIG_VOLUME_BUTTONS diff --git a/baseboard/kukui/baseboard.h b/baseboard/kukui/baseboard.h index 9170d680ea..bf4a205393 100644 --- a/baseboard/kukui/baseboard.h +++ b/baseboard/kukui/baseboard.h @@ -173,7 +173,6 @@ /* Optional features */ #define CONFIG_BOARD_PRE_INIT -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_BUTTON_TRIGGERED_RECOVERY #define CONFIG_CHARGER_ILIM_PIN_DISABLED #define CONFIG_FORCE_CONSOLE_RESUME diff --git a/board/atlas/board.h b/board/atlas/board.h index 95c9b2d1f8..bc4844ee53 100644 --- a/board/atlas/board.h +++ b/board/atlas/board.h @@ -18,7 +18,6 @@ /* EC */ #define CONFIG_ADC -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_BOARD_FORCE_RESET_PIN #define CONFIG_DPTF #define CONFIG_FPU diff --git a/board/coral/board.h b/board/coral/board.h index 7f9937af1d..4316d991f1 100644 --- a/board/coral/board.h +++ b/board/coral/board.h @@ -115,7 +115,6 @@ /* EC */ #define CONFIG_ADC -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_EXTPOWER_GPIO #undef CONFIG_EXTPOWER_DEBOUNCE_MS #define CONFIG_EXTPOWER_DEBOUNCE_MS 1000 diff --git a/board/eve/board.h b/board/eve/board.h index 9f44e8862d..6061f498a2 100644 --- a/board/eve/board.h +++ b/board/eve/board.h @@ -19,7 +19,6 @@ /* EC */ #define CONFIG_ADC #define CONFIG_BACKLIGHT_LID -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_BOARD_FORCE_RESET_PIN #define CONFIG_DEVICE_EVENT #define CONFIG_DPTF diff --git a/board/glkrvp/board.h b/board/glkrvp/board.h index 0ee352bfab..6f1e7c3738 100644 --- a/board/glkrvp/board.h +++ b/board/glkrvp/board.h @@ -85,7 +85,6 @@ #define CONFIG_POWER_TRACK_HOST_SLEEP_STATE /* EC */ -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_VOLUME_BUTTONS #define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL #define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL diff --git a/board/glkrvp_ite/board.h b/board/glkrvp_ite/board.h index 7ad5966853..2816a02f86 100644 --- a/board/glkrvp_ite/board.h +++ b/board/glkrvp_ite/board.h @@ -85,7 +85,6 @@ #define CONFIG_POWER_TRACK_HOST_SLEEP_STATE /* EC */ -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_VOLUME_BUTTONS #define CONFIG_LID_SWITCH #define CONFIG_WP_ALWAYS diff --git a/board/lazor/board.h b/board/lazor/board.h index 5400e471bb..937f34e709 100644 --- a/board/lazor/board.h +++ b/board/lazor/board.h @@ -13,9 +13,6 @@ /* Internal SPI flash on NPCX7 */ #define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */ -/* Custom the board version using tristate */ -#define CONFIG_BOARD_VERSION_CUSTOM - /* Switchcap */ #define CONFIG_LN9310 diff --git a/board/nautilus/board.h b/board/nautilus/board.h index 858d9b91a2..88389956b9 100644 --- a/board/nautilus/board.h +++ b/board/nautilus/board.h @@ -17,7 +17,6 @@ /* EC */ #define CONFIG_ADC #define CONFIG_BACKLIGHT_LID -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_BOARD_FORCE_RESET_PIN #define CONFIG_CASE_CLOSED_DEBUG_EXTERNAL #define CONFIG_DPTF diff --git a/board/nocturne/board.h b/board/nocturne/board.h index a025f310ae..95f8d14403 100644 --- a/board/nocturne/board.h +++ b/board/nocturne/board.h @@ -30,7 +30,6 @@ /* EC modules */ #define CONFIG_ADC #define CONFIG_BACKLIGHT_LID -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_HOSTCMD_ESPI #define CONFIG_I2C #define CONFIG_I2C_BUS_MAY_BE_UNPOWERED diff --git a/board/poppy/board.h b/board/poppy/board.h index ae134e8b66..bf4acfe8ff 100644 --- a/board/poppy/board.h +++ b/board/poppy/board.h @@ -17,7 +17,6 @@ /* EC */ #define CONFIG_ADC #define CONFIG_BACKLIGHT_LID -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_BOARD_FORCE_RESET_PIN #define CONFIG_BUTTON_TRIGGERED_RECOVERY #define CONFIG_DETACHABLE_BASE diff --git a/board/rainier/board.h b/board/rainier/board.h index 372ab53616..a323a90889 100644 --- a/board/rainier/board.h +++ b/board/rainier/board.h @@ -42,7 +42,6 @@ /* Optional features */ #define CONFIG_BOARD_PRE_INIT -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_BUTTON_TRIGGERED_RECOVERY #define CONFIG_CHARGER_ILIM_PIN_DISABLED #define CONFIG_FORCE_CONSOLE_RESUME diff --git a/board/reef/board.h b/board/reef/board.h index 1a003d698b..3afcc77907 100644 --- a/board/reef/board.h +++ b/board/reef/board.h @@ -113,7 +113,6 @@ /* EC */ #define CONFIG_ADC -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_EXTPOWER_GPIO #undef CONFIG_EXTPOWER_DEBOUNCE_MS #define CONFIG_EXTPOWER_DEBOUNCE_MS 1000 diff --git a/board/reef_it8320/board.h b/board/reef_it8320/board.h index 3a2668e609..20d18ae3bf 100644 --- a/board/reef_it8320/board.h +++ b/board/reef_it8320/board.h @@ -110,7 +110,6 @@ /* EC */ #define CONFIG_ADC -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_EXTPOWER_GPIO #undef CONFIG_EXTPOWER_DEBOUNCE_MS #define CONFIG_EXTPOWER_DEBOUNCE_MS 1000 diff --git a/board/reef_mchp/board.h b/board/reef_mchp/board.h index a512f8551d..b12c4e5d71 100644 --- a/board/reef_mchp/board.h +++ b/board/reef_mchp/board.h @@ -115,7 +115,6 @@ /* EC */ #define CONFIG_ADC -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_EXTPOWER_GPIO #undef CONFIG_EXTPOWER_DEBOUNCE_MS #define CONFIG_EXTPOWER_DEBOUNCE_MS 1000 diff --git a/board/scarlet/board.h b/board/scarlet/board.h index 6d179dfa7c..345bf1a96f 100644 --- a/board/scarlet/board.h +++ b/board/scarlet/board.h @@ -48,7 +48,6 @@ /* Optional features */ #define CONFIG_BOARD_PRE_INIT -#define CONFIG_BOARD_VERSION_CUSTOM #define CONFIG_BUTTON_TRIGGERED_RECOVERY #define CONFIG_CHARGER_ILIM_PIN_DISABLED #define CONFIG_FORCE_CONSOLE_RESUME diff --git a/board/servo_v4/board.h b/board/servo_v4/board.h index 9a0973fe41..9ff102978c 100644 --- a/board/servo_v4/board.h +++ b/board/servo_v4/board.h @@ -17,7 +17,6 @@ * id from previous versions. */ #define BOARD_VERSION_BLACK 3 -#define CONFIG_BOARD_VERSION_CUSTOM /* 48 MHz SYSCLK clock frequency */ #define CPU_CLOCK 48000000 diff --git a/board/servo_v4p1/board.h b/board/servo_v4p1/board.h index b28f18a60a..2462abb081 100644 --- a/board/servo_v4p1/board.h +++ b/board/servo_v4p1/board.h @@ -11,8 +11,6 @@ /* Use Link-Time Optimizations to try to reduce the firmware code size */ #define CONFIG_LTO -#define CONFIG_BOARD_VERSION_CUSTOM - /* 48 MHz SYSCLK clock frequency */ #define CPU_CLOCK 48000000 diff --git a/common/system.c b/common/system.c index 1648bbe465..d01253fdaf 100644 --- a/common/system.c +++ b/common/system.c @@ -813,31 +813,40 @@ int system_get_image_used(enum ec_image copy) } /* + * Overwrite it in board directory in case that we want to read board version + * in our own way. + */ +__overridable int board_get_version(void) +{ +#ifdef CONFIG_BOARD_VERSION_GPIO + return (!!gpio_get_level(GPIO_BOARD_VERSION1) << 0) | + (!!gpio_get_level(GPIO_BOARD_VERSION2) << 1) | + (!!gpio_get_level(GPIO_BOARD_VERSION3) << 2); +#else + return 0; +#endif +} + +/* * Returns positive board version if successfully retrieved. Otherwise the * value is a negative version of an EC return code. Without this optimization * multiple boards run out of flash size. */ int system_get_board_version(void) { -#if defined(CONFIG_BOARD_VERSION_CUSTOM) + int board_id; + + if (IS_ENABLED(CONFIG_BOARD_VERSION_CBI)) { + int error; + + error = cbi_get_board_version(&board_id); + if (error) + return -error; + + return board_id; + }; + return board_get_version(); -#elif defined(CONFIG_BOARD_VERSION_GPIO) - return - (!!gpio_get_level(GPIO_BOARD_VERSION1) << 0) | - (!!gpio_get_level(GPIO_BOARD_VERSION2) << 1) | - (!!gpio_get_level(GPIO_BOARD_VERSION3) << 2); -#elif defined(CONFIG_BOARD_VERSION_CBI) - int error; - int32_t version; - - error = cbi_get_board_version(&version); - if (error) - return -error; - else - return version; -#else - return 0; -#endif } __attribute__((weak)) /* Weird chips may need their own implementations */ @@ -1604,7 +1613,7 @@ DECLARE_HOST_COMMAND(EC_CMD_GET_CHIP_INFO, host_command_get_chip_info, EC_VER_MASK(0)); -#ifdef CONFIG_BOARD_VERSION +#if defined(CONFIG_BOARD_VERSION_CBI) || defined(CONFIG_BOARD_VERSION_GPIO) enum ec_status host_command_get_board_version(struct host_cmd_handler_args *args) { diff --git a/include/config.h b/include/config.h index 6405a0b06d..8daf9025f6 100644 --- a/include/config.h +++ b/include/config.h @@ -733,16 +733,8 @@ */ #undef CONFIG_BOARD_PRE_INIT -/* - * EC has the notion of board version either through resistors or EEPROM. - * The common CONFIG_BOARD_VERSION is defined automatically when one of the - * specific options is used. - */ -#undef CONFIG_BOARD_VERSION /* The board version comes from Cros Board Info within EEPROM. */ #undef CONFIG_BOARD_VERSION_CBI -/* The board version function is defined in board code. */ -#undef CONFIG_BOARD_VERSION_CUSTOM /* * The board version is encoded with 3 GPIO signals where GPIO_BOARD_VERSION1 * is the LSB. @@ -5526,18 +5518,6 @@ /******************************************************************************/ /* - * Automatically define common CONFIG_BOARD_VERSION if any specific option is - * used. - */ - -#if defined(CONFIG_BOARD_VERSION_CBI) || \ - defined(CONFIG_BOARD_VERSION_CUSTOM) || \ - defined(CONFIG_BOARD_VERSION_GPIO) -#define CONFIG_BOARD_VERSION -#endif - -/******************************************************************************/ -/* * Thermal throttling AP must have temperature sensor enabled to get * the temperature readings. */ @@ -6376,6 +6356,11 @@ "when CONFIG_SYSTEM_UNLOCK is also enabled." #endif /* CONFIG_BYPASS_CBI_EEPROM_WP_CHECK && !CONFIG_SYSTEM_UNLOCK */ +#if defined(CONFIG_BOARD_VERSION_CBI) && defined(CONFIG_BOARD_VERSION_GPIO) +#error "CONFIG_BOARD_VERSION_CBI and CONFIG_BOARD_VERSION_GPIO " \ + "are mutually exclusive. " +#endif /* CONFIG_BOARD_VERSION_CBI && CONFIG_BOARD_VERSION_GPIO */ + #if !defined(CONFIG_ZEPHYR) && !defined(CONFIG_ACCELGYRO_ICM_COMM_SPI) && \ !defined(CONFIG_ACCELGYRO_ICM_COMM_I2C) #ifdef I2C_PORT_ACCEL diff --git a/include/system.h b/include/system.h index 230141fffe..c721e2565a 100644 --- a/include/system.h +++ b/include/system.h @@ -382,6 +382,11 @@ const char *system_get_chip_revision(void); int system_get_chip_unique_id(uint8_t **id); /** + * Optional board-level function to read board version. + */ +__override_proto int board_get_version(void); + +/** * Optional board-level function to pulse EC_ENTERING_RW. * * This should ONLY be overridden in very rare circumstances! AKA there better diff --git a/zephyr/Kconfig b/zephyr/Kconfig index 5c01a09314..ef41309d28 100644 --- a/zephyr/Kconfig +++ b/zephyr/Kconfig @@ -115,17 +115,6 @@ config PLATFORM_EC_BOARD_RESET_AFTER_POWER_ON the EC starts up, performs some amount of processing and then gets a reset that it is not expecting. -config PLATFORM_EC_BOARD_VERSION - bool "Support the notion of board version" - default y - help - Enable support for a board version, used to distinguish different - revisions of the same base design. Each board goes through a number - of development phases on the way to launch. Sometimes different boards - have different quirks and this version number can provide a way for - the EC to handle several board versions, avoiding the problem of - having to flash different images to different board versions. - config PLATFORM_EC_BRINGUP bool "Enable early bringup debugging features" help diff --git a/zephyr/Kconfig.board_version b/zephyr/Kconfig.board_version index 500dae21c3..e24957764d 100644 --- a/zephyr/Kconfig.board_version +++ b/zephyr/Kconfig.board_version @@ -2,10 +2,9 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -if PLATFORM_EC_BOARD_VERSION - -choice "Version source" - prompt "Select the source of the version number" +choice PLATFORM_EC_BOARD_VERSION_SOURCE + prompt "Select the source of the board version number" + optional help This allow selection of the source of the board version number information. Several options are available, but BOARD_VERSION_CBI is @@ -32,14 +31,4 @@ config PLATFORM_EC_BOARD_VERSION_GPIO The GPIOs should have external pull-up/pull-down resistors installed at the factory to select the correct value. -config PLATFORM_EC_BOARD_VERSION_CUSTOM - bool "Custom board-specific algortihm" - help - Choose this if none of the standard methods is available and you must - perform special logic to find the board version. If this is chosen, - then the system code will call board_get_version() to find out the - version, so you should implement this function in your board code. - endchoice - -endif # PLATFORM_EC_BOARD_VERSION diff --git a/zephyr/projects/asurada/hayato/prj.conf b/zephyr/projects/asurada/hayato/prj.conf index 23b91e6650..80218fdaaf 100644 --- a/zephyr/projects/asurada/hayato/prj.conf +++ b/zephyr/projects/asurada/hayato/prj.conf @@ -32,7 +32,8 @@ CONFIG_PLATFORM_EC_ACCELGYRO_BMI_COMM_I2C=y # TODO(b/180980668): bring these features up CONFIG_LTO=n CONFIG_PLATFORM_EC_BACKLIGHT_LID=n -CONFIG_PLATFORM_EC_BOARD_VERSION=n +CONFIG_PLATFORM_EC_BOARD_VERSION_CBI=n +CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=n CONFIG_PLATFORM_EC_CONSOLE_CMD_SYSINFO=n CONFIG_PLATFORM_EC_HOSTCMD=y CONFIG_PLATFORM_EC_SWITCH=n diff --git a/zephyr/projects/brya/brya/prj.conf b/zephyr/projects/brya/brya/prj.conf index f4269f2756..6edeedb6f6 100644 --- a/zephyr/projects/brya/brya/prj.conf +++ b/zephyr/projects/brya/brya/prj.conf @@ -39,4 +39,5 @@ CONFIG_PLATFORM_EC_WORKAROUND_FLASH_DOWNLOAD_API=y # TODO(b/188605676): bring these features up CONFIG_PLATFORM_EC_ADC=n CONFIG_PLATFORM_EC_BACKLIGHT_LID=n -CONFIG_PLATFORM_EC_BOARD_VERSION=n +CONFIG_PLATFORM_EC_BOARD_VERSION_CBI=n +CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=n diff --git a/zephyr/projects/it8xxx2_evb/prj.conf b/zephyr/projects/it8xxx2_evb/prj.conf index 2f975a6b86..b41f689c58 100644 --- a/zephyr/projects/it8xxx2_evb/prj.conf +++ b/zephyr/projects/it8xxx2_evb/prj.conf @@ -31,7 +31,8 @@ CONFIG_LOG=y # TODO(b:185202623): bring these features up CONFIG_PLATFORM_EC_BACKLIGHT_LID=n -CONFIG_PLATFORM_EC_BOARD_VERSION=n +CONFIG_PLATFORM_EC_BOARD_VERSION_CBI=n +CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=n CONFIG_PLATFORM_EC_KEYBOARD=n CONFIG_CROS_KB_RAW_ITE=n CONFIG_PLATFORM_EC_SWITCH=n diff --git a/zephyr/projects/kohaku/prj.conf b/zephyr/projects/kohaku/prj.conf index 23423c63cb..28c3a4a550 100644 --- a/zephyr/projects/kohaku/prj.conf +++ b/zephyr/projects/kohaku/prj.conf @@ -32,4 +32,5 @@ CONFIG_CROS_KB_RAW_NPCX=n # This is not yet supported CONFIG_PLATFORM_EC_ADC=n -CONFIG_PLATFORM_EC_BOARD_VERSION=n +CONFIG_PLATFORM_EC_BOARD_VERSION_CBI=n +CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=n diff --git a/zephyr/projects/trogdor/lazor/prj.conf b/zephyr/projects/trogdor/lazor/prj.conf index 1682fdf686..3d16cdb46b 100644 --- a/zephyr/projects/trogdor/lazor/prj.conf +++ b/zephyr/projects/trogdor/lazor/prj.conf @@ -27,7 +27,6 @@ CONFIG_PLATFORM_EC_PWM_KBLIGHT=y CONFIG_AP_ARM_QUALCOMM_SC7180=y # Board version is selected over GPIO board ID pins. -CONFIG_PLATFORM_EC_BOARD_VERSION=y CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=y # LN9310 Switchcap diff --git a/zephyr/projects/volteer/delbin/prj.conf b/zephyr/projects/volteer/delbin/prj.conf index 12dbc775c8..8f85b5dabc 100644 --- a/zephyr/projects/volteer/delbin/prj.conf +++ b/zephyr/projects/volteer/delbin/prj.conf @@ -27,7 +27,8 @@ CONFIG_PLATFORM_EC_POWERSEQ_RTC_RESET=y CONFIG_PLATFORM_EC_THROTTLE_AP=y # TODO(b/180410072): bringup these features -CONFIG_PLATFORM_EC_BOARD_VERSION=n +CONFIG_PLATFORM_EC_BOARD_VERSION_CBI=n +CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=n CONFIG_PLATFORM_EC_VBOOT_HASH=n CONFIG_PLATFORM_EC_VSTORE=n diff --git a/zephyr/shim/include/config_chip.h b/zephyr/shim/include/config_chip.h index 672168bebf..70b00b86d8 100644 --- a/zephyr/shim/include/config_chip.h +++ b/zephyr/shim/include/config_chip.h @@ -1399,11 +1399,6 @@ #define CONFIG_BOARD_VERSION_GPIO #endif -#undef CONFIG_BOARD_VERSION_CUSTOM -#ifdef CONFIG_PLATFORM_EC_BOARD_VERSION_CUSTOM -#define CONFIG_BOARD_VERSION_CUSTOM -#endif - #undef CONFIG_CBI_EEPROM #ifdef CONFIG_PLATFORM_EC_CBI_EEPROM #define CONFIG_CBI_EEPROM |