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