blob: 9121f7561abc110a1594a657caa53cbe5e8431d0 [file] [log] [blame]
Ye Lif3c8abb2025-04-28 18:37:43 +08001.. SPDX-License-Identifier: GPL-2.0+
2
3imx95_evk
4=======================
5
6U-Boot for the NXP i.MX95 19x19 EVK board
7
8Quick Start
9-----------
10
11- Get ahab-container.img
12- Get DDR PHY Firmware Images
13- Get and Build OEI Images
14- Get and Build System Manager Image
15- Get and Build the ARM Trusted Firmware
16- Build the Bootloader Image
17- Boot
18
19Get ahab-container.img
20--------------------------------------
21
22Note: srctree is U-Boot source directory
23
24.. code-block:: bash
25
26 $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-1.3.0-17945fc.bin
27 $ sh firmware-ele-imx-1.3.0-17945fc.bin --auto-accept
28 $ cp firmware-ele-imx-1.3.0-17945fc/mx95a0-ahab-container.img $(srctree)
29
30Get DDR PHY Firmware Images
31--------------------------------------
32
33Note: srctree is U-Boot source directory
34
35.. code-block:: bash
36
37 $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.26-d4c33ab.bin
38 $ sh firmware-imx-8.26-d4c33ab.bin --auto-accept
39 $ cp firmware-imx-8.26-d4c33ab/firmware/ddr/synopsys/lpddr5*v202311.bin $(srctree)
40
41Get and Build OEI Images
42--------------------------------------
43
44Note: srctree is U-Boot source directory
45Get OEI from: https://github.com/nxp-imx/imx-oei
46branch: master
47
48.. code-block:: bash
49
50 $ sudo apt -y install make gcc g++-multilib srecord
51 $ 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
52 $ tar xvf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
53 $ export TOOLS=$PWD
54 $ git clone -b master https://github.com/nxp-imx/imx-oei.git
55 $ cd imx-oei
56 $ make board=mx95lp5 oei=ddr DEBUG=1
57 $ cp build/mx95lp5/ddr/oei-m33-ddr.bin $(srctree)
58
59 $ make board=mx95lp5 oei=tcm DEBUG=1
60 $ cp build/mx95lp5/tcm/oei-m33-tcm.bin $(srctree)
61
62Get and Build System Manager Image
63--------------------------------------
64
65Note: srctree is U-Boot source directory
66Get System Manager from: https://github.com/nxp-imx/imx-sm
67branch: master
68
69.. code-block:: bash
70
71 $ sudo apt -y install make gcc g++-multilib srecord
72 $ 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
73 $ tar xvf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
74 $ export TOOLS=$PWD
75 $ git clone -b master https://github.com/nxp-imx/imx-sm.git
76 $ cd imx-sm
77 $ make config=mx95evk all
78 $ cp build/mx95evk/m33_image.bin $(srctree)
79
80Get and Build the ARM Trusted Firmware
81--------------------------------------
82
83Note: srctree is U-Boot source directory
84Get ATF from: https://github.com/nxp-imx/imx-atf/
85branch: lf_v2.10
86
87.. code-block:: bash
88
89 $ export CROSS_COMPILE=aarch64-poky-linux-
90 $ unset LDFLAGS
91 $ git clone -b lf_v2.10 https://github.com/nxp-imx/imx-atf.git
92 $ cd imx-atf
93 $ make PLAT=imx95 bl31
94 $ cp build/imx95/release/bl31.bin $(srctree)
95
96Build the Bootloader Image
97--------------------------
98
99.. code-block:: bash
100
101 $ export CROSS_COMPILE=aarch64-poky-linux-
102 $ make imx95_19x19_evk_defconfig
103 $ make
104
105Copy imx-boot-imx95.bin to the MicroSD card:
106
107.. code-block:: bash
108
109 $ sudo dd if=flash.bin of=/dev/sd[x] bs=1k seek=32 conv=fsync
110
111Boot
112----
113
114Set i.MX95 boot device to MicroSD card