From: "Simona Toaca (OSS)" <simona.toaca@oss.nxp.com>
To: uboot-imx@nxp.com, u-boot@lists.denx.de
Cc: Stefano Babic <sbabic@nabladev.com>,
festevam@gmail.com, peng.fan@nxp.com, alice.guo@nxp.com,
ye.li@nxp.com, simona.toaca@nxp.com, viorel.suman@nxp.com,
fedor.ross@ifm.com, marex@nabladev.com,
joao.goncalves@toradex.com, ravi@prevas.dk, ping.bai@nxp.com,
ji.luo@nxp.com, qijian.guo@nxp.com
Subject: [PATCH v4 0/4] imx9{4,5,52}: Add Quickboot support
Date: Thu, 30 Apr 2026 11:33:29 +0300 [thread overview]
Message-ID: <cover.1777536451.git.simona.toaca@nxp.com> (raw)
From: Simona Toaca <simona.toaca@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 v4:
- add IMX_QB macro to include qb.c based on the boot phase
- change qb_ prefix to imx_qb_ for qb.c methods, to
be more specific
- add boot device macro to string conversion for the case
where the device is not explicitly specified
- pass quickboot args as strings and parse them in qb.c using
blk_device_get_by_str/blk_device_part_str (if they are blk devices).
This enables specifying mmc 0:2 for the boot1 partition of the eMMC
device.
- use blk device API instead of mmc-specific
- use SPI DM methods for spi flash read/write
- use malloc for storing container header instead of kmalloc
- add eMMC hwpart usage to the documentation
- sent the qb-unrelated patches separately
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 (4):
imx9: Add support for saving DDR training data to NVM
arm: mach-imx: Add command to expose QB functionality
board: nxp: imx9{4,5,52}_evk: Add qb save option in SPL
doc: board: nxp: Add Quickboot documentation
arch/arm/include/asm/arch-imx9/ddr.h | 48 +++-
arch/arm/include/asm/mach-imx/qb.h | 15 +
arch/arm/mach-imx/Kconfig | 28 ++
arch/arm/mach-imx/Makefile | 1 +
arch/arm/mach-imx/cmd_qb.c | 102 +++++++
arch/arm/mach-imx/imx9/Makefile | 6 +-
arch/arm/mach-imx/imx9/qb.c | 403 +++++++++++++++++++++++++++
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 +-
doc/board/nxp/index.rst | 1 +
doc/board/nxp/quickboot.rst | 59 ++++
drivers/ddr/imx/imx9/Kconfig | 7 +
14 files changed, 688 insertions(+), 5 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/quickboot.rst
--
2.43.0
next reply other threads:[~2026-04-30 8:23 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-30 8:33 Simona Toaca (OSS) [this message]
2026-04-30 8:33 ` [PATCH v4 1/4] imx9: Add support for saving DDR training data to NVM Simona Toaca (OSS)
2026-04-30 8:33 ` [PATCH v4 2/4] arm: mach-imx: Add command to expose QB functionality Simona Toaca (OSS)
2026-04-30 8:33 ` [PATCH v4 3/4] board: nxp: imx9{4, 5, 52}_evk: Add qb save option in SPL Simona Toaca (OSS)
2026-04-30 8:33 ` [PATCH v4 4/4] doc: board: nxp: Add Quickboot documentation Simona Toaca (OSS)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1777536451.git.simona.toaca@nxp.com \
--to=simona.toaca@oss.nxp.com \
--cc=alice.guo@nxp.com \
--cc=fedor.ross@ifm.com \
--cc=festevam@gmail.com \
--cc=ji.luo@nxp.com \
--cc=joao.goncalves@toradex.com \
--cc=marex@nabladev.com \
--cc=peng.fan@nxp.com \
--cc=ping.bai@nxp.com \
--cc=qijian.guo@nxp.com \
--cc=ravi@prevas.dk \
--cc=sbabic@nabladev.com \
--cc=simona.toaca@nxp.com \
--cc=u-boot@lists.denx.de \
--cc=uboot-imx@nxp.com \
--cc=viorel.suman@nxp.com \
--cc=ye.li@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox