/* Copyright 2020 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ /* Nucleo-H743ZI baseboard configuration */ #ifndef __CROS_EC_BASE_BOARD_H #define __CROS_EC_BASE_BOARD_H /* * Flash layout: * * +++++++++++++ * | RO | Bank 1 * | | * | | * | ......... | * | Rollback | (last two sectors) * +-----------+ * | RW | Bank 2 * | | * | | * | | * | | * +++++++++++++ * * We adjust the following macros to accommodate a rollback region * and RO/RW regions of different sizes. */ #undef _IMAGE_SIZE #undef CONFIG_ROLLBACK_OFF #undef CONFIG_ROLLBACK_SIZE #undef CONFIG_FLASH_PSTATE #undef CONFIG_FW_PSTATE_SIZE #undef CONFIG_FW_PSTATE_OFF #undef CONFIG_RO_MEM_OFF #undef CONFIG_RO_STORAGE_OFF #undef CONFIG_RO_SIZE #undef CONFIG_RW_MEM_OFF #undef CONFIG_RW_STORAGE_OFF #undef CONFIG_RW_SIZE #undef CONFIG_EC_PROTECTED_STORAGE_OFF #undef CONFIG_EC_PROTECTED_STORAGE_SIZE #undef CONFIG_EC_WRITABLE_STORAGE_OFF #undef CONFIG_EC_WRITABLE_STORAGE_SIZE #undef CONFIG_WP_STORAGE_OFF #undef CONFIG_WP_STORAGE_SIZE /* * EC rollback protection block * * We need 2 independently erasable blocks, at a minimum. */ #define CONFIG_ROLLBACK_SIZE (2 * CONFIG_FLASH_BANK_SIZE) #define CONFIG_ROLLBACK_OFF ((CONFIG_FLASH_SIZE_BYTES / 2) - \ CONFIG_ROLLBACK_SIZE) #define CONFIG_RO_MEM_OFF 0 #define CONFIG_RO_SIZE CONFIG_ROLLBACK_OFF #define CONFIG_RW_MEM_OFF (CONFIG_FLASH_SIZE_BYTES / 2) #define CONFIG_RW_SIZE (CONFIG_FLASH_SIZE_BYTES / 2) #define CONFIG_RO_STORAGE_OFF 0 #define CONFIG_RW_STORAGE_OFF 0 #define CONFIG_EC_PROTECTED_STORAGE_OFF CONFIG_RO_MEM_OFF #define CONFIG_EC_PROTECTED_STORAGE_SIZE CONFIG_RO_SIZE #define CONFIG_EC_WRITABLE_STORAGE_OFF CONFIG_RW_MEM_OFF #define CONFIG_EC_WRITABLE_STORAGE_SIZE CONFIG_RW_SIZE #define CONFIG_WP_STORAGE_OFF CONFIG_EC_PROTECTED_STORAGE_OFF #define CONFIG_WP_STORAGE_SIZE CONFIG_EC_PROTECTED_STORAGE_SIZE /* Disabled features */ #undef CONFIG_ADC #undef CONFIG_HIBERNATE #undef CONFIG_I2C #undef CONFIG_LID_SWITCH #undef CONFIG_TASK_PROFILING /* Enabled features */ #define CONFIG_AES #define CONFIG_AES_GCM #define CONFIG_DMA #define CONFIG_FORCE_CONSOLE_RESUME #define CONFIG_FPU #define CONFIG_HOST_COMMAND_STATUS #define CONFIG_LOW_POWER_IDLE #define CONFIG_MKBP_EVENT #define CONFIG_MKBP_USE_GPIO #define CONFIG_PRINTF_LEGACY_LI_FORMAT #define CONFIG_RNG #define CONFIG_RWSIG_TYPE_RWSIG #define CONFIG_SHA256 #define CONFIG_SHA256_UNROLLED #undef CONFIG_SHAREDLIB_SIZE #define CONFIG_SHAREDLIB_SIZE 0 #define CONFIG_STM_HWTIMER32 #define CONFIG_WATCHDOG_HELP #define CONFIG_WP_ACTIVE_HIGH #ifndef TEST_BUILD /* TODO(hesling): Fix the illogical dependency between spi.c * and host_command.c * * Currently, the chip/stm32/spi.c depends on functions defined in * common/host_command.c. When unit test builds use their own tasklist * without the HOSTCMD task, host_command.c is excluded from the build, * but chip/stm32/spi.c remains (because of CONFIG_SPI). * This triggers an undefined reference linker error. * The reproduce case: * - Allow CONFIG_SPI in TEST_BUILDs * - make BOARD=nucleo-h743zi tests */ # define CONFIG_SPI #endif /* * We want to prevent flash readout, and use it as indicator of protection * status. */ #define CONFIG_FLASH_READOUT_PROTECTION_AS_PSTATE /* * RW does slow compute, RO does slow flash erase. */ #undef CONFIG_WATCHDOG_PERIOD_MS #define CONFIG_WATCHDOG_PERIOD_MS 10000 /* Setup UART console */ #undef CONFIG_UART_CONSOLE #define CONFIG_UART_CONSOLE 3 /* The UART console is on USART3 */ #define CONFIG_UART_TX_DMA #define CONFIG_UART_TX_DMA_PH DMAMUX1_REQ_USART3_TX #undef CONFIG_UART_TX_BUF_SIZE #define CONFIG_UART_TX_BUF_SIZE 2048 /* Console commands */ #define CONFIG_CMD_FLASH #define CONFIG_CMD_IDLE_STATS #ifdef SECTION_IS_RO /* RO verifies the RW partition signature */ # define CONFIG_RSA # define CONFIG_RWSIG #endif /* SECTION_IS_RO */ #define CONFIG_RSA_KEY_SIZE 3072 #define CONFIG_RSA_EXPONENT_3 /* * We do not use any "locally" generated entropy: this is normally used * to add local entropy when the main source of entropy is remote. */ #undef CONFIG_ROLLBACK_SECRET_LOCAL_ENTROPY_SIZE #ifdef SECTION_IS_RW # undef CONFIG_ROLLBACK_UPDATE #endif /* * Add rollback protection */ #define CONFIG_ROLLBACK #define CONFIG_ROLLBACK_MPU_PROTECT #ifndef __ASSEMBLER__ /* Timer selection */ # define TIM_CLOCK32 2 # define TIM_WATCHDOG 16 # include "gpio_signal.h" void button_event(enum gpio_signal signal); #endif /* !__ASSEMBLER__ */ #endif /* __CROS_EC_BASE_BOARD_H */