summaryrefslogtreecommitdiff
path: root/docs/reducing_ec_image_size.md
diff options
context:
space:
mode:
authorJack Rosenthal <jrosenth@chromium.org>2021-11-04 12:11:58 -0600
committerCommit Bot <commit-bot@chromium.org>2021-11-05 04:22:34 +0000
commit252457d4b21f46889eebad61d4c0a65331919cec (patch)
tree01856c4d31d710b20e85a74c8d7b5836e35c3b98 /docs/reducing_ec_image_size.md
parent08f5a1e6fc2c9467230444ac9b582dcf4d9f0068 (diff)
downloadchrome-ec-stabilize-14469.9.B-ish.tar.gz
In the interest of making long-term branch maintenance incur as little technical debt on us as possible, we should not maintain any files on the branch we are not actually using. This has the added effect of making it extremely clear when merging CLs from the main branch when changes have the possibility to affect us. The follow-on CL adds a convenience script to actually pull updates from the main branch and generate a CL for the update. BUG=b:204206272 BRANCH=ish TEST=make BOARD=arcada_ish && make BOARD=drallion_ish Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Change-Id: I17e4694c38219b5a0823e0a3e55a28d1348f4b18 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3262038 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Diffstat (limited to 'docs/reducing_ec_image_size.md')
-rw-r--r--docs/reducing_ec_image_size.md459
1 files changed, 0 insertions, 459 deletions
diff --git a/docs/reducing_ec_image_size.md b/docs/reducing_ec_image_size.md
deleted file mode 100644
index a165f165ff..0000000000
--- a/docs/reducing_ec_image_size.md
+++ /dev/null
@@ -1,459 +0,0 @@
-# Reducing the EC image size
-
-The EC ToT codebase continues grows as new features are added and for bug
-fixes. This puts pressure on older boards that have limited flash space
-remaining. This document provides some tips for reducing the EC image size.
-
-[TOC]
-
-## Checking the EC image footprint
-
-The EC codebase supports two build types:
-
-1. `cros-ec` builds are the legacy EC images built using Make (e.g. `make
- BOARD=volteer`)
-1. `zephyr-ec` builds are the EC images built using the Zephyr RTOS kernel using
- zmake/Cmake (e.g. `zmake configure -b zephyr/projects/volteer/volteer`)
-
-### Checking a single cros-ec build
-
-Building a single cros-ec board using `make BOARD=<board> -j` reports the the
-number of bytes free in flash and RAM for both the RO and RW images. An example
-from building the juniper board is shown below.
-
-```
-$ make BOARD=juniper -j
- ...
- *** 668 bytes in flash and 10308 bytes in RAM still available on juniper RO ****
- *** 3224 bytes in flash and 7460 bytes in RAM still available on juniper RW ****
-```
-
-### Checking all cros-ec builds
-
-Running `make buildall -j` shows a summary of the three boards with the smallest
-RO flash footprint, FW flash footprint, and RW RAM footprint.
-
-```
-$ make buildall -j
- ...
-buildall completed successfully!
-Smallest free spaces in RO flash (bytes):
-servo_v4 : 104
-scarlet : 108
-mushu : 160
-Smallest free spaces in RW flash (bytes):
-mushu : 96
-bobba : 232
-trondo : 376
-Tightest boards' RW RAM images, bytes free:
-whiskers : 244
-minimuffin: 284
-zinger : 284
-```
-
-### Comparing cros-ec image sizes
-
-The cros-ec makefile provides two make targets for helping track the impact of
-code changes.
-
-`make savesizes` saves the EC footprint information for all boards, providing
-the baseline for comparison. `make newsizes` compares the sizes of the current
-build against the EC footprint information saved by most recent invocation of
-`make savesizes`.
-
-General workflow:
-1. Checkout branch you need to compare against. For example `repo start
- check-ec-size -r cros/main` or `repo start check-ec-size -r <hash>`.
-1. Run `make buildall -j`.
-1. Run `make savesizes`.
-1. Apply your code change (e.g. change the local branch, cherry-pick your
- changes, or directly edit source files).
-1. Run `make buildall -j` again.
-1. Run `make newsizes` to generate report of size changes.
-
-Example report from `make newsizes` shown below:
-
-```
-$ make newsizes
-build/burnet/RO/space_free_flash grew by 576 bytes: (488 to 1064)
-build/burnet/RW/space_free_flash grew by 552 bytes: (1324 to 1876)
-build/cerise/RO/space_free_flash grew by 512 bytes: (276 to 788)
-build/cerise/RW/space_free_flash grew by 548 bytes: (7076 to 7624)
- ...
-```
-
-### Checking a single zephyr-ec build
-
-By default all the information messages from the `zmake` tool are hidden during
-builds of zephyr-ec boards.
-
-Changing the logging level to INFO, displays the flash and SRAM usage of board.
-
-```
-$ zmake -l INFO configure -b zephyr/projects/volteer/volteer
-INFO: Clearing old build directory /mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer
- ...
-INFO: [/mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer:ro]Memory region Used Size Region Size %age Used
-INFO: [/mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer:ro]FLASH: 238852 B 512 KB 45.56%
-INFO: [/mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer:ro]SRAM: 57144 B 62 KB 90.01%
-INFO: [/mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer:ro]IDT_LIST: 0 GB 2 KB 0.00%
-INFO: [/mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer:rw]Memory region Used Size Region Size %age Used
-INFO: [/mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer:rw]FLASH: 238852 B 512 KB 45.56%
-INFO: [/mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer:rw]SRAM: 57144 B 62 KB 90.01%
-INFO: [/mnt/host/source/src/platform/ec/build/zephyr/projects/volteer/volteer:rw]IDT_LIST: 0 GB 2 KB 0.00%
-```
-
-For easier to read output, you can run the ninja build tool directly and see the
-RO and RW footprint.
-
-```
-$ zmake configure zephyr/projects/volteer/volteer/
-$ ninja -C build/zephyr/projects/volteer/volteer/build-ro
-ninja: Entering directory 'build/zephyr/projects/volteer/volteer/build-ro'
-[1/324] Preparing syscall dependency handling
-
-[317/324] Linking C executable zephyr/zephyr_prebuilt.elf
-
-[324/324] Linking C executable zephyr/zephyr.elf
-Memory region Used Size Region Size %age Used
- FLASH: 238852 B 512 KB 45.56%
- SRAM: 57144 B 62 KB 90.01%
- IDT_LIST: 0 GB 2 KB 0.00%
-```
-
-Note, that the flash region size listed above represents the total flash
-available on the EC. The actual available region size is only half the reported
-value in order to store two images (RO+RW).
-
-#### Other Zephyr utilities
-
-The Cmake system utilized by Zephyr provides two build targets `rom_report` and
-`ram_report` which generate a list of all the compiled objects in tabular form.
-This can be useful for identifying particular modules that contribute to the
-image size.
-
-The `rom_report` and `ram_report` targets are currently only supported when
-working outside the chroot. Follow the [instructions][1] for building zephyr-ec
-images outside chroot before running the commands below.
-
-```
-# Configure the Volteer zephyr project, storing the build files in /tmp/zephyr-volteer
-$ zmake configure -B /tmp/zephyr-volteer zephyr/projects/volteer/volteer -t zephyr
-
-# Build the RO image
-$ ninja -C /tmp/zephyr-volteer/build-ro
-
-# Generate the ROM report, report sent to stdout
-$ ninja -C /tmp/zephyr-volteer/build-ro rom_report
-```
-
-Please refer to the [Zephyr Optimization Tools][3] documentation for details on
-the `rom_report` and `ram_report` targets.
-
-## Disable console commands
-
-The lowest hanging fruit for reducing the EC image size is by disabling console
-commands that provide debug information only and don't impact the user or the
-automated testing. Any console command that is not used by the FAFT tests and
-suites is safe to disable in the EC images.
-
-For cros-ec builds, add `#undef CONFIG_CMD_<name>` to the board.h or baseboard.h
-file to disable the console command.
-
-For zephyr-ec builds, add `CONFIG_PLATFORM_EC_CONSOLE_CMD_<name>=n` to the board
-prj.conf file to disable the console command.
-
-* TODO: Create new CONFIG/Kconfig option that disables all console commands not
- required by FAFT.
-
-| Used by FAFT | config.h option | Console commands | Notes |
-|:---|:---|:---|:---|
-| | CONFIG_CMD_ACCELS | `accelrange`<br>`accelres`<br>`accelrate`<br>`accelread`<br>`accelinit`<br>`accelinfo` | |
-| | CONFIG_CMD_ACCELSPOOF | `accelspoof` | |
-| | CONFIG_CMD_ACCEL_FIFO | `fiforead` | |
-| | CONFIG_CMD_ACCEL_INFO | `accelinfo` | |
-| | CONFIG_CMD_ADC | `adc` | Note firmware_ECAdc uses the `temps` command. |
-| | CONFIG_CMD_ALS | `als` | |
-| | CONFIG_CMD_APTHROTTLE | `apthrottle` | |
-| | CONFIG_CMD_AP_RESET_LOG |??? | |
-| | CONFIG_CMD_BATDEBUG | `fgunseal`<br>`fgseal`<br>`fginit`<br>`fgprobe`<br>`fgrd`<br>`fgcmd`<br>`fcmdrd` | |
-| | CONFIG_CMD_BATTFAKE | `battfake` | |
-| | CONFIG_CMD_BATT_MFG_ACCESS | `battmfgacc` | |
-| | CONFIG_CMD_CBI | `cbi` | firmwareECCbiEeprom uses `ectool` on AP to test CBI |
-| x | CONFIG_CMD_CHARGEN | `chargen` | Used by firmware_Cr50CCDUartStress, included in faft_ccd, faft_cr50_prepvt, and faft_cr50_pvt suites |
-| | CONFIG_CMD_CHARGER | `bd9995x`<br>`sy21612` | |
-| | CONFIG_CMD_CHARGER_ADC_AMON_BMON | `amonbmon` | |
-| | CONFIG_CMD_CHARGER_DUMP | `charger_dump` | |
-| | CONFIG_CMD_CHARGER_PROFILE_OVERRIDE | `fastcharge` | |
-| | CONFIG_CMD_CHARGER_PROFILE_OVERRIDE_TEST | `fastchgtest` | |
-| | CONFIG_CMD_CHARGE_SUPPLIER_INFO | `chgsup` | |
-| | CONFIG_CMD_CHGRAMP | `chgramp` | |
-| | CONFIG_CMD_CLOCKGATES | `clockgates` | |
-| | CONFIG_CMD_COMXTEST | `comxtest` | |
-| x | CONFIG_CMD_CRASH | `crash` | |
-| | CONFIG_CMD_DEVICE_EVENT | `deviceevent` | |
-| | CONFIG_CMD_DLOG | `dlog` | |
-| | CONFIG_CMD_ECTEMP | `ectemp` | |
-| | CONFIG_CMD_FASTCHARGE | `fastcharge` | Obsolete? use CONFIG_CMD_CHARGER_PROFILE_OVERRIDE? |
-| | CONFIG_CMD_FLASH | `flasherase`<br>`flashwrite`<br>`flashread` | |
-| | CONFIG_CMD_FLASHINFO | `flashinfo` | |
-| | CONFIG_CMD_FLASH_TRISTATE | `fpcapture`<br>`flash_tristate` | |
-| | CONFIG_CMD_FLASH_WP | `flashwp` | |
-| | CONFIG_CMD_FORCETIME | `forcetime` | |
-| | CONFIG_CMD_FPSENSOR_DEBUG | `fpcapture`<br>`fpenroll`<br>`fpmatch`<br>`fpclear`<br>`fpmaintenance` | |
-| | CONFIG_CMD_GETTIME | `gettime` | Used by Cr50 tests, not by FAFT EC |
-| | CONFIG_CMD_GL3590 | `gl3590` | |
-| | CONFIG_CMD_GPIO_EXTENDED | Adds options to `gpioget` and `gpioset`. | Should be renamed to CONFIG_GPOI_EXTENDED |
-| | CONFIG_CMD_GPIO_POWER_DOWN | Not a valid config. | Should be CONFIG_GPIO_POWER_DOWN |
-| | CONFIG_CMD_GT7288 | `gt7288_desc`<br>`gt7288_repdesc`<br>`gt7288_ver`<br>`gt7288_report` | |
-| | CONFIG_CMD_HASH | `hash` | firmware_ECHash uses `ectool echash` |
-| x | CONFIG_CMD_HCDEBUG | `hcdebug` | firmware_ECBootTime.py |
-| x | CONFIG_CMD_HOSTCMD | `hostcmd` | |
-| | CONFIG_CMD_I2CWEDGE | `i2cwedge`<br>`i2cunwedge` | |
-| | CONFIG_CMD_I2C_PROTECT | `i2cprotect` | |
-| | CONFIG_CMD_I2C_SCAN | `i2cscan` | |
-| | CONFIG_CMD_I2C_STRESS_TEST | `i2ctest` | |
-| | CONFIG_CMD_I2C_STRESS_TEST_ACCEL | Not a console command | |
-| | CONFIG_CMD_I2C_STRESS_TEST_ALS | Not a console command | |
-| | CONFIG_CMD_I2C_STRESS_TEST_BATTERY | Not a console command | |
-| | CONFIG_CMD_I2C_STRESS_TEST_CHARGER | Not a console command | |
-| | CONFIG_CMD_I2C_STRESS_TEST_TCPC | `Not a console command | |
-| | CONFIG_CMD_I2C_XFER | `i2cxfer` | firmware_ECCbiEeprom uses `ectool i2cxfer` which is not guarded by CONFIG_CMD_I2C_XFER |
-| | CONFIG_CMD_I2C_XFER_RAW | | Adds options to `i2cxfer` |
-| | CONFIG_CMD_IDLE_STATS | `idlestats` | |
-| | CONFIG_CMD_INA | `ina` | |
-| | CONFIG_CMD_JUMPTAGS | `jumptags` | |
-| x | CONFIG_CMD_KEYBOARD | `8042`<br>`ksstate`<br>`kbpress` | |
-| | CONFIG_CMD_LEDTEST | `ledtest` | |
-| | CONFIG_CMD_MCDP | `mcdp` | |
-| | CONFIG_CMD_MD | `md` | |
-| | CONFIG_CMD_MEM | | Not a console command - gates `md` and `rw` |
-| | CONFIG_CMD_MFALLOW | `mfallow` | |
-| | CONFIG_CMD_MMAPINFO | `mmapinfo` | |
-| x | CONFIG_CMD_PD | `pd` | Used by FAFT PD |
-| | CONFIG_CMD_PD_DEV_DUMP_INFO | | Not a console command |
-| | CONFIG_CMD_PD_FLASH | `pd flash` | Not supported by TCPMv2 |
-| | CONFIG_CMD_PECI | `peci` | firmware_ECThermal uses `ectool tempsinfo` |
-| | CONFIG_CMD_PLL | `pll` | only used by lm4 chip |
-| | CONFIG_CMD_POWERINDEBUG | `powerindebug` | |
-| | CONFIG_CMD_POWERLED | `powerled` | |
-| x | CONFIG_CMD_POWER_AP | `apreset`<br>`apshutdown` | Used by power_Monitoring.py |
-| | CONFIG_CMD_PPC_DUMP | `ppc_dump` | |
-| | CONFIG_CMD_PS2 | `ps2ench`<br>`ps2write` | Used only on NPCX |
-| | CONFIG_CMD_PWR_AVG | `pwr_avg` | |
-| | CONFIG_CMD_RAND | `rand` | Used only on STM32 |
-| | CONFIG_CMD_REGULATOR | `ir357x` | |
-| | CONFIG_CMD_RESET_FLAGS | `rflags` | |
-| | CONFIG_CMD_RETIMER | `bb`<br>`kbxfer` | |
-| | CONFIG_CMD_RTC | `rtc` | |
-| | CONFIG_CMD_RTC_ALARM | `rtc_alarm` | |
-| | CONFIG_CMD_RW | `rw` | |
-| | CONFIG_CMD_SCRATCHPAD | `scratchpad` | |
-| | CONFIG_CMD_SEVEN_SEG_DISPLAY | `seg` | |
-| | CONFIG_CMD_SHA256_TEST | `???` | |
-| x | CONFIG_CMD_SHMEM | `shmem` | Used by firmware_ECSharedMem |
-| | CONFIG_CMD_SLEEP | `sleep` | used only lm4 |
-| | CONFIG_CMD_SLEEPMASK | `sleepmask` | Only used for Cr50 tests |
-| | CONFIG_CMD_SLEEPMASK_SET | | Adds options to `sleepmask` |
-| | CONFIG_CMD_SPI_FLASH | `spi_flasherase`<br>`spi_flashwrite`<br>`spi_flashread`<br>`spi_flash_rsr`<br>`spi_flash_wsr`<br>`spi_flash_wsr` | |
-| | CONFIG_CMD_SPI_NOR | `spinorinfo`<br>`spinorerase`<br>`spinorwrite`<br>`spinorread` | |
-| | CONFIG_CMD_SPI_XFER | `spixfer` | |
-| | CONFIG_CMD_STACKOVERFLOW | `crash stack` | Adds option to `crash` command. |
-| x | CONFIG_CMD_SYSINFO | `sysinfo` | Used by firmware_ECSystemLocked |
-| x | CONFIG_CMD_SYSJUMP | `sysjump` | Used by firmware_ECSharedMem |
-| | CONFIG_CMD_SYSLOCK | `syslock` | |
-| | CONFIG_CMD_TASKREADY | `taskready` | |
-| | CONFIG_CMD_TASK_RESET | `taskreset` | |
-| | CONFIG_CMD_TCPC_DUMP | `tcpci_dump` | |
-| x | CONFIG_CMD_TEMP_SENSOR | `temps` | |
-| | CONFIG_CMD_TIMERINFO | `timerinfo` | |
-| | CONFIG_CMD_TYPEC | `typec` | |
-| | CONFIG_CMD_USART_INFO | `usart_info` | |
-| | CONFIG_CMD_USB_PD_CABLE | `pdcable` | |
-| x | CONFIG_CMD_USB_PD_PE | `pe` | Doesn't appear to be used but might be by FAFT PD |
-| x | CONFIG_CMD_WAITMS | `waitms` | firmware_ECWatchdog | |
-
-## Reduce or eliminate USB-C debugging
-
-The TCPM (Type-C Port manager) implementation is one of the more complex modules
-implemented by the EC code. This module includes extensive debugging and is
-enabled by default due to the value provided during both board bringup and on
-production systems.
-
-The TCPM provides the following debug levels:
-* `DEBUG_DISABLE` (0) - Debugging disabled, no runtime messages displayed
-* `DEBUG_LEVEL_1` (1) - Displays all the state transitions for the TC (Type-C)
- and PE (Policy Engine) state machines
-* `DEBUG_LEVEL_2` (2) - Displays the raw contents of received PD (Power
- Delivery) packets, excluding PING packets
-* `DEBUG_LEVEL_3` (3) - Enables debug messages in the PRL Also displays received
- PING packets.
-
-When `CONFIG_USB_PD_DEBUG_LEVEL` is undefined, the EC allows runtime
-configuration of the USB-C debug level using the `pd dump <level>` EC console
-command. In this configuration, the strings from all debug levels are included
-in the image.
-
-Enabling a fixed debug level removes runtime control of the debug level and also
-removes the strings for the higher debug levels.
-
-For cros-ec builds, add the following to your board.h/baseboard.h file:
-
-```c
- #define CONFIG_USB_PD_DEBUG_LEVEL <level>
-```
-
-For zephyr-ec builds, add the following to your prj.conf file:
-
-```
- CONFIG_PLATFORM_EC_USB_PD_DEBUG_FIXED_LEVEL=y
- CONFIG_PLATFORM_EC_USB_PD_DEBUG_LEVEL=<level>
-```
-
-Approximate flash space savings from each fixed level setting:
-
-Fixed Debug Level | Relative Saving | Cumulative Saving
---- | --- | ---
-Disabled | 0 | 0
-3 | 100 bytes | 100 bytes
-2 | 500-600 bytes | 600-700 bytes
-1 | 100 bytes | 700-800 bytes
-0 | 2000 bytes | 2700-2800 bytes
-
-The recommended setting is setting the fixed debug level to `DEBUG_LEVEL_2` (2).
-This adds details about received PD packets in the EC log stored by the kernel
-and can help troubleshoot PD issues when a PD analyzer isn't available.
-
-It is not recommended to set the fixed debug level to `DEBUG_DISABLE` (0) on any
-shipping firmware.
-
-### TCPMv1 Configuration
-
-Many older platforms still use the legacy TCPMv1 (`CONFIG_USB_PD_TCPMV1`)
-implementation. Specific to TCPMv1, the PD protocol state names can be removed
-from the debug output by adding the following to the board.h/baseboard.h file.
-
-```c
-#undef CONFIG_USB_PD_TCPMV1_DEBUG
-```
-
-This saves around 900 bytes of flash space. TCPMv2 does not currently provide an
-equivalent configuration option, so there is also no Kconfig equivalent.
-
-## Other optional features
-
-### ASSERT() Calls
-
-By default, `ASSERT()` calls generate a console message of the following form:
-
-```
- ASSERTION FAILURE '<expr>' in function() at file:line
-```
-
-There are two options available that reduce the size of strings stored with the
-`ASSERT()` calls.
-
-Description | cros-ec setting | zephyr-ec setting | Total Savings
-:--- | :--- | :--- | :---
-Display only file and line number | `#define CONFIG_DEBUG_ASSERT_BRIEF` | `CONFIG_PLATFORM_EC_DEBUG_ASSERT_BRIEF=y` | 2000-2500 bytes
-Disable all debug from ASSERT() calls.<br> EC is reset using a software breakpoint. | `#undef CONFIG_DEBUG_ASSERT_REBOOTS` | `CONFIG_PLATFORM_EC_DEBUG_ASSERT_REBOOTS=n`<br>`CONFIG_PLATFORM_EC_DEBUG_ASSERT_BREAKPOINT=y` | 3000-4000 bytes
-
-It is not recommended to disable `CONFIG_PLATFORM_EC_DEBUG_ASSERT_REBOOTS` on
-shipping firmware.
-
-### Disable console help
-
-The help strings can be removed from the final build, saving about 5000 bytes of
-flash space.
-
-For cros-ec builds, add `#undef CONFIG_CONSOLE_CMDHELP` to the
-board.h/baseboard.h file.
-
-zephyr-ec builds use Zephyr's shell subsystem and by default enable the
-`CONFIG_SHELL_MINIMAL` option. This option already disables shell help along
-with many other non-critical features. Refer to the shell subsystem [Kconfig][2]
-source file for the complete list of shell features than can be configured.
-
-### Link time optimizaiton
-
-Link time optimization (LTO) is a feature of the linker to identify and remove
-unused code.
-
-For cros-ec builds, LTO is enabled by adding this to the board.h/baseboard.h
-file.
-
-```c
-#define CONFIG_LTO
-```
-
-For zephyr-ec builds, LTO is enabled by default and is controlled with Kconfig.
-
-```
-CONFIG_LTO=y
-```
-
-Note that for zephyr-ec builds, LTO is only turned on for the source files found
-under `platform/ec`. The upstream Zephyr code does not currently support LTO
-due to some auto-generated code that breaks the assumptions made by the linker.
-This [Github issue][4] tracks the effort to support LTO in the Zephyr kernel.
-
-### CONFIG_CHIP_INIT_ROM_REGION
-
-The config option `CONFIG_CHIP_INIT_ROM_REGION` creates a new linker section to
-store data that remains resident in ROM/flash at runtime. This reduces the
-effective cros-ec image size by identifying data structures that do not need to
-be copied into the code RAM section at startup.
-
-This option has the following requirements:
-1. EC executes code from RAM
-2. The ROM/flash size is larger than 2 times the code RAM size.
-3. The RO code released for the board includes this
- [change](https://crrev.com/c/2428566).
-
-The only EC chip that matches these prerequisites is the Nuvoton NPCX7.
-
-Due to the RO code requirement, take care before enabling this option for boards
-released prior to 2021.
-
-If the above requirements are meant, add the following to the
-board.h/baseboard.h file:
-
-```c
-#define CONFIG_CHIP_INIT_ROM_REGION
-#define CONFIG_CHIP_DATA_IN_INIT_ROM
-```
-
-These options are not supported for zephyr-ec builds.
-
-### Enable short GPIO names
-
-The [GPIO macros](./configuration/gpio.md) defined by the board get stored as
-descriptive strings for use with the `gpioget` and `gpioset` console commands.
-
-The names of the GPIOs can be shorted by enabling the
-`CONFIG_COMMON_GPIO_SHORTNAMES` option.
-
-For example, the Kukui board defines this GPIO:
-
-```c
-GPIO(PMIC_FORCE_RESET_ODL, PIN(A, 2), GPIO_ODR_HIGH)
-```
-
-Normally, the GPIO name is stored exactly as specified by the macro:
-`PMIC_FORCE_RESET_ODL`. However, when `CONFIG_COMMON_GPIO_SHORTNAMES` is
-defined, then the GPIO name is shortened to only include port and pin number:
-`A2`.
-
-This option is currently only supported by the STM32 chip and it is not
-supported by zephyr-ec builds.
-
-Note that there are some [FAFT tests][5] that rely on the GPIO name. If you
-enable this option, you may also need to change firmware testing configuration
-[file][6].
-
-[1]:./zephyr_build.md#Working-outside-the-chroot
-[2]:https://github.com/zephyrproject-rtos/zephyr/blob/main/subsys/shell/Kconfig
-[3]:https://docs.zephyrproject.org/latest/guides/optimizations/tools.html
-[4]:https://github.com/zephyrproject-rtos/zephyr/issues/2112
-[5]:https://chromium.googlesource.com/chromiumos/third_party/autotest/+/069cb4b0/server/site_tests/firmware_ECUsbPorts/firmware_ECUsbPorts.py#81
-[6]:https://chromium.googlesource.com/chromiumos/platform/fw-testing-configs/+/e2e9547e/volteer.json#26