Description
===========

The QorIQ® LS1043A processor is NXP's first quad-core, 64-bit Arm®-based
processor for embedded networking. The LS1023A (two core version) and the
LS1043A (four core version) deliver greater than 10 Gbps of performance
in a flexible I/O package supporting fanless designs. This SoC is a
purpose-built solution for small-form-factor networking and industrial
applications with BOM optimizations for economic low layer PCB, lower cost
power supply and single clock design. The new 0.9V versions of the LS1043A
and LS1023A deliver addition power savings for applications such as Wireless
LAN and to Power over Ethernet systems.

LS1043ARDB Specification:
-------------------------
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

More information are listed in `ls1043`_.

Boot Sequence
=============


Bootrom --> TF-A BL1 --> TF-A BL2 --> TF-A BL1 --> TF-A BL31
--> BL32(Tee OS) --> TF-A BL31 --> BL33(u-boot) --> Linux kernel


How to build
============

Build Procedure
---------------

-  Prepare AARCH64 toolchain.

-  Build u-boot and OPTee firstly, and get binary images: u-boot.bin and tee.bin

-  Build TF-A for Nor boot

   Build bl1:

   .. code:: shell

       CROSS_COMPILE=aarch64-linux-gnu- make PLAT=ls1043 bl1

   Build fip:

   .. code:: shell

       CROSS_COMPILE=aarch64-linux-gnu- make PLAT=ls1043 fip \
       BL33=u-boot.bin NEED_BL32=yes BL32=tee.bin SPD=opteed

Deploy TF-A Images
-----------------

-  Deploy TF-A images on Nor flash Alt Bank.

   .. code:: shell

       => tftp 82000000  bl1.bin
       => pro off all;era 64100000 +$filesize;cp.b 82000000 64100000 $filesize

       => tftp 82000000  fip.bin
       => pro off all;era 64120000 +$filesize;cp.b 82000000 64120000 $filesize

   Then change to Alt bank and boot up TF-A:

   .. code:: shell

       => cpld reset altbank


.. _ls1043: https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/qoriq-layerscape-arm-processors/qoriq-layerscape-1043a-and-1023a-multicore-communications-processors:LS1043A?lang_cd=en
