diff options
author | Karel Gardas <karel@functional.vision> | 2022-06-10 14:00:12 +0200 |
---|---|---|
committer | Karel Gardas <karel@functional.vision> | 2023-02-05 20:42:24 +0100 |
commit | f16b8fc32a1ef0efe9e36cab2dde49d0c7a4205f (patch) | |
tree | 814c8d34580dc477c88126502e4911fc101cee74 /bsps/arm | |
parent | bsps/stm32h7: import stm32h757i-eval QSPI memory high-level driver (diff) | |
download | rtems-f16b8fc32a1ef0efe9e36cab2dde49d0c7a4205f.tar.bz2 |
bsps/stm32h7: allow config and usage of QSPI memory on stm32h757i-eval BSP
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
Diffstat (limited to 'bsps/arm')
-rw-r--r-- | bsps/arm/stm32h7/boards/stm/stm32h757i-eval/stm32h7-bspstarthooks.c | 17 | ||||
-rw-r--r-- | bsps/arm/stm32h7/include/bsp.h | 1 |
2 files changed, 18 insertions, 0 deletions
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..1bb81e3b60 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> +#include <stm32h747i_eval_qspi.h> +static BSP_QSPI_Init_t QSPinit; + +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 */ + /* due to usage of static QSPinit variable please call this function + after bsp_start_clear_bss call since otherwise you would hit uninitialized + variable memory while accessing it and in addition the call to bsp_start_clear_bss + would wipe the variable content later after its initialization here. */ + BSP_QSPI_Init(0, &QSPinit); + BSP_QSPI_EnableMemoryMappedMode(0); +#endif +} + void bsp_start_hook_0(void) { if ((RCC->AHB3ENR & RCC_AHB3ENR_FMCEN) == 0) { @@ -75,4 +91,5 @@ void bsp_start_hook_1(void) SCB_InvalidateICache(); #endif bsp_start_clear_bss(); + stm32h7_init_qspi(); } 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); /** @} */ |