diff options
| author | Tom Rini <[email protected]> | 2025-05-04 08:51:43 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-05-04 08:51:43 -0600 |
| commit | dcea465e5e299903b889f5f426eac6d6523cbf84 (patch) | |
| tree | 9ead94204004efef6be0c1b1942a6d194426db7c /doc | |
| parent | 0c8a89d252c3db3401ffa572ee2e4dfcb94e2c3b (diff) | |
| parent | fbe176c39c896e3dcec356bd3153074d411d487e (diff) | |
Merge tag 'u-boot-imx-master-20250503' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/26064
- Add i.MX95 support.
- Enable BOOTAUX on the i.MX8M Beacon boards.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/board/nxp/imx95_evk.rst | 114 | ||||
| -rw-r--r-- | doc/board/nxp/index.rst | 1 | ||||
| -rw-r--r-- | doc/imx/imx95_container.txt | 136 |
3 files changed, 251 insertions, 0 deletions
diff --git a/doc/board/nxp/imx95_evk.rst b/doc/board/nxp/imx95_evk.rst new file mode 100644 index 00000000000..9121f7561ab --- /dev/null +++ b/doc/board/nxp/imx95_evk.rst @@ -0,0 +1,114 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +imx95_evk +======================= + +U-Boot for the NXP i.MX95 19x19 EVK board + +Quick Start +----------- + +- Get ahab-container.img +- Get DDR PHY Firmware Images +- Get and Build OEI Images +- Get and Build System Manager Image +- Get and Build the ARM Trusted Firmware +- Build the Bootloader Image +- Boot + +Get ahab-container.img +-------------------------------------- + +Note: srctree is U-Boot source directory + +.. code-block:: bash + + $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-1.3.0-17945fc.bin + $ sh firmware-ele-imx-1.3.0-17945fc.bin --auto-accept + $ cp firmware-ele-imx-1.3.0-17945fc/mx95a0-ahab-container.img $(srctree) + +Get DDR PHY Firmware Images +-------------------------------------- + +Note: srctree is U-Boot source directory + +.. code-block:: bash + + $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.26-d4c33ab.bin + $ sh firmware-imx-8.26-d4c33ab.bin --auto-accept + $ cp firmware-imx-8.26-d4c33ab/firmware/ddr/synopsys/lpddr5*v202311.bin $(srctree) + +Get and Build OEI Images +-------------------------------------- + +Note: srctree is U-Boot source directory +Get OEI from: https://github.com/nxp-imx/imx-oei +branch: master + +.. code-block:: bash + + $ sudo apt -y install make gcc g++-multilib srecord + $ wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz + $ tar xvf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz + $ export TOOLS=$PWD + $ git clone -b master https://github.com/nxp-imx/imx-oei.git + $ cd imx-oei + $ make board=mx95lp5 oei=ddr DEBUG=1 + $ cp build/mx95lp5/ddr/oei-m33-ddr.bin $(srctree) + + $ make board=mx95lp5 oei=tcm DEBUG=1 + $ cp build/mx95lp5/tcm/oei-m33-tcm.bin $(srctree) + +Get and Build System Manager Image +-------------------------------------- + +Note: srctree is U-Boot source directory +Get System Manager from: https://github.com/nxp-imx/imx-sm +branch: master + +.. code-block:: bash + + $ sudo apt -y install make gcc g++-multilib srecord + $ wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz + $ tar xvf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz + $ export TOOLS=$PWD + $ git clone -b master https://github.com/nxp-imx/imx-sm.git + $ cd imx-sm + $ make config=mx95evk all + $ cp build/mx95evk/m33_image.bin $(srctree) + +Get and Build the ARM Trusted Firmware +-------------------------------------- + +Note: srctree is U-Boot source directory +Get ATF from: https://github.com/nxp-imx/imx-atf/ +branch: lf_v2.10 + +.. code-block:: bash + + $ export CROSS_COMPILE=aarch64-poky-linux- + $ unset LDFLAGS + $ git clone -b lf_v2.10 https://github.com/nxp-imx/imx-atf.git + $ cd imx-atf + $ make PLAT=imx95 bl31 + $ cp build/imx95/release/bl31.bin $(srctree) + +Build the Bootloader Image +-------------------------- + +.. code-block:: bash + + $ export CROSS_COMPILE=aarch64-poky-linux- + $ make imx95_19x19_evk_defconfig + $ make + +Copy imx-boot-imx95.bin to the MicroSD card: + +.. code-block:: bash + + $ sudo dd if=flash.bin of=/dev/sd[x] bs=1k seek=32 conv=fsync + +Boot +---- + +Set i.MX95 boot device to MicroSD card diff --git a/doc/board/nxp/index.rst b/doc/board/nxp/index.rst index 8ca4b561986..e7ec725cc04 100644 --- a/doc/board/nxp/index.rst +++ b/doc/board/nxp/index.rst @@ -15,6 +15,7 @@ NXP Semiconductors imx91_11x11_evk imx93_9x9_qsb imx93_11x11_evk + imx95_evk imxrt1020-evk imxrt1050-evk imxrt1170-evk diff --git a/doc/imx/imx95_container.txt b/doc/imx/imx95_container.txt new file mode 100644 index 00000000000..05f223d962a --- /dev/null +++ b/doc/imx/imx95_container.txt @@ -0,0 +1,136 @@ +i.MX95 Image Container Format +----------------------------- + +The image container set consists of some image containers, and image container +contains boot images. Each image container has its own container header which is +defined in Figure 1. All container headers are placed together in a continuous +8KB space at the beginning of the image container set - image container set header. + +ROM code addresses image containers in image container set one by one based on +their headers’ order in image container set header. + +If ELE container exists, its container header must be the 1st one in the image +container set header. + +If V2X container exists, its container header must be the 2nd one in the image +container set header. V2X must be combined with ELE container. + +The information of boot images are recorded in image container header. System +ROM code needs to retrieve the information from the image container header, like +the offset on boot source, the target address in RAM, the length of boot image. +The order of ROM code handling these boot images is based on the order of each +boot image information present in image container header. + +Figure 1: +------------------- +--------------+--------------+--------------+--------------+ + ^ |Tag |Length |Length |Version | + | +--------------+--------------+--------------+--------------+ + | | Flags | + | +--------------+--------------+--------------+--------------+ + | |# of Images |Fuse version |SW version | +Image | +--------------+--------------+--------------+--------------+ +Container | |Reserved |Signature Block Offset | +Header | ------- +--------------+--------------+--------------+--------------+ + | ^ |Image0: Offset, Size, LoadAddr, EntryPoint, Flags, Hash, IV| + | | +--------------+--------------+--------------+--------------+ + | Image | |Image1: Offset, Size, LoadAddr, EntryPoint, Flags, Hash, IV| + | Array | +--------------+--------------+--------------+--------------+ + | | | ... | + | | +--------------+--------------+--------------+--------------+ + v v |ImageN: Offset, Size, LoadAddr, EntryPoint, Flags, Hash, IV| +------------------- +--------------+--------------+--------------+--------------+ + | ... | + ----------- +--------------+--------------+--------------+--------------+ <-- SignOffset + ^ |Tag |Length |Length |Version | + | +--------------+--------------+--------------+--------------+ + | |SRK table offset |Certificate Offset | + | +--------------+--------------+--------------+--------------+ + | |Blob Offset |Signature Offset | + | +--------------+--------------+--------------+--------------+ + Signature | | SRK Table | + Block | +--------------+--------------+--------------+--------------+ + | | Signature | + | +--------------+--------------+--------------+--------------+ + | | Certificate (optional) | + | +--------------+--------------+--------------+--------------+ + v | Blob (optional) | + ----------- +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ <-- Image0Offset + | Image0 | + +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ <-- ImageNOffset + | ImageN | + +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ + +i.MX95 Low Power Boot Image Sets Layout +--------------------------------------- + + Image container sets are handled by M33 ROM. + + --------------- +--------------+--------------+--------------+--------------+ + ^ | 1st Container Header | + | +--------------+--------------+--------------+--------------+ + ELE + | | Padding for 1KB alignment | + OEM | +--------------+--------------+--------------+--------------+ + Container | | 2nd Container Header | + Set | +--------------+--------------+--------------+--------------+ + Header | | Padding for 1KB alignment | + | +--------------+--------------+--------------+--------------+ + | | 3rd Container Header | + | +--------------+--------------+--------------+--------------+ + v | Padding for 1KB alignment | + --------------- +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ + | mx95a0-ahab-container.img | + +--------------+--------------+--------------+--------------+ + | ... | +------------------- +--------------+--------------+--------------+--------------+ + ^ | oei-m33-ddr.bin | + | +--------------+--------------+--------------+--------------+ + | | ddrfw-header.bin | + | +--------------+--------------+--------------+--------------+ + | | lpddr5_imem_v202311.bin | + | +--------------+--------------+--------------+--------------+ +m33-oei-ddrfw.bin | | lpddr5_dmem_v202311.bin | + | +--------------+--------------+--------------+--------------+ + | | ddrfw-qb-header.bin | + | +--------------+--------------+--------------+--------------+ + | | lpddr5_imem_qb_v202311.bin | + | +--------------+--------------+--------------+--------------+ + v | lpddr5_dmem_qb_v202311.bin | +------------------- +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ + | oei-m33-tcm.bin | + +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ + | m33_image.bin | + +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ + | u-boot-spl.bin | + +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ + + --------------- +--------------+--------------+--------------+--------------+ + u-boot-atf ^ | 1st Container Header | + Container | +--------------+--------------+--------------+--------------+ + Header v | Padding for 1KB alignment | + --------------- +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ + | bl31.bin | + +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ + | u-boot.bin | + +--------------+--------------+--------------+--------------+ + | ... | + +--------------+--------------+--------------+--------------+ |
