diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/plat/allwinner.rst | 29 | ||||
-rw-r--r-- | docs/plat/imx8.rst | 58 | ||||
-rw-r--r-- | docs/plat/rpi3.rst | 8 |
3 files changed, 94 insertions, 1 deletions
diff --git a/docs/plat/allwinner.rst b/docs/plat/allwinner.rst new file mode 100644 index 000000000..a7e84a304 --- /dev/null +++ b/docs/plat/allwinner.rst @@ -0,0 +1,29 @@ +Trusted Firmware-A for Allwinner ARMv8 SoCs +=========================================== + +Trusted Firmware-A (TF-A) implements the EL3 firmware layer for Allwinner +SoCs with ARMv8 cores. Only BL31 is used to provide proper EL3 setup and +PSCI runtime services. +U-Boot's SPL acts as a loader, loading both BL31 and BL33 (typically U-Boot). +Loading is done from SD card, eMMC or SPI flash, also via an USB debug +interface (FEL). +BL31 lives in SRAM A2, which is documented to be accessible from secure +world only. + +Current limitations: + +- Missing PMIC support + +After building bl31.bin, the binary must be fed to the U-Boot build system +to include it in the FIT image that the SPL loader will process. +bl31.bin can be either copied (or sym-linked) into U-Boot's root directory, +or the environment variable BL31 must contain the binary's path. +See the respective `U-Boot documentation`_ for more details. + +To build: + +:: + + make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 DEBUG=1 bl31 + +.. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD diff --git a/docs/plat/imx8.rst b/docs/plat/imx8.rst new file mode 100644 index 000000000..42409623d --- /dev/null +++ b/docs/plat/imx8.rst @@ -0,0 +1,58 @@ +Description +=========== + +The i.MX 8 series of applications processors is a feature- and +performance-scalable multi-core platform that includes single-, +dual-, and quad-core families based on the Arm® Cortex® +architecture—including combined Cortex-A72 + Cortex-A53, +Cortex-A35, and Cortex-M4 based solutions for advanced graphics, +imaging, machine vision, audio, voice, video, and safety-critical +applications. + +The i.MX8QM is with 2 Cortex-A72 ARM core, 4 Cortex-A53 ARM core +and 1 Cortex-M4 system controller. + +The i.MX8QX is with 4 Cortex-A35 ARM core and 1 Cortex-M4 system +controller. + +The System Controller (SC) represents the evolution of centralized +control for system-level resources on i.MX8. The heart of the system +controller is a Cortex-M4 that executes system controller firmware. + +Boot Sequence +============= + +Bootrom --> BL31 --> BL33(u-boot) --> Linux kernel + +How to build +============ + +Build Procedure +--------------- + +- Prepare AARCH64 toolchain. + +- Build System Controller Firmware and u-boot firstly, and get binary images: scfw_tcm.bin and u-boot.bin + +- Build TF-A + + Build bl31: + + .. code:: shell + + CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 + + Target_SoC should be "imx8qm" for i.MX8QM SoC. + Target_SoC should be "imx8qx" for i.MX8QX SoC. + +Deploy TF-A Images +----------------- + +TF-A binary(bl31.bin), scfw_tcm.bin and u-boot.bin are combined together +to generate a binary file called flash.bin, the imx-mkimage tool is used +to generate flash.bin, and flash.bin needs to be flashed into SD card +with certain offset for BOOT ROM. The system controller firmware, +u-boot and imx-mkimage will be upstreamed soon, this doc will be updated +once they are ready, and the link will be posted. + +.. _i.MX8: https://www.nxp.com/products/processors-and-microcontrollers/applications-processors/i.mx-applications-processors/i.mx-8-processors/i.mx-8-family-arm-cortex-a53-cortex-a72-virtualization-vision-3d-graphics-4k-video:i.MX8 diff --git a/docs/plat/rpi3.rst b/docs/plat/rpi3.rst index 659ed7fb4..554c9a14a 100644 --- a/docs/plat/rpi3.rst +++ b/docs/plat/rpi3.rst @@ -122,7 +122,7 @@ secure platform! 0x10000000 +-----------------+ | Secure SRAM | BL2, BL31 0x10100000 +-----------------+ - | Secure DRAM | + | Secure DRAM | BL32 (Secure payload) 0x10300000 +-----------------+ | Non-secure DRAM | BL33 0x11000000 +-----------------+ @@ -237,6 +237,12 @@ The following build options are supported: in AArch64 mode. If set to 1, it will jump to BL33 in Hypervisor in AArch32 mode. +- ``BL32``: This port can load and run OP-TEE. The OP-TEE image is optional. + Please use the code from `here <https://github.com/OP-TEE/optee_os>`__. + Build the Trusted Firmware with option ``BL32=tee-header_v2.bin + BL32_EXTRA1=tee-pager_v2.bin BL32_EXTRA2=tee-pageable_v2.bin`` + to put the binaries into the FIP. + The following is not currently supported: - AArch32 for TF-A itself. |