The QSPI memory is initialized and used only when the BSP configure file sets QSPI memory size to non-zero value. Currently QSPI is run in memory mapped mode which allows future RTEMS binary linkage and upload into QSPI memory.
Sponsored-By: Precidata --- .../stm/stm32h757i-eval/stm32h7-bspstarthooks.c | 17 +++++++++++++++++ bsps/arm/stm32h7/include/bsp.h | 1 + .../bsps/arm/stm32h7/bspstm32h757i-eval.yml | 5 ++++- spec/build/bsps/arm/stm32h7/optmemquadspisz.yml | 1 + 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h7-bspstarthooks.c b/bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h7-bspstarthooks.c index 8d34e357ee..9916b740ce 100644 --- a/bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h7-bspstarthooks.c +++ b/bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h7-bspstarthooks.c @@ -36,6 +36,22 @@ #include <string.h> +#if defined(STM32H7_MEMORY_QUADSPI_SIZE) && STM32H7_MEMORY_QUADSPI_SIZE > 0 +#include <stm32h747i_eval_qspi.h> +BSP_QSPI_Init_t QSPinit; +#endif + +void stm32h7_init_qspi(void) +{ +#if defined(STM32H7_MEMORY_QUADSPI_SIZE) && STM32H7_MEMORY_QUADSPI_SIZE > 0 + /* let's initialize Quad SPI memory here for memory mapped mode */ + memset((void*)&(QSPI_Ctx[0]), 0, sizeof(QSPI_Ctx[0])); + memset((void*)&QSPinit, 0, sizeof(BSP_QSPI_Init_t)); + BSP_QSPI_Init(0, &QSPinit); + BSP_QSPI_EnableMemoryMappedMode(0); +#endif +} + void bsp_start_hook_0(void) { if ((RCC->AHB3ENR & RCC_AHB3ENR_FMCEN) == 0) { @@ -52,6 +68,7 @@ void bsp_start_hook_0(void) HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1); HAL_Init(); SystemInit_ExtMemCtl(); + stm32h7_init_qspi(); } #if __CORTEX_M == 0x07U diff --git a/bsps/arm/stm32h7/include/bsp.h b/bsps/arm/stm32h7/include/bsp.h index 08311bf51e..cd4d25c069 100644 --- a/bsps/arm/stm32h7/include/bsp.h +++ b/bsps/arm/stm32h7/include/bsp.h @@ -62,6 +62,7 @@ void stm32h7_init_power(void); void stm32h7_init_oscillator(void); void stm32h7_init_clocks(void); void stm32h7_init_peripheral_clocks(void); +void stm32h7_init_qspi(void); /** @} */ diff --git a/spec/build/bsps/arm/stm32h7/bspstm32h757i-eval.yml b/spec/build/bsps/arm/stm32h7/bspstm32h757i-eval.yml index 5d7ee1348d..7516e55a3f 100644 --- a/spec/build/bsps/arm/stm32h7/bspstm32h757i-eval.yml +++ b/spec/build/bsps/arm/stm32h7/bspstm32h757i-eval.yml @@ -8,7 +8,8 @@ copyrights: cppflags: [] enabled-by: true family: stm32h7 -includes: [] +includes: +- bsps/arm/stm32h7/boards/stm/stm32h757i-eval install: [] links: - role: build-dependency @@ -16,6 +17,8 @@ links: - role: build-dependency uid: tststm32h757i-eval source: +- bsps/arm/stm32h7/boards/stm/Components/mt25tl01g/mt25tl01g.c +- bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h747i_eval_qspi.c - bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h7-bspstarthooks.c - bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h7-config-clk.c - bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h7-config-osc.c diff --git a/spec/build/bsps/arm/stm32h7/optmemquadspisz.yml b/spec/build/bsps/arm/stm32h7/optmemquadspisz.yml index 11e5f943e0..9337610b45 100644 --- a/spec/build/bsps/arm/stm32h7/optmemquadspisz.yml +++ b/spec/build/bsps/arm/stm32h7/optmemquadspisz.yml @@ -1,6 +1,7 @@ actions: - get-integer: null - env-assign: null +- define-unquoted: null build-type: option default: 0 default-by-variant: [] -- 2.25.1 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel