7.29.1.1.NXP SoCs - Overview

The QorIQ family of ARM based SoCs that are supported on TF-A are:

  1. LX2160A

  • SoC Overview:

The LX2160A multicore processor, the highest-performance member of theLayerscape family, combines FinFET process technology’s low power andsixteen Arm® Cortex®-A72 cores with datapath acceleration optimized forL2/3 packet processing, together with security offload, robust trafficmanagement and quality of service.

Details about LX2160A can be found atlx2160a.

  • LX2160ARDB Board:

The LX2160A reference design board provides a comprehensive platformthat enables design and evaluation of the LX2160A or LX2162A processors. Itcomes preloaded with a board support package (BSP) based on a standard Linuxkernel.

Board details can be fetched from the link:lx2160ardb.

  1. LS1028A

  • SoC Overview:

The Layerscape LS1028A applications processor for industrial andautomotive includes a time-sensitive networking (TSN) -enabled Ethernetswitch and Ethernet controllers to support converged IT and OT networks.Two powerful 64-bit Arm®v8 cores support real-time processing forindustrial control and virtual machines for edge computing in the IoT.The integrated GPU and LCD controller enable Human-Machine Interface(HMI) systems with next-generation interfaces.

Details about LS1028A can be found atls1028a.

  • LS1028ARDB Board:

The LS1028A reference design board (RDB) is a computing, evaluation,and development platform that supports industrial IoT applications, humanmachine interface solutions, and industrial networking.

Details about LS1028A RDB board can be found atls1028ardb.

  1. LS1043A

  • SoC Overview:

The Layerscape LS1043A processor is NXP’s first quad-core, 64-bit Arm®-basedprocessor for embedded networking. The LS1023A (two core version) and theLS1043A (four core version) deliver greater than 10 Gbps of performancein a flexible I/O package supporting fanless designs. This SoC is apurpose-built solution for small-form-factor networking and industrialapplications with BOM optimizations for economic low layer PCB, lower costpower supply and single clock design. The new 0.9V versions of the LS1043Aand LS1023A deliver addition power savings for applications such as WirelessLAN and to Power over Ethernet systems.

Details about LS1043A can be found atls1043a.

  • LS1043ARDB Board:

The LS1043A reference design board (RDB) is a computing, evaluation, anddevelopment platform that supports the Layerscape LS1043A architectureprocessor. The LS1043A-RDB can help shorten your time to market by providingthe following features:

Memory subsystem:
  • 2GByte DDR4 SDRAM (32bit bus)

  • 128 Mbyte NOR flash single-chip memory

  • 512 Mbyte NAND flash

  • 16 Mbyte high-speed SPI flash

  • SD connector to interface with the SD memory card

Ethernet:
  • XFI 10G port

  • QSGMII with 4x 1G ports

  • Two RGMII ports

PCIe:
  • PCIe2 (Lanes C) to mini-PCIe slot

  • PCIe3 (Lanes D) to PCIe slot

USB 3.0: two super speed USB 3.0 type A ports

UART: supports two UARTs up to 115200 bps for console

Details about LS1043A RDB board can be found atls1043ardb.

  1. LS1046A

  • SoC Overview:

The LS1046A is a cost-effective, power-efficient, and highly integratedsystem-on-chip (SoC) design that extends the reach of the NXP value-performanceline of QorIQ communications processors. Featuring power-efficient 64-bitArm Cortex-A72 cores with ECC-protected L1 and L2 cache memories for highreliability, running up to 1.8 GHz.

Details about LS1046A can be found atls1046a.

  • LS1046ARDB Board:

The LS1046A reference design board (RDB) is a high-performance computing,evaluation, and development platform that supports the Layerscape LS1046Aarchitecture processor. The LS1046ARDB board supports the Layerscape LS1046Aprocessor and is optimized to support the DDR4 memory and a full complementof high-speed SerDes ports.

Details about LS1046A RDB board can be found atls1046ardb.

  • LS1046AFRWY Board:

The LS1046A Freeway board (FRWY) is a high-performance computing, evaluation,and development platform that supports the LS1046A architecture processorcapable of support more than 32,000 CoreMark performance. The FRWY-LS1046Aboard supports the LS1046A processor, onboard DDR4 memory, multiple GigabitEthernet, USB3.0 and M2_Type_E interfaces for Wi-Fi, FRWY-LS1046A-AC includesthe Wi-Fi card.

Details about LS1046A FRWY board can be found atls1046afrwy.

  1. LS1088A

  • SoC Overview:

The LS1088A family of multicore communications processors combines up to and eightArm Cortex-A53 cores with the advanced, high-performance data path and networkperipheral interfaces required for wireless access points, networking infrastructure,intelligent edge access, including virtual customer premise equipment (vCPE) andhigh-performance industrial applications.

Details about LS1088A can be found atls1088a.

  • LS1088ARDB Board:

The LS1088A reference design board provides a comprehensive platform thatenables design and evaluation of the product (LS1088A processor). This RDBcomes pre-loaded with a board support package (BSP) based on a standardLinux kernel.

Details about LS1088A RDB board can be found atls1088ardb.

7.29.1.1.1.1.Table of supported boot-modes by each platform & platform that needs FIP-DDR:

PLAT

BOOT_MODE

fip_ddr_needed

sd

qspi

nor

nand

emmc

flexspi_nor

flexspi_nand

lx2160ardb

yes

yes

yes

yes

ls1028ardb

yes

yes

yes

no

ls1043ardb

yes

yes

yes

no

ls1046ardb

yes

yes

yes

no

ls1046afrwy

yes

yes

no

ls1088ardb

yes

yes

no

7.29.1.2.1.2.Boot Sequence

+SecureWorld|NormalWorld+EL0|+|+EL1BL32(TeeOS)|kernel+^||^+||||+EL2|||BL33(u-boot)+|||^+|v|/+EL3BootROM-->BL2-->BL31---------------/+

7.29.1.3.1.3.Boot Sequence with FIP-DDR

+SecureWorld|NormalWorld+EL0|+|+EL1fip-ddrBL32(TeeOS)|kernel+^|^||^+||||||+EL2|||||BL33(u-boot)+|||||^+|v|v|/+EL3BootROM-->BL2----->BL31---------------/+

7.29.1.4.1.4.DDR Memory Layout

NXP Platforms divide DRAM into banks:

  • 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.

  • DRAM1 ~ DRAMn Bank: Greater than 2GB belongs to DRAM1 and following banks, and size of DRAMn Bank varies for one platform to others.

The following diagram is default DRAM0 memory layout in which secure memory is at top of DRAM0.

high+---------------------------------------------+|||SecureEL1PayloadSharedMemory(2MB)|||+---------------------------------------------+|||SecureMemory(64MB)|||+---------------------------------------------+|||NonSecureMemory|||low+---------------------------------------------+

7.29.2.2.How to build

7.29.2.1.2.1.Code Locations

  • OP-TEE:link

  • U-Boot:link

  • RCW:link

  • ddr-phy-binary: Required by platforms that need fip-ddr.link

  • cst: Required for TBBR.link

7.29.2.2.2.2.Build Procedure

  • Fetch all the above repositories into local host.

  • Prepare AARCH64 toolchain and set the environment variable “CROSS_COMPILE”.

    exportCROSS_COMPILE=.../bin/aarch64-linux-gnu-
  • Build RCW. Refer README from the respective cloned folder for more details.

  • Build u-boot and OPTee firstly, and get binary images: u-boot.bin and tee.bin.For u-boot you can use the <platform>_tfa_defconfig for build.

  • Copy/clone the repo “ddr-phy-binary” to the tfa directory for platform needing ddr-fip.

  • Below are the steps to build TF-A images for the supported platforms.

7.29.2.2.1.2.2.1.Compilation steps without BL32

BUILD BL2:

-To compile
makePLAT=$PLAT\BOOT_MODE=<platform_supported_boot_mode>\RCW=$RCW_BIN\pbl

BUILD FIP:

makePLAT=$PLAT\BOOT_MODE=<platform_supported_boot_mode>\RCW=$RCW_BIN\BL33=$UBOOT_SECURE_BIN\pbl\fip

7.29.2.2.2.2.2.2.Compilation steps with BL32

BUILD BL2:

-To compile
makePLAT=$PLAT\BOOT_MODE=<platform_supported_boot_mode>\RCW=$RCW_BIN\BL32=$TEE_BINSPD=opteed\pbl

BUILD FIP:

makePLAT=$PLAT\BOOT_MODE=<platform_supported_boot_mode>\RCW=$RCW_BIN\BL32=$TEE_BINSPD=opteed\BL33=$UBOOT_SECURE_BIN\pbl\fip

7.29.2.2.3.2.2.3.BUILD fip-ddr (Mandatory for certain platforms, refer table above):

-To compile additional fip-ddr for selected platforms(Refer above table if the platform needs fip-ddr).
makePLAT=<platform_name>fip-ddr

7.29.3.3.Deploy ATF Images

Note: The size in the standard uboot commands for copy to nor, qspi, nand or sdshould be modified based on the binary size of the image to be copied.

  • Deploy ATF images on flexspi-Nor or QSPI flash Alt Bank from U-Boot prompt.

    – Commands to flash images for bl2_xxx.pbl and fip.bin

    Notes: ls1028ardb has no flexspi-Nor Alt Bank, so use “sf probe 0:0” for current bank.

    tftp82000000$path/bl2_xxx.pbl;i2cmw665020;sfprobe0:1;sferase0+$filesize;sfwrite0x820000000x0$filesize;tftp82000000$path/fip.bin;i2cmw665020;sfprobe0:1;sferase0x100000+$filesize;sfwrite0x820000000x100000$filesize;

    – Next step is valid for platform where FIP-DDR is needed.

    tftp82000000$path/ddr_fip.bin;i2cmw665020;sfprobe0:1;sferase0x800000+$filesize;sfwrite0x820000000x800000$filesize;

    – Then reset to alternate bank to boot up ATF.

    Command for lx2160a, ls1088a and ls1028a platforms:

    qixisresetaltbank;

    Command for ls1046a platforms:

    cpldresetaltbank;
  • Deploy ATF images on SD/eMMC from U-Boot prompt.– file_size_in_block_sizeof_512 = (Size_of_bytes_tftp / 512)

    mmcdev<idx>;(idx=1foreMMC;idx=0forSD)tftp82000000$path/bl2_<sd>_or_<emmc>.pbl;mmcwrite820000008<file_size_in_block_sizeof_512>;tftp82000000$path/fip.bin;mmcwrite820000000x800<file_size_in_block_sizeof_512>;--NextstepisvalidforplatformthatneedsFIP-DDR.
    tftp82000000$path/ddr_fip.bin;mmcwrite820000000x4000<file_size_in_block_sizeof_512>;

    – Then reset to sd/emmc to boot up ATF from sd/emmc as boot-source.

    Command for lx2160A, ls1088a and ls1028a platforms:

    qixisreset<sdoremmc>;

    Command for ls1043a and ls1046a platform:

    cpldreset<sdoremmc>;
  • Deploy ATF images on IFC nor flash from U-Boot prompt.

    tftp82000000$path/bl2_nor.pbl;protectoff64000000+$filesize;erase64000000+$filesize;cp.b8200000064000000$filesize;tftp82000000$path/fip.bin;protectoff64100000+$filesize;erase64100000+$filesize;cp.b8200000064100000$filesize;

    – Then reset to alternate bank to boot up ATF.

    Command for ls1043a platform:

    cpldresetaltbank;
  • Deploy ATF images on IFC nand flash from U-Boot prompt.

    tftp82000000$path/bl2_nand.pbl;nanderase0x0$filesize;nandwrite820000000x0$filesize;tftp82000000$path/fip.bin;nanderase0x100000$filesize;nandwrite820000000x100000$filesize;

    – Then reset to nand flash to boot up ATF.

    Command for ls1043a platform:

    cpldresetnand;

7.29.4.4.Trusted Board Boot:

For TBBR, the binary name changes:

Boot Type

BL2

FIP

FIP-DDR

Normal Boot

bl2_<boot_mode>.pbl

fip.bin

ddr_fip.bin

TBBR Boot

bl2_<boot_mode>_sec.pbl

fip.bin

ddr_fip_sec.bin

Refernxp-ls-tbbr.rst for detailed user steps.