We have a question regarding the iMXNorFlashDxe driver, specifically from the Windows BSP source (W21H2-1-5-0-imx-windows-bsp), located at mu_platform_nxp/Silicon/ARM/NXP/iMX8Pkg/Drivers/iMXNorFlashDxe.
The README file for this driver mentions that the FlexSPI is implemented based on U-Boot. However, it seems that clock configuration is not included.
We are trying to use UEFI Bootloader instead of U-boot. Please assist us by providing instructions for the following queries:
1. How can we configure the clock for FlexSPI in the UEFI driver (iMXNorFlashDxe)?
We have reviewed the NXP community discussion on [FlexSPI Driver Design] but still need further clarification on FlexSPI initialization.
Aside from the FlexSPI Driver Design.pdf, are there any additional datasheets or documents available for FlexSPI?
2. Are there specific methods or steps required to initialize FlexSPI properly?
Thanks,
Mehala P
Hello @mehalap
From Internal Team:
There should be initialization of the clock in iMX8BoardInit.c
There are clock enable registers for ECSPI (defined in MIMX8MP8_ca53.h), in a similar way, this should be possible for FlexSPI, sometimes named QuadSPI. I think the proper register variable is CCM_CCGR_FLEXSPI, while for regular SPI, the variables are named CCM_CCGR_ECSPIx where x={1,2,3}.
On top of that, for the configuration of the Q/FSPI clock, there is the CCM_TARGET_ROOT_QSPI variable which is setup in a similar way to other clock variables such as CCM_TARGET_ROOT_PCIE_PHY for PCIE on line 430 of the BoardInit.
Best regards,
Salas.
Thanks for your support.
Analyzed the Clock initialization in the AudioInit function.
In a similar way, implemented FlexSPI initialization in my project.
Thanks,
Mehala P