[PATCH v3 0/6] imx9{4,5,52}: Add Quickboot support
Simona Toaca (OSS)
simona.toaca at oss.nxp.com
Thu Apr 2 11:40:42 CEST 2026
From: Simona Toaca <simona.toaca at nxp.com>
This patch series adds support for saving DDR training
data to non-volatile memory on iMX94, iMX95 and iMX952 platforms.
The purpose is running DDR Quickboot flow on next reboot.
The process is as follows:
- OEI runs Training flow for the DDRPHY
- OEI saves the data from training to volatile memory
- U-Boot can then save it to non-volatile memory (e.g. SD)
- OEI loads the data from NVM at cold reboot and runs Quickboot flow
By skipping training, a much lower boot time is achieved.
Changes for v3:
- Rebased and added support for iMX952
- Removed IMX_SNPS_DDR_PHY_QB_GEN macro, as it was not useful ->
now CMD_QB is enabled by default on the supported boards
- Removed unnecessary #ifdefs -> replaced with if (CONFIG..)
- Replaced spi_flash_probe with udevice_first_device_err to
avoid using SPI macros that needed ifdefs, since there is only
one SPI flash device available.
- Adnotated qb methods with qb_ to be easier to see in asm dump
- Removed explicit pointer casts from (void *)
- Replaced custom qb_crc32 with the U-Boot one
- Made eveything snake_case
- Enabled SFDP support for iMX943/95, as it is necessary for
proper erase size parsing (and is already present in iMX952 config)
- Improved documentation - explanation about the space in bootloader
- Added commit fixing a style issue in Kconfig
Changes for v2:
- Improved documentation to clarify the questions asked
- Detailed log messages for all commits
- Detailed Kconfig options for SPL_IMX_QB and CMD_IMX_QB
- Fixed the mentioned coding style issues
Simona Toaca (6):
imx9: Add support for saving DDR training data to NVM
arm: mach-imx: Add command to expose QB functionality
configs: imx9{43, 5}: Enable SPI SFDP support
board: nxp: imx9{4,5,52}_evk: Add qb save option in SPL
doc: board: nxp: Add Quickboot documentation
drivers: ddr: imx: Fix Kconfig for SAVED_DRAM_TIMING_BASE
arch/arm/include/asm/arch-imx9/ddr.h | 48 +++-
arch/arm/include/asm/mach-imx/qb.h | 15 ++
arch/arm/mach-imx/Kconfig | 19 ++
arch/arm/mach-imx/Makefile | 1 +
arch/arm/mach-imx/cmd_qb.c | 132 ++++++++++
arch/arm/mach-imx/imx9/Makefile | 10 +-
arch/arm/mach-imx/imx9/qb.c | 379 +++++++++++++++++++++++++++
arch/arm/mach-imx/imx9/scmi/soc.c | 7 +
board/nxp/imx94_evk/spl.c | 6 +-
board/nxp/imx952_evk/spl.c | 4 +
board/nxp/imx95_evk/spl.c | 6 +-
configs/imx943_evk_defconfig | 1 +
configs/imx95_15x15_evk_defconfig | 1 +
configs/imx95_evk.config | 1 +
doc/board/nxp/index.rst | 1 +
doc/board/nxp/qb.rst | 54 ++++
drivers/ddr/imx/imx9/Kconfig | 9 +-
17 files changed, 688 insertions(+), 6 deletions(-)
create mode 100644 arch/arm/include/asm/mach-imx/qb.h
create mode 100644 arch/arm/mach-imx/cmd_qb.c
create mode 100644 arch/arm/mach-imx/imx9/qb.c
create mode 100644 doc/board/nxp/qb.rst
--
2.43.0
More information about the U-Boot
mailing list