xref: /arm-trusted-firmware/docs/plat/nxp/nxp-layerscape.rst (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700SchasingluluNXP SoCs - Overview
2*91f16700Schasinglulu=====================
3*91f16700Schasinglulu.. section-numbering::
4*91f16700Schasinglulu    :suffix: .
5*91f16700Schasinglulu
6*91f16700SchasingluluThe QorIQ family of ARM based SoCs that are supported on TF-A are:
7*91f16700Schasinglulu
8*91f16700Schasinglulu1. LX2160A
9*91f16700Schasinglulu
10*91f16700Schasinglulu- SoC Overview:
11*91f16700Schasinglulu
12*91f16700SchasingluluThe LX2160A multicore processor, the highest-performance member of the
13*91f16700SchasingluluLayerscape family, combines FinFET process technology's low power and
14*91f16700Schasinglulusixteen Arm® Cortex®-A72 cores with datapath acceleration optimized for
15*91f16700SchasingluluL2/3 packet processing, together with security offload, robust traffic
16*91f16700Schasinglulumanagement and quality of service.
17*91f16700Schasinglulu
18*91f16700SchasingluluDetails about LX2160A can be found at `lx2160a`_.
19*91f16700Schasinglulu
20*91f16700Schasinglulu- LX2160ARDB Board:
21*91f16700Schasinglulu
22*91f16700SchasingluluThe LX2160A reference design board provides a comprehensive platform
23*91f16700Schasingluluthat enables design and evaluation of the LX2160A or LX2162A processors. It
24*91f16700Schasinglulucomes preloaded with a board support package (BSP) based on a standard Linux
25*91f16700Schasinglulukernel.
26*91f16700Schasinglulu
27*91f16700SchasingluluBoard details can be fetched from the link: `lx2160ardb`_.
28*91f16700Schasinglulu
29*91f16700Schasinglulu2. LS1028A
30*91f16700Schasinglulu
31*91f16700Schasinglulu- SoC Overview:
32*91f16700Schasinglulu
33*91f16700SchasingluluThe Layerscape LS1028A applications processor for industrial and
34*91f16700Schasingluluautomotive includes a time-sensitive networking (TSN) -enabled Ethernet
35*91f16700Schasingluluswitch and Ethernet controllers to support converged IT and OT networks.
36*91f16700SchasingluluTwo powerful 64-bit Arm®v8 cores support real-time processing for
37*91f16700Schasingluluindustrial control and virtual machines for edge computing in the IoT.
38*91f16700SchasingluluThe integrated GPU and LCD controller enable Human-Machine Interface
39*91f16700Schasinglulu(HMI) systems with next-generation interfaces.
40*91f16700Schasinglulu
41*91f16700SchasingluluDetails about LS1028A can be found at `ls1028a`_.
42*91f16700Schasinglulu
43*91f16700Schasinglulu- LS1028ARDB Board:
44*91f16700Schasinglulu
45*91f16700SchasingluluThe LS1028A reference design board (RDB) is a computing, evaluation,
46*91f16700Schasingluluand development platform that supports industrial IoT applications, human
47*91f16700Schasinglulumachine interface solutions, and industrial networking.
48*91f16700Schasinglulu
49*91f16700SchasingluluDetails about LS1028A RDB board can be found at `ls1028ardb`_.
50*91f16700Schasinglulu
51*91f16700Schasinglulu3. LS1043A
52*91f16700Schasinglulu
53*91f16700Schasinglulu- SoC Overview:
54*91f16700Schasinglulu
55*91f16700SchasingluluThe Layerscape LS1043A processor is NXP's first quad-core, 64-bit Arm®-based
56*91f16700Schasingluluprocessor for embedded networking. The LS1023A (two core version) and the
57*91f16700SchasingluluLS1043A (four core version) deliver greater than 10 Gbps of performance
58*91f16700Schasingluluin a flexible I/O package supporting fanless designs. This SoC is a
59*91f16700Schasinglulupurpose-built solution for small-form-factor networking and industrial
60*91f16700Schasingluluapplications with BOM optimizations for economic low layer PCB, lower cost
61*91f16700Schasinglulupower supply and single clock design. The new 0.9V versions of the LS1043A
62*91f16700Schasingluluand LS1023A deliver addition power savings for applications such as Wireless
63*91f16700SchasingluluLAN and to Power over Ethernet systems.
64*91f16700Schasinglulu
65*91f16700SchasingluluDetails about LS1043A can be found at `ls1043a`_.
66*91f16700Schasinglulu
67*91f16700Schasinglulu- LS1043ARDB Board:
68*91f16700Schasinglulu
69*91f16700SchasingluluThe LS1043A reference design board (RDB) is a computing, evaluation, and
70*91f16700Schasingluludevelopment platform that supports the Layerscape LS1043A architecture
71*91f16700Schasingluluprocessor. The LS1043A-RDB can help shorten your time to market by providing
72*91f16700Schasingluluthe following features:
73*91f16700Schasinglulu
74*91f16700SchasingluluMemory subsystem:
75*91f16700Schasinglulu	* 2GByte DDR4 SDRAM (32bit bus)
76*91f16700Schasinglulu	* 128 Mbyte NOR flash single-chip memory
77*91f16700Schasinglulu	* 512 Mbyte NAND flash
78*91f16700Schasinglulu	* 16 Mbyte high-speed SPI flash
79*91f16700Schasinglulu	* SD connector to interface with the SD memory card
80*91f16700Schasinglulu
81*91f16700SchasingluluEthernet:
82*91f16700Schasinglulu	* XFI 10G port
83*91f16700Schasinglulu	* QSGMII with 4x 1G ports
84*91f16700Schasinglulu	* Two RGMII ports
85*91f16700Schasinglulu
86*91f16700SchasingluluPCIe:
87*91f16700Schasinglulu	* PCIe2 (Lanes C) to mini-PCIe slot
88*91f16700Schasinglulu	* PCIe3 (Lanes D) to PCIe slot
89*91f16700Schasinglulu
90*91f16700SchasingluluUSB 3.0: two super speed USB 3.0 type A ports
91*91f16700Schasinglulu
92*91f16700SchasingluluUART: supports two UARTs up to 115200 bps for console
93*91f16700Schasinglulu
94*91f16700SchasingluluDetails about LS1043A RDB board can be found at `ls1043ardb`_.
95*91f16700Schasinglulu
96*91f16700Schasinglulu4. LS1046A
97*91f16700Schasinglulu
98*91f16700Schasinglulu- SoC Overview:
99*91f16700Schasinglulu
100*91f16700SchasingluluThe LS1046A is a cost-effective, power-efficient, and highly integrated
101*91f16700Schasinglulusystem-on-chip (SoC) design that extends the reach of the NXP value-performance
102*91f16700Schasinglululine of QorIQ communications processors. Featuring power-efficient 64-bit
103*91f16700SchasingluluArm Cortex-A72 cores with ECC-protected L1 and L2 cache memories for high
104*91f16700Schasinglulureliability, running up to 1.8 GHz.
105*91f16700Schasinglulu
106*91f16700SchasingluluDetails about LS1046A can be found at `ls1046a`_.
107*91f16700Schasinglulu
108*91f16700Schasinglulu- LS1046ARDB Board:
109*91f16700Schasinglulu
110*91f16700SchasingluluThe LS1046A reference design board (RDB) is a high-performance computing,
111*91f16700Schasingluluevaluation, and development platform that supports the Layerscape LS1046A
112*91f16700Schasingluluarchitecture processor. The LS1046ARDB board supports the Layerscape LS1046A
113*91f16700Schasingluluprocessor and is optimized to support the DDR4 memory and a full complement
114*91f16700Schasingluluof high-speed SerDes ports.
115*91f16700Schasinglulu
116*91f16700SchasingluluDetails about LS1046A RDB board can be found at `ls1046ardb`_.
117*91f16700Schasinglulu
118*91f16700Schasinglulu- LS1046AFRWY Board:
119*91f16700Schasinglulu
120*91f16700SchasingluluThe LS1046A Freeway board (FRWY) is a high-performance computing, evaluation,
121*91f16700Schasingluluand development platform that supports the LS1046A architecture processor
122*91f16700Schasinglulucapable of support more than 32,000 CoreMark performance. The FRWY-LS1046A
123*91f16700Schasingluluboard supports the LS1046A processor, onboard DDR4 memory, multiple Gigabit
124*91f16700SchasingluluEthernet, USB3.0 and M2_Type_E interfaces for Wi-Fi, FRWY-LS1046A-AC includes
125*91f16700Schasingluluthe Wi-Fi card.
126*91f16700Schasinglulu
127*91f16700SchasingluluDetails about LS1046A FRWY board can be found at `ls1046afrwy`_.
128*91f16700Schasinglulu
129*91f16700Schasinglulu5. LS1088A
130*91f16700Schasinglulu
131*91f16700Schasinglulu- SoC Overview:
132*91f16700Schasinglulu
133*91f16700SchasingluluThe LS1088A family of multicore communications processors combines up to and eight
134*91f16700SchasingluluArm Cortex-A53 cores with the advanced, high-performance data path and network
135*91f16700Schasingluluperipheral interfaces required for wireless access points, networking infrastructure,
136*91f16700Schasingluluintelligent edge access, including virtual customer premise equipment (vCPE) and
137*91f16700Schasingluluhigh-performance industrial applications.
138*91f16700Schasinglulu
139*91f16700SchasingluluDetails about LS1088A can be found at `ls1088a`_.
140*91f16700Schasinglulu
141*91f16700Schasinglulu- LS1088ARDB Board:
142*91f16700Schasinglulu
143*91f16700SchasingluluThe LS1088A reference design board provides a comprehensive platform that
144*91f16700Schasingluluenables design and evaluation of the product (LS1088A processor). This RDB
145*91f16700Schasinglulucomes pre-loaded with a board support package (BSP) based on a standard
146*91f16700SchasingluluLinux kernel.
147*91f16700Schasinglulu
148*91f16700SchasingluluDetails about LS1088A RDB board can be found at `ls1088ardb`_.
149*91f16700Schasinglulu
150*91f16700SchasingluluTable of supported boot-modes by each platform & platform that needs FIP-DDR:
151*91f16700Schasinglulu-----------------------------------------------------------------------------
152*91f16700Schasinglulu
153*91f16700Schasinglulu+---------------------+---------------------------------------------------------------------+-----------------+
154*91f16700Schasinglulu|                     |                            BOOT_MODE                                |                 |
155*91f16700Schasinglulu|       PLAT          +-------+--------+-------+-------+-------+-------------+--------------+ fip_ddr_needed  |
156*91f16700Schasinglulu|                     |  sd   |  qspi  |  nor  | nand  | emmc  | flexspi_nor | flexspi_nand |                 |
157*91f16700Schasinglulu+=====================+=======+========+=======+=======+=======+=============+==============+=================+
158*91f16700Schasinglulu|     lx2160ardb      |  yes  |        |       |       |  yes  |   yes       |              |       yes       |
159*91f16700Schasinglulu+---------------------+-------+--------+-------+-------+-------+-------------+--------------+-----------------+
160*91f16700Schasinglulu|     ls1028ardb      |  yes  |        |       |       |  yes  |   yes       |              |       no        |
161*91f16700Schasinglulu+---------------------+-------+--------+-------+-------+-------+-------------+--------------+-----------------+
162*91f16700Schasinglulu|     ls1043ardb      |  yes  |        |  yes  |  yes  |       |             |              |       no        |
163*91f16700Schasinglulu+---------------------+-------+--------+-------+-------+-------+-------------+--------------+-----------------+
164*91f16700Schasinglulu|     ls1046ardb      |  yes  |  yes   |       |       |  yes  |             |              |       no        |
165*91f16700Schasinglulu+---------------------+-------+--------+-------+-------+-------+-------------+--------------+-----------------+
166*91f16700Schasinglulu|     ls1046afrwy     |  yes  |  yes   |       |       |       |             |              |       no        |
167*91f16700Schasinglulu+---------------------+-------+--------+-------+-------+-------+-------------+--------------+-----------------+
168*91f16700Schasinglulu|     ls1088ardb      |  yes  |  yes   |       |       |       |             |              |       no        |
169*91f16700Schasinglulu+---------------------+-------+--------+-------+-------+-------+-------------+--------------+-----------------+
170*91f16700Schasinglulu
171*91f16700Schasinglulu
172*91f16700SchasingluluBoot Sequence
173*91f16700Schasinglulu-------------
174*91f16700Schasinglulu::
175*91f16700Schasinglulu
176*91f16700Schasinglulu+                           Secure World        |     Normal World
177*91f16700Schasinglulu+ EL0                                           |
178*91f16700Schasinglulu+                                               |
179*91f16700Schasinglulu+ EL1                           BL32(Tee OS)    |     kernel
180*91f16700Schasinglulu+                                ^ |            |       ^
181*91f16700Schasinglulu+                                | |            |       |
182*91f16700Schasinglulu+ EL2                            | |            |     BL33(u-boot)
183*91f16700Schasinglulu+                                | |            |      ^
184*91f16700Schasinglulu+                                | v            |     /
185*91f16700Schasinglulu+ EL3        BootROM --> BL2 --> BL31 ---------------/
186*91f16700Schasinglulu+
187*91f16700Schasinglulu
188*91f16700SchasingluluBoot Sequence with FIP-DDR
189*91f16700Schasinglulu--------------------------
190*91f16700Schasinglulu::
191*91f16700Schasinglulu
192*91f16700Schasinglulu+                           Secure World        |     Normal World
193*91f16700Schasinglulu+ EL0                                           |
194*91f16700Schasinglulu+                                               |
195*91f16700Schasinglulu+ EL1               fip-ddr     BL32(Tee OS)    |     kernel
196*91f16700Schasinglulu+                     ^ |         ^ |           |       ^
197*91f16700Schasinglulu+                     | |         | |           |       |
198*91f16700Schasinglulu+ EL2                 | |         | |           |     BL33(u-boot)
199*91f16700Schasinglulu+                     | |         | |           |      ^
200*91f16700Schasinglulu+                     | v         | v           |     /
201*91f16700Schasinglulu+ EL3     BootROM --> BL2 -----> BL31 ---------------/
202*91f16700Schasinglulu+
203*91f16700Schasinglulu
204*91f16700SchasingluluDDR Memory Layout
205*91f16700Schasinglulu--------------------------
206*91f16700Schasinglulu
207*91f16700SchasingluluNXP Platforms divide DRAM into banks:
208*91f16700Schasinglulu
209*91f16700Schasinglulu- DRAM0 Bank:  Maximum size of this bank is fixed to 2GB, DRAM0 size is defined in platform_def.h if it is less than 2GB.
210*91f16700Schasinglulu
211*91f16700Schasinglulu- DRAM1 ~ DRAMn Bank:  Greater than 2GB belongs to DRAM1 and following banks, and size of DRAMn Bank varies for one platform to others.
212*91f16700Schasinglulu
213*91f16700SchasingluluThe following diagram is default DRAM0 memory layout in which secure memory is at top of DRAM0.
214*91f16700Schasinglulu
215*91f16700Schasinglulu::
216*91f16700Schasinglulu
217*91f16700Schasinglulu  high  +---------------------------------------------+
218*91f16700Schasinglulu        |                                             |
219*91f16700Schasinglulu        |   Secure EL1 Payload Shared Memory (2 MB)   |
220*91f16700Schasinglulu        |                                             |
221*91f16700Schasinglulu        +---------------------------------------------+
222*91f16700Schasinglulu        |                                             |
223*91f16700Schasinglulu        |            Secure Memory (64 MB)            |
224*91f16700Schasinglulu        |                                             |
225*91f16700Schasinglulu        +---------------------------------------------+
226*91f16700Schasinglulu        |                                             |
227*91f16700Schasinglulu        |             Non Secure Memory               |
228*91f16700Schasinglulu        |                                             |
229*91f16700Schasinglulu  low   +---------------------------------------------+
230*91f16700Schasinglulu
231*91f16700SchasingluluHow to build
232*91f16700Schasinglulu=============
233*91f16700Schasinglulu
234*91f16700SchasingluluCode Locations
235*91f16700Schasinglulu--------------
236*91f16700Schasinglulu
237*91f16700Schasinglulu-  OP-TEE:
238*91f16700Schasinglulu   `link <https://source.codeaurora.org/external/qoriq/qoriq-components/optee_os>`__
239*91f16700Schasinglulu
240*91f16700Schasinglulu-  U-Boot:
241*91f16700Schasinglulu   `link <https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot>`__
242*91f16700Schasinglulu
243*91f16700Schasinglulu-  RCW:
244*91f16700Schasinglulu   `link <https://source.codeaurora.org/external/qoriq/qoriq-components/rcw>`__
245*91f16700Schasinglulu
246*91f16700Schasinglulu-  ddr-phy-binary: Required by platforms that need fip-ddr.
247*91f16700Schasinglulu   `link <https:://github.com/NXP/ddr-phy-binary>`__
248*91f16700Schasinglulu
249*91f16700Schasinglulu-  cst: Required for TBBR.
250*91f16700Schasinglulu   `link <https:://source.codeaurora.org/external/qoriq/qoriq-components/cst>`__
251*91f16700Schasinglulu
252*91f16700SchasingluluBuild Procedure
253*91f16700Schasinglulu---------------
254*91f16700Schasinglulu
255*91f16700Schasinglulu-  Fetch all the above repositories into local host.
256*91f16700Schasinglulu
257*91f16700Schasinglulu-  Prepare AARCH64 toolchain and set the environment variable "CROSS_COMPILE".
258*91f16700Schasinglulu
259*91f16700Schasinglulu   .. code:: shell
260*91f16700Schasinglulu
261*91f16700Schasinglulu       export CROSS_COMPILE=.../bin/aarch64-linux-gnu-
262*91f16700Schasinglulu
263*91f16700Schasinglulu-  Build RCW. Refer README from the respective cloned folder for more details.
264*91f16700Schasinglulu
265*91f16700Schasinglulu-  Build u-boot and OPTee firstly, and get binary images: u-boot.bin and tee.bin.
266*91f16700Schasinglulu   For u-boot you can use the <platform>_tfa_defconfig for build.
267*91f16700Schasinglulu
268*91f16700Schasinglulu-  Copy/clone the repo "ddr-phy-binary" to the tfa directory for platform needing ddr-fip.
269*91f16700Schasinglulu
270*91f16700Schasinglulu-  Below are the steps to build TF-A images for the supported platforms.
271*91f16700Schasinglulu
272*91f16700SchasingluluCompilation steps without BL32
273*91f16700Schasinglulu~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
274*91f16700Schasinglulu
275*91f16700SchasingluluBUILD BL2:
276*91f16700Schasinglulu
277*91f16700Schasinglulu-To compile
278*91f16700Schasinglulu   .. code:: shell
279*91f16700Schasinglulu
280*91f16700Schasinglulu       make PLAT=$PLAT \
281*91f16700Schasinglulu       BOOT_MODE=<platform_supported_boot_mode> \
282*91f16700Schasinglulu       RCW=$RCW_BIN \
283*91f16700Schasinglulu       pbl
284*91f16700Schasinglulu
285*91f16700SchasingluluBUILD FIP:
286*91f16700Schasinglulu
287*91f16700Schasinglulu   .. code:: shell
288*91f16700Schasinglulu
289*91f16700Schasinglulu       make PLAT=$PLAT \
290*91f16700Schasinglulu       BOOT_MODE=<platform_supported_boot_mode> \
291*91f16700Schasinglulu       RCW=$RCW_BIN \
292*91f16700Schasinglulu       BL33=$UBOOT_SECURE_BIN \
293*91f16700Schasinglulu       pbl \
294*91f16700Schasinglulu       fip
295*91f16700Schasinglulu
296*91f16700SchasingluluCompilation steps with BL32
297*91f16700Schasinglulu~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
298*91f16700Schasinglulu
299*91f16700SchasingluluBUILD BL2:
300*91f16700Schasinglulu
301*91f16700Schasinglulu-To compile
302*91f16700Schasinglulu   .. code:: shell
303*91f16700Schasinglulu
304*91f16700Schasinglulu       make PLAT=$PLAT \
305*91f16700Schasinglulu       BOOT_MODE=<platform_supported_boot_mode> \
306*91f16700Schasinglulu       RCW=$RCW_BIN \
307*91f16700Schasinglulu       BL32=$TEE_BIN SPD=opteed\
308*91f16700Schasinglulu       pbl
309*91f16700Schasinglulu
310*91f16700SchasingluluBUILD FIP:
311*91f16700Schasinglulu
312*91f16700Schasinglulu   .. code:: shell
313*91f16700Schasinglulu
314*91f16700Schasinglulu       make PLAT=$PLAT \
315*91f16700Schasinglulu       BOOT_MODE=<platform_supported_boot_mode> \
316*91f16700Schasinglulu       RCW=$RCW_BIN \
317*91f16700Schasinglulu       BL32=$TEE_BIN SPD=opteed\
318*91f16700Schasinglulu       BL33=$UBOOT_SECURE_BIN \
319*91f16700Schasinglulu       pbl \
320*91f16700Schasinglulu       fip
321*91f16700Schasinglulu
322*91f16700Schasinglulu
323*91f16700SchasingluluBUILD fip-ddr (Mandatory for certain platforms, refer table above):
324*91f16700Schasinglulu~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
325*91f16700Schasinglulu
326*91f16700Schasinglulu-To compile additional fip-ddr for selected platforms(Refer above table if the platform needs fip-ddr).
327*91f16700Schasinglulu   .. code:: shell
328*91f16700Schasinglulu
329*91f16700Schasinglulu	make PLAT=<platform_name> fip-ddr
330*91f16700Schasinglulu
331*91f16700Schasinglulu
332*91f16700SchasingluluDeploy ATF Images
333*91f16700Schasinglulu=================
334*91f16700Schasinglulu
335*91f16700SchasingluluNote: The size in the standard uboot commands for copy to nor, qspi, nand or sd
336*91f16700Schasinglulushould be modified based on the binary size of the image to be copied.
337*91f16700Schasinglulu
338*91f16700Schasinglulu-  Deploy ATF images on flexspi-Nor or QSPI flash Alt Bank from U-Boot prompt.
339*91f16700Schasinglulu
340*91f16700Schasinglulu   --  Commands to flash images for bl2_xxx.pbl and fip.bin
341*91f16700Schasinglulu
342*91f16700Schasinglulu   Notes: ls1028ardb has no flexspi-Nor Alt Bank, so use "sf probe 0:0" for current bank.
343*91f16700Schasinglulu
344*91f16700Schasinglulu   .. code:: shell
345*91f16700Schasinglulu
346*91f16700Schasinglulu        tftp 82000000  $path/bl2_xxx.pbl;
347*91f16700Schasinglulu
348*91f16700Schasinglulu        i2c mw 66 50 20;sf probe 0:1; sf erase 0 +$filesize; sf write 0x82000000 0x0 $filesize;
349*91f16700Schasinglulu
350*91f16700Schasinglulu        tftp 82000000  $path/fip.bin;
351*91f16700Schasinglulu        i2c mw 66 50 20;sf probe 0:1; sf erase 0x100000 +$filesize; sf write 0x82000000 0x100000 $filesize;
352*91f16700Schasinglulu
353*91f16700Schasinglulu   --  Next step is valid for platform where FIP-DDR is needed.
354*91f16700Schasinglulu
355*91f16700Schasinglulu   .. code:: shell
356*91f16700Schasinglulu
357*91f16700Schasinglulu        tftp 82000000  $path/ddr_fip.bin;
358*91f16700Schasinglulu        i2c mw 66 50 20;sf probe 0:1; sf erase 0x800000 +$filesize; sf write 0x82000000 0x800000 $filesize;
359*91f16700Schasinglulu
360*91f16700Schasinglulu   --  Then reset to alternate bank to boot up ATF.
361*91f16700Schasinglulu
362*91f16700Schasinglulu   Command for lx2160a, ls1088a and ls1028a platforms:
363*91f16700Schasinglulu
364*91f16700Schasinglulu   .. code:: shell
365*91f16700Schasinglulu
366*91f16700Schasinglulu        qixisreset altbank;
367*91f16700Schasinglulu
368*91f16700Schasinglulu   Command for ls1046a platforms:
369*91f16700Schasinglulu
370*91f16700Schasinglulu   .. code:: shell
371*91f16700Schasinglulu
372*91f16700Schasinglulu        cpld reset altbank;
373*91f16700Schasinglulu
374*91f16700Schasinglulu-  Deploy ATF images on SD/eMMC from U-Boot prompt.
375*91f16700Schasinglulu   -- file_size_in_block_sizeof_512 = (Size_of_bytes_tftp / 512)
376*91f16700Schasinglulu
377*91f16700Schasinglulu   .. code:: shell
378*91f16700Schasinglulu
379*91f16700Schasinglulu        mmc dev <idx>; (idx = 1 for eMMC; idx = 0 for SD)
380*91f16700Schasinglulu
381*91f16700Schasinglulu        tftp 82000000  $path/bl2_<sd>_or_<emmc>.pbl;
382*91f16700Schasinglulu        mmc write 82000000 8 <file_size_in_block_sizeof_512>;
383*91f16700Schasinglulu
384*91f16700Schasinglulu        tftp 82000000  $path/fip.bin;
385*91f16700Schasinglulu        mmc write 82000000 0x800 <file_size_in_block_sizeof_512>;
386*91f16700Schasinglulu
387*91f16700Schasinglulu    --  Next step is valid for platform that needs FIP-DDR.
388*91f16700Schasinglulu
389*91f16700Schasinglulu   .. code:: shell
390*91f16700Schasinglulu
391*91f16700Schasinglulu        tftp 82000000  $path/ddr_fip.bin;
392*91f16700Schasinglulu        mmc write 82000000 0x4000 <file_size_in_block_sizeof_512>;
393*91f16700Schasinglulu
394*91f16700Schasinglulu   --  Then reset to sd/emmc to boot up ATF from sd/emmc as boot-source.
395*91f16700Schasinglulu
396*91f16700Schasinglulu   Command for lx2160A, ls1088a and ls1028a platforms:
397*91f16700Schasinglulu
398*91f16700Schasinglulu   .. code:: shell
399*91f16700Schasinglulu
400*91f16700Schasinglulu        qixisreset <sd or emmc>;
401*91f16700Schasinglulu
402*91f16700Schasinglulu   Command for ls1043a and ls1046a platform:
403*91f16700Schasinglulu
404*91f16700Schasinglulu   .. code:: shell
405*91f16700Schasinglulu
406*91f16700Schasinglulu        cpld reset <sd or emmc>;
407*91f16700Schasinglulu
408*91f16700Schasinglulu-  Deploy ATF images on IFC nor flash from U-Boot prompt.
409*91f16700Schasinglulu
410*91f16700Schasinglulu   .. code:: shell
411*91f16700Schasinglulu
412*91f16700Schasinglulu        tftp 82000000  $path/bl2_nor.pbl;
413*91f16700Schasinglulu	protect off 64000000 +$filesize; erase 64000000 +$filesize; cp.b 82000000 64000000 $filesize;
414*91f16700Schasinglulu
415*91f16700Schasinglulu        tftp 82000000  $path/fip.bin;
416*91f16700Schasinglulu	protect off 64100000 +$filesize; erase 64100000 +$filesize; cp.b 82000000 64100000 $filesize;
417*91f16700Schasinglulu
418*91f16700Schasinglulu   --  Then reset to alternate bank to boot up ATF.
419*91f16700Schasinglulu
420*91f16700Schasinglulu   Command for ls1043a platform:
421*91f16700Schasinglulu
422*91f16700Schasinglulu   .. code:: shell
423*91f16700Schasinglulu
424*91f16700Schasinglulu        cpld reset altbank;
425*91f16700Schasinglulu
426*91f16700Schasinglulu-  Deploy ATF images on IFC nand flash from U-Boot prompt.
427*91f16700Schasinglulu
428*91f16700Schasinglulu   .. code:: shell
429*91f16700Schasinglulu
430*91f16700Schasinglulu        tftp 82000000  $path/bl2_nand.pbl;
431*91f16700Schasinglulu	nand erase 0x0 $filesize; nand write 82000000 0x0 $filesize;
432*91f16700Schasinglulu
433*91f16700Schasinglulu        tftp 82000000  $path/fip.bin;
434*91f16700Schasinglulu	nand erase 0x100000 $filesize;nand write 82000000 0x100000 $filesize;
435*91f16700Schasinglulu
436*91f16700Schasinglulu   --  Then reset to nand flash to boot up ATF.
437*91f16700Schasinglulu
438*91f16700Schasinglulu   Command for ls1043a platform:
439*91f16700Schasinglulu
440*91f16700Schasinglulu   .. code:: shell
441*91f16700Schasinglulu
442*91f16700Schasinglulu        cpld reset nand;
443*91f16700Schasinglulu
444*91f16700Schasinglulu
445*91f16700Schasinglulu
446*91f16700SchasingluluTrusted Board Boot:
447*91f16700Schasinglulu===================
448*91f16700Schasinglulu
449*91f16700SchasingluluFor TBBR, the binary name changes:
450*91f16700Schasinglulu
451*91f16700Schasinglulu+-------------+--------------------------+---------+-------------------+
452*91f16700Schasinglulu|  Boot Type  |           BL2            |   FIP   |      FIP-DDR      |
453*91f16700Schasinglulu+=============+==========================+=========+===================+
454*91f16700Schasinglulu| Normal Boot |  bl2_<boot_mode>.pbl     | fip.bin | ddr_fip.bin       |
455*91f16700Schasinglulu+-------------+--------------------------+---------+-------------------+
456*91f16700Schasinglulu| TBBR Boot   |  bl2_<boot_mode>_sec.pbl | fip.bin | ddr_fip_sec.bin   |
457*91f16700Schasinglulu+-------------+--------------------------+---------+-------------------+
458*91f16700Schasinglulu
459*91f16700SchasingluluRefer `nxp-ls-tbbr.rst`_ for detailed user steps.
460*91f16700Schasinglulu
461*91f16700Schasinglulu
462*91f16700Schasinglulu.. _lx2160a: https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/layerscape-processors/layerscape-lx2160a-lx2120a-lx2080a-processors:LX2160A
463*91f16700Schasinglulu.. _lx2160ardb: https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/layerscape-communication-process/layerscape-lx2160a-multicore-communications-processor:LX2160A
464*91f16700Schasinglulu.. _ls1028a: https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/layerscape-processors/layerscape-1028a-applications-processor:LS1028A
465*91f16700Schasinglulu.. _ls1028ardb: https://www.nxp.com/design/qoriq-developer-resources/layerscape-ls1028a-reference-design-board:LS1028ARDB
466*91f16700Schasinglulu.. _ls1043a: https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/layerscape-processors/layerscape-1043a-and-1023a-processors:LS1043A
467*91f16700Schasinglulu.. _ls1043ardb: https://www.nxp.com/design/qoriq-developer-resources/layerscape-ls1043a-reference-design-board:LS1043A-RDB
468*91f16700Schasinglulu.. _ls1046a: https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/layerscape-processors/layerscape-1046a-and-1026a-processors:LS1046A
469*91f16700Schasinglulu.. _ls1046ardb: https://www.nxp.com/design/qoriq-developer-resources/layerscape-ls1046a-reference-design-board:LS1046A-RDB
470*91f16700Schasinglulu.. _ls1046afrwy: https://www.nxp.com/design/qoriq-developer-resources/ls1046a-freeway-board:FRWY-LS1046A
471*91f16700Schasinglulu.. _ls1088a: https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/layerscape-processors/layerscape-1088a-and-1048a-processor:LS1088A
472*91f16700Schasinglulu.. _ls1088ardb: https://www.nxp.com/design/qoriq-developer-resources/layerscape-ls1088a-reference-design-board:LS1088A-RDB
473*91f16700Schasinglulu.. _nxp-ls-tbbr.rst: ./nxp-ls-tbbr.rst
474