On Fri, Jun 10, 2022 at 6:49 AM Karel Gardas <karel@functional.vision> wrote: > > 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;
Do you need this variable to be in the global namespace? Can it be a static variable here? > +#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 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel