From: Bhupesh Sharma bhupesh.sharma@nxp.com
This patchset adds the support for NXP/FSL's LS1043A RDB platform.
The LS1043A RDB platform houses the 4-A53 core LS1043A SoC from NXP/FSL. Details about the LS1043A SoC and RDB board can be seen here:
SoC: --- http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/ qoriq-arm-processors/qoriq-ls1043a-and-ls1023a-multicore-communications-processors:LS1043A?lang_cd=en
RDB board: --------- http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/ qoriq-arm-processors/qoriq-ls1043a-reference-design-board:LS1043A-RDB#pspFeatures
UEFI firmware boot-flow on the NXP/FSL ARMv8 SoCs is different from the usual ATF (which runs in EL3) and UEFI (which runs entirely in EL2 mode) flow:
NXP/FSL ARMv8 SoCs currently use a EL3 platform and run-time security firmware which is called PPA (Primary Protected Application).
This firmware is placed on the flash device and is loaded into DDR and executed via a UEFI DXE driver. PPA does the initial platform EL3 settings and then returns the control back to UEFI in EL2 exception level.
Later implementations of PPA will allow it to start by itself in the EL3 level and start UEFI in EL2 exception level.
This patchset is rebased against the OpenPlatformPkg git tree (master branch).
Sakar Arora (14): Platforms/NXP: Add intial support for LS1043A RDB Board Platforms/NXP: Add support for DDR Controller initialization Platforms/NXP: Add support for CPLD controller access Platforms/NXP: Add initial support for LS1043a SOC Library Chips/NXP: Add support for DUART library Platforms/NXP: Add support for initialization of peripherals on LS1043A Platforms/NXP: Add support for system reset library Chips/NXP: Add PrePi initialization module that runs from XIP source Chips/NXP: Add I2C operations library Chips/NXP: Add I2C master driver based on I2C library Chips/NXP: Add support for execution of PPA for EL3 initialization Chips/NXP: Add support for DS1307 RTC library Platforms/NXP: Add support for Watchdog driver (LS1043A) Platforms/NXP: Add the fdf, dsc and dec files for LS1043aRdbPkg build
Chips/Nxp/QoriqLs/I2c/I2cDxe.c | 156 ++++ Chips/Nxp/QoriqLs/I2c/I2cDxe.inf | 52 ++ Chips/Nxp/QoriqLs/Include/Library/DUart.h | 133 ++++ Chips/Nxp/QoriqLs/Include/Library/I2c.h | 199 +++++ .../QoriqLs/Library/DUartPortLib/DUartPortLib.c | 321 ++++++++ .../QoriqLs/Library/DUartPortLib/DUartPortLib.inf | 43 ++ .../QoriqLs/Library/Ds1307RtcLib/Ds1307RtcLib.c | 250 +++++++ .../QoriqLs/Library/Ds1307RtcLib/Ds1307RtcLib.inf | 44 ++ Chips/Nxp/QoriqLs/Library/I2cLib/I2cLib.c | 513 +++++++++++++ Chips/Nxp/QoriqLs/Library/I2cLib/I2cLib.inf | 41 ++ .../Library/PrePiNor/AArch64/ModuleEntryPoint.S | 34 + Chips/Nxp/QoriqLs/Library/PrePiNor/PrePiNor.c | 52 ++ Chips/Nxp/QoriqLs/Library/PrePiNor/PrePiNor.inf | 48 ++ Chips/Nxp/QoriqLs/NxpQoriqLs.dec | 50 ++ Chips/Nxp/QoriqLs/PpaInitDxe/PpaInit.c | 117 +++ Chips/Nxp/QoriqLs/PpaInitDxe/PpaInitDxe.inf | 63 ++ Chips/Nxp/QoriqLs/PpaInitDxe/PpaInitHelper.S | 79 ++ Chips/Nxp/QoriqLs/PpaInitDxe/PpaItbParse.c | 144 ++++ Chips/Nxp/QoriqLs/PpaInitDxe/PpaItbParse.h | 52 ++ Platforms/Nxp/LS1043aRdb/Include/Library/Common.h | 68 ++ Platforms/Nxp/LS1043aRdb/Include/Library/CpldLib.h | 75 ++ Platforms/Nxp/LS1043aRdb/Include/Library/Ddr.h | 190 +++++ Platforms/Nxp/LS1043aRdb/Include/Library/FslIfc.h | 721 ++++++++++++++++++ .../Nxp/LS1043aRdb/Include/Library/Ls1043aSerDes.h | 89 +++ .../Nxp/LS1043aRdb/Include/Library/PlatformLib.h | 179 +++++ Platforms/Nxp/LS1043aRdb/Include/Library/SocLib.h | 509 +++++++++++++ Platforms/Nxp/LS1043aRdb/LS1043aRdbPkg.dec | 166 +++++ Platforms/Nxp/LS1043aRdb/LS1043aRdbPkg.dsc | 602 +++++++++++++++ Platforms/Nxp/LS1043aRdb/LS1043aRdbPkg.fdf | 311 ++++++++ .../LS1043aRdb/LS1043aWatchDog/LS1043aWatchDog.c | 355 +++++++++ .../LS1043aWatchDog/LS1043aWatchDogDxe.inf | 54 ++ Platforms/Nxp/LS1043aRdb/Library/CpldLib/CpldLib.c | 157 ++++ .../Nxp/LS1043aRdb/Library/CpldLib/CpldLib.inf | 33 + Platforms/Nxp/LS1043aRdb/Library/DdrLib/DdrLib.c | 188 +++++ Platforms/Nxp/LS1043aRdb/Library/DdrLib/DdrLib.inf | 41 ++ .../Nxp/LS1043aRdb/Library/LS1043aRdbLib/Common.c | 103 +++ .../LS1043aRdb/Library/LS1043aRdbLib/LS1043aRdb.c | 109 +++ .../Library/LS1043aRdbLib/LS1043aRdbHelper.S | 61 ++ .../Library/LS1043aRdbLib/LS1043aRdbLib.inf | 56 ++ .../Library/LS1043aRdbLib/LS1043aRdbMem.c | 149 ++++ .../Library/LS1043aSocLib/LS1043aSocLib.c | 819 +++++++++++++++++++++ .../Library/LS1043aSocLib/LS1043aSocLib.inf | 53 ++ .../LS1043aRdb/Library/LS1043aSocLib/LsSerDes.c | 195 +++++ .../Library/ResetSystemLib/ResetSystemLib.c | 87 +++ .../Library/ResetSystemLib/ResetSystemLib.inf | 50 ++ Platforms/Nxp/LS1043aRdb/build.sh | 72 ++ Platforms/Nxp/LS1043aRdb/ls1043a_env.cshrc | 2 + 47 files changed, 7885 insertions(+) create mode 100644 Chips/Nxp/QoriqLs/I2c/I2cDxe.c create mode 100644 Chips/Nxp/QoriqLs/I2c/I2cDxe.inf create mode 100644 Chips/Nxp/QoriqLs/Include/Library/DUart.h create mode 100644 Chips/Nxp/QoriqLs/Include/Library/I2c.h create mode 100644 Chips/Nxp/QoriqLs/Library/DUartPortLib/DUartPortLib.c create mode 100644 Chips/Nxp/QoriqLs/Library/DUartPortLib/DUartPortLib.inf create mode 100644 Chips/Nxp/QoriqLs/Library/Ds1307RtcLib/Ds1307RtcLib.c create mode 100644 Chips/Nxp/QoriqLs/Library/Ds1307RtcLib/Ds1307RtcLib.inf create mode 100644 Chips/Nxp/QoriqLs/Library/I2cLib/I2cLib.c create mode 100644 Chips/Nxp/QoriqLs/Library/I2cLib/I2cLib.inf create mode 100644 Chips/Nxp/QoriqLs/Library/PrePiNor/AArch64/ModuleEntryPoint.S create mode 100644 Chips/Nxp/QoriqLs/Library/PrePiNor/PrePiNor.c create mode 100644 Chips/Nxp/QoriqLs/Library/PrePiNor/PrePiNor.inf create mode 100644 Chips/Nxp/QoriqLs/NxpQoriqLs.dec create mode 100644 Chips/Nxp/QoriqLs/PpaInitDxe/PpaInit.c create mode 100644 Chips/Nxp/QoriqLs/PpaInitDxe/PpaInitDxe.inf create mode 100644 Chips/Nxp/QoriqLs/PpaInitDxe/PpaInitHelper.S create mode 100755 Chips/Nxp/QoriqLs/PpaInitDxe/PpaItbParse.c create mode 100755 Chips/Nxp/QoriqLs/PpaInitDxe/PpaItbParse.h create mode 100644 Platforms/Nxp/LS1043aRdb/Include/Library/Common.h create mode 100644 Platforms/Nxp/LS1043aRdb/Include/Library/CpldLib.h create mode 100644 Platforms/Nxp/LS1043aRdb/Include/Library/Ddr.h create mode 100644 Platforms/Nxp/LS1043aRdb/Include/Library/FslIfc.h create mode 100644 Platforms/Nxp/LS1043aRdb/Include/Library/Ls1043aSerDes.h create mode 100644 Platforms/Nxp/LS1043aRdb/Include/Library/PlatformLib.h create mode 100644 Platforms/Nxp/LS1043aRdb/Include/Library/SocLib.h create mode 100644 Platforms/Nxp/LS1043aRdb/LS1043aRdbPkg.dec create mode 100644 Platforms/Nxp/LS1043aRdb/LS1043aRdbPkg.dsc create mode 100644 Platforms/Nxp/LS1043aRdb/LS1043aRdbPkg.fdf create mode 100644 Platforms/Nxp/LS1043aRdb/LS1043aWatchDog/LS1043aWatchDog.c create mode 100644 Platforms/Nxp/LS1043aRdb/LS1043aWatchDog/LS1043aWatchDogDxe.inf create mode 100644 Platforms/Nxp/LS1043aRdb/Library/CpldLib/CpldLib.c create mode 100644 Platforms/Nxp/LS1043aRdb/Library/CpldLib/CpldLib.inf create mode 100644 Platforms/Nxp/LS1043aRdb/Library/DdrLib/DdrLib.c create mode 100644 Platforms/Nxp/LS1043aRdb/Library/DdrLib/DdrLib.inf create mode 100644 Platforms/Nxp/LS1043aRdb/Library/LS1043aRdbLib/Common.c create mode 100644 Platforms/Nxp/LS1043aRdb/Library/LS1043aRdbLib/LS1043aRdb.c create mode 100644 Platforms/Nxp/LS1043aRdb/Library/LS1043aRdbLib/LS1043aRdbHelper.S create mode 100644 Platforms/Nxp/LS1043aRdb/Library/LS1043aRdbLib/LS1043aRdbLib.inf create mode 100644 Platforms/Nxp/LS1043aRdb/Library/LS1043aRdbLib/LS1043aRdbMem.c create mode 100644 Platforms/Nxp/LS1043aRdb/Library/LS1043aSocLib/LS1043aSocLib.c create mode 100644 Platforms/Nxp/LS1043aRdb/Library/LS1043aSocLib/LS1043aSocLib.inf create mode 100644 Platforms/Nxp/LS1043aRdb/Library/LS1043aSocLib/LsSerDes.c create mode 100644 Platforms/Nxp/LS1043aRdb/Library/ResetSystemLib/ResetSystemLib.c create mode 100644 Platforms/Nxp/LS1043aRdb/Library/ResetSystemLib/ResetSystemLib.inf create mode 100755 Platforms/Nxp/LS1043aRdb/build.sh create mode 100644 Platforms/Nxp/LS1043aRdb/ls1043a_env.cshrc