summaryrefslogtreecommitdiff
path: root/board/nucleo-h743zi
diff options
context:
space:
mode:
authorCraig Hesling <hesling@chromium.org>2020-02-14 14:42:38 -0800
committerCommit Bot <commit-bot@chromium.org>2020-02-25 22:58:08 +0000
commit14a23fb197983a0066fb95199f3a5120447b7169 (patch)
tree53f934899dabb4d8145805f7fefd346288101344 /board/nucleo-h743zi
parent5ee54edfd520ce1a447cf0b04d1fcdf3f618188e (diff)
downloadchrome-ec-14a23fb197983a0066fb95199f3a5120447b7169.tar.gz
nucleo-h743zi: Separated into baseboard
This allows for creating multiple projects on top of the nucleo-h743zi platform. The intended use for this is to have a fingerprint board/project that pulls in all FPMCU specific config and libraries, while still maintaining another pure nucleo-h743zi board/project that can be used for platform testing and tuning. I suspect there will be more test boards/projects that use the nucleo-h743zi baseboard in the future. A project/board would be used as a way to create a specific test platform that can isolate an individual feature. Note, this does make use of recursively including the basboard gpio table. This requires the use of https://crrev.com/c/2056498 (gpio: Free gpio.inc from oppressive order). This also removes malloc support. BRANCH=none BUG=none TEST=make BOARD=nucleo-h743zi # Copy binary to mass storage # Connect to console and change clock sources Change-Id: I455274e0efb8ec374443314d351e254f1347a1a9 Signed-off-by: Craig Hesling <hesling@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2057498 Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'board/nucleo-h743zi')
-rw-r--r--board/nucleo-h743zi/board.c4
-rw-r--r--board/nucleo-h743zi/board.h179
-rw-r--r--board/nucleo-h743zi/build.mk5
-rw-r--r--board/nucleo-h743zi/ec.tasklist8
-rw-r--r--board/nucleo-h743zi/gpio.inc20
l---------[-rw-r--r--]board/nucleo-h743zi/openocd-flash.cfg15
l---------[-rw-r--r--]board/nucleo-h743zi/openocd.cfg10
7 files changed, 11 insertions, 230 deletions
diff --git a/board/nucleo-h743zi/board.c b/board/nucleo-h743zi/board.c
index 33d8afa62c..c4c7e764c8 100644
--- a/board/nucleo-h743zi/board.c
+++ b/board/nucleo-h743zi/board.c
@@ -50,10 +50,6 @@ static void slp_event(enum gpio_signal signal)
hook_call_deferred(&ap_deferred_data, 0);
}
-static void button_event(enum gpio_signal signal)
-{
-}
-
#include "gpio_list.h"
/* Initialize board. */
diff --git a/board/nucleo-h743zi/board.h b/board/nucleo-h743zi/board.h
index 3aa6b89066..0e8c5a730b 100644
--- a/board/nucleo-h743zi/board.h
+++ b/board/nucleo-h743zi/board.h
@@ -10,131 +10,10 @@
#ifndef __BOARD_H
#define __BOARD_H
-#undef CONFIG_SYSTEM_UNLOCKED
-
-/*
- * 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 / 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 / 2)
-#define CONFIG_RW_SIZE (CONFIG_FLASH_SIZE / 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_SUPPRESSED_HOST_COMMANDS \
- EC_CMD_CONSOLE_SNAPSHOT, EC_CMD_CONSOLE_READ, EC_CMD_PD_GET_LOG_ENTRY
-#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
+/* Baseboard features */
+#include "base-board.h"
-/*
- * RW does slow compute, RO does slow flash erase.
- */
-#undef CONFIG_WATCHDOG_PERIOD_MS
-#define CONFIG_WATCHDOG_PERIOD_MS 10000
+#undef CONFIG_SYSTEM_UNLOCKED
/*
* These allow console commands to be flagged as restricted.
@@ -145,56 +24,4 @@
#define CONFIG_CONSOLE_COMMAND_FLAGS
#define CONFIG_RESTRICTED_CONSOLE_COMMANDS
-/* 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_RW
- /*
- * Use the malloc code only in the RW section (for the private library),
- * we cannot enable it in RO since it is not compatible with the
- * RW verification (shared_mem_init done too late).
- */
-# define CONFIG_MALLOC
-#else /* !SECTION_IS_RW */
- /* RO verifies the RW partition signature */
-# define CONFIG_RSA
-# define CONFIG_RWSIG
-#endif /* SECTION_IS_RW */
-
-#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"
-#endif /* !__ASSEMBLER__ */
-
#endif /* __BOARD_H */
diff --git a/board/nucleo-h743zi/build.mk b/board/nucleo-h743zi/build.mk
index 6a912763db..3de2a44adc 100644
--- a/board/nucleo-h743zi/build.mk
+++ b/board/nucleo-h743zi/build.mk
@@ -4,10 +4,7 @@
#
# Board specific files build
-# the IC is STmicro STM32H743
-CHIP:=stm32
-CHIP_FAMILY:=stm32h7
-CHIP_VARIANT:=stm32h7x3
+BASEBOARD:=nucleo-h743zi
board-y=board.o
diff --git a/board/nucleo-h743zi/ec.tasklist b/board/nucleo-h743zi/ec.tasklist
index 4437e9b38c..9c37e0b58b 100644
--- a/board/nucleo-h743zi/ec.tasklist
+++ b/board/nucleo-h743zi/ec.tasklist
@@ -3,11 +3,9 @@
* found in the LICENSE file.
*/
+ #include "base-ec.tasklist"
+
/**
* See CONFIG_TASK_LIST in config.h for details.
*/
-#define CONFIG_TASK_LIST \
- TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
- TASK_ALWAYS(HOOKS, hook_task, NULL, 1024) \
- TASK_NOTEST(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \
- TASK_ALWAYS(CONSOLE, console_task, NULL, CONSOLE_TASK_STACK_SIZE)
+#define CONFIG_TASK_LIST BASEBOARD_CONFIG_TASK_LIST
diff --git a/board/nucleo-h743zi/gpio.inc b/board/nucleo-h743zi/gpio.inc
index 0e458365d2..0f2bb32d75 100644
--- a/board/nucleo-h743zi/gpio.inc
+++ b/board/nucleo-h743zi/gpio.inc
@@ -11,24 +11,8 @@
* The V2 is denoted by "Nucleo-H743ZI2" vs. "Nucleo-H743ZI".
*/
-/* Interrupts */
-GPIO_INT(SPI1_NSS, PIN(A, 4), GPIO_INPUT, spi_event)
+#include "base-gpio.inc"
+/* Interrupts */
GPIO_INT(PCH_SLP_S0_L, PIN(D, 13), GPIO_INT_BOTH, slp_event)
GPIO_INT(PCH_SLP_S3_L, PIN(A, 11), GPIO_INT_BOTH, slp_event)
-GPIO_INT(BTN1, PIN(C, 13), GPIO_INT_BOTH, button_event)
-
-GPIO(WP, PIN(B, 7), GPIO_INPUT)
-
-/* Outputs */
-GPIO(EC_INT_L, PIN(A, 1), GPIO_OUT_HIGH)
-GPIO(LED1, PIN(B, 0), GPIO_OUT_LOW) /* Green */
-GPIO(LED2, PIN(E, 1), GPIO_OUT_LOW) /* Yellow */
-GPIO(LED3, PIN(B, 14), GPIO_OUT_LOW) /* Red */
-
-UNIMPLEMENTED(ENTERING_RW)
-
-/* USART3: PD8/PD9 */
-ALTERNATE(PIN_MASK(D, 0x0300), GPIO_ALT_USART, MODULE_UART, GPIO_PULL_UP)
-/* SPI1 slave from the AP: PA4/5/6/7 */
-ALTERNATE(PIN_MASK(A, 0x00f0), GPIO_ALT_SPI, MODULE_SPI, 0)
diff --git a/board/nucleo-h743zi/openocd-flash.cfg b/board/nucleo-h743zi/openocd-flash.cfg
index 4517266d7b..904ee459ab 100644..120000
--- a/board/nucleo-h743zi/openocd-flash.cfg
+++ b/board/nucleo-h743zi/openocd-flash.cfg
@@ -1,14 +1 @@
-# Copyright 2019 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.
-
-source [find board/st_nucleo_h743zi.cfg]
-
-gdb_port 0
-tcl_port 0
-telnet_port 0
-init
-reset halt
-flash write_image erase $BUILD_DIR/ec.bin 0x08000000
-reset
-shutdown
+../../baseboard/nucleo-h743zi/openocd-flash.cfg \ No newline at end of file
diff --git a/board/nucleo-h743zi/openocd.cfg b/board/nucleo-h743zi/openocd.cfg
index 528e8d6cab..b3fc5796c5 100644..120000
--- a/board/nucleo-h743zi/openocd.cfg
+++ b/board/nucleo-h743zi/openocd.cfg
@@ -1,9 +1 @@
-# Copyright 2019 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.
-
-source [find board/st_nucleo_h743zi.cfg]
-
-# Enabled EC task context support
-# This is supported by the upstream OpenOCD
-$_TARGETNAME configure -rtos Chromium-EC
+../../baseboard/nucleo-h743zi/openocd.cfg \ No newline at end of file