mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 11:04:20 +00:00
doc: Reformat platform port documents
The platform port documents are not very standardised right now and they don't integrate properly into the document tree so: 1) Make sure each port has a proper name and title (incl. owner) 2) Correct use of headings, subheadings, etc in each port 3) Resolve any naming conflicts between documents Change-Id: I4c2da6f57172b7f2af3512e766ae9ce3b840b50f Signed-off-by: Paul Beesley <paul.beesley@arm.com>
This commit is contained in:
parent
83993177d9
commit
24dba2b39f
22 changed files with 118 additions and 111 deletions
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for Allwinner ARMv8 SoCs
|
Allwinner ARMv8 SoCs
|
||||||
===========================================
|
====================
|
||||||
|
|
||||||
Trusted Firmware-A (TF-A) implements the EL3 firmware layer for Allwinner
|
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
|
SoCs with ARMv8 cores. Only BL31 is used to provide proper EL3 setup and
|
||||||
|
@ -37,11 +37,10 @@ To build for machines with an H6 SoC:
|
||||||
.. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD
|
.. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD
|
||||||
|
|
||||||
Trusted OS dispatcher
|
Trusted OS dispatcher
|
||||||
=====================
|
---------------------
|
||||||
|
|
||||||
One can boot Trusted OS(OP-TEE OS, bl32 image) along side bl31 image on Allwinner A64.
|
One can boot Trusted OS(OP-TEE OS, bl32 image) along side bl31 image on Allwinner A64.
|
||||||
|
|
||||||
In order to include the 'opteed' dispatcher in the image, pass 'SPD=opteed' on the command line
|
In order to include the 'opteed' dispatcher in the image, pass 'SPD=opteed' on the command line
|
||||||
while compiling the bl31 image and make sure the loader (SPL) loads the Trusted OS binary to
|
while compiling the bl31 image and make sure the loader (SPL) loads the Trusted OS binary to
|
||||||
the beginning of DRAM (0x40000000).
|
the beginning of DRAM (0x40000000).
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Description
|
Arm Versatile Express
|
||||||
===========
|
=====================
|
||||||
|
|
||||||
Versatile Express (VE) family development platform provides an
|
Versatile Express (VE) family development platform provides an
|
||||||
ultra fast environment for prototyping arm-v7 System-on-Chip designs.
|
ultra fast environment for prototyping arm-v7 System-on-Chip designs.
|
||||||
|
@ -9,21 +9,21 @@ and Cortex-A7 VE FVP's. This platform is tested on and only expected to work
|
||||||
with single core models.
|
with single core models.
|
||||||
|
|
||||||
Boot Sequence
|
Boot Sequence
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
BL1 --> BL2 --> BL32(sp_min) --> BL33(u-boot) --> Linux kernel
|
BL1 --> BL2 --> BL32(sp_min) --> BL33(u-boot) --> Linux kernel
|
||||||
|
|
||||||
How to build
|
How to build
|
||||||
============
|
------------
|
||||||
|
|
||||||
Code Locations
|
Code Locations
|
||||||
---------------
|
~~~~~~~~~~~~~~
|
||||||
- `U-boot <https://git.linaro.org/landing-teams/working/arm/u-boot.git>`__
|
- `U-boot <https://git.linaro.org/landing-teams/working/arm/u-boot.git>`__
|
||||||
|
|
||||||
- `arm-trusted-firmware <https://github.com/ARM-software/arm-trusted-firmware>`__
|
- `arm-trusted-firmware <https://github.com/ARM-software/arm-trusted-firmware>`__
|
||||||
|
|
||||||
Build Procedure
|
Build Procedure
|
||||||
---------------
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Obtain arm toolchain. The software stack has been verified with linaro 6.2
|
- Obtain arm toolchain. The software stack has been verified with linaro 6.2
|
||||||
`arm-linux-gnueabihf <https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/>`__.
|
`arm-linux-gnueabihf <https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/>`__.
|
||||||
|
@ -68,7 +68,7 @@ Build Procedure
|
||||||
BL33=<path_to_u-boot.bin> all fip
|
BL33=<path_to_u-boot.bin> all fip
|
||||||
|
|
||||||
Run Procedure
|
Run Procedure
|
||||||
-------------
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
The following model parameters should be used to boot Linux using the build of
|
The following model parameters should be used to boot Linux using the build of
|
||||||
arm-trusted-firmware-a made using the above make commands:
|
arm-trusted-firmware-a made using the above make commands:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Description
|
NXP i.MX 8 Series
|
||||||
===========
|
=================
|
||||||
|
|
||||||
The i.MX 8 series of applications processors is a feature- and
|
The i.MX 8 series of applications processors is a feature- and
|
||||||
performance-scalable multi-core platform that includes single-,
|
performance-scalable multi-core platform that includes single-,
|
||||||
|
@ -20,15 +20,15 @@ control for system-level resources on i.MX8. The heart of the system
|
||||||
controller is a Cortex-M4 that executes system controller firmware.
|
controller is a Cortex-M4 that executes system controller firmware.
|
||||||
|
|
||||||
Boot Sequence
|
Boot Sequence
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
Bootrom --> BL31 --> BL33(u-boot) --> Linux kernel
|
Bootrom --> BL31 --> BL33(u-boot) --> Linux kernel
|
||||||
|
|
||||||
How to build
|
How to build
|
||||||
============
|
------------
|
||||||
|
|
||||||
Build Procedure
|
Build Procedure
|
||||||
---------------
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Prepare AARCH64 toolchain.
|
- Prepare AARCH64 toolchain.
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ Build Procedure
|
||||||
Target_SoC should be "imx8qx" for i.MX8QX SoC.
|
Target_SoC should be "imx8qx" for i.MX8QX SoC.
|
||||||
|
|
||||||
Deploy TF-A Images
|
Deploy TF-A Images
|
||||||
-----------------
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
TF-A binary(bl31.bin), scfw_tcm.bin and u-boot.bin are combined together
|
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 a binary file called flash.bin, the imx-mkimage tool is used
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Description
|
NXP i.MX 8M Series
|
||||||
===========
|
==================
|
||||||
|
|
||||||
The i.MX 8M family of applications processors based on Arm Corte-A53 and Cortex-M4
|
The i.MX 8M family of applications processors based on Arm Corte-A53 and Cortex-M4
|
||||||
cores provide high-performance computing, power efficiency, enhanced system
|
cores provide high-performance computing, power efficiency, enhanced system
|
||||||
|
@ -7,15 +7,15 @@ reliability and embedded security needed to drive the growth of fast-growing
|
||||||
edge node computing, streaming multimedia, and machine learning applications.
|
edge node computing, streaming multimedia, and machine learning applications.
|
||||||
|
|
||||||
Boot Sequence
|
Boot Sequence
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
Bootrom --> SPL --> BL31 --> BL33(u-boot) --> Linux kernel
|
Bootrom --> SPL --> BL31 --> BL33(u-boot) --> Linux kernel
|
||||||
|
|
||||||
How to build
|
How to build
|
||||||
============
|
------------
|
||||||
|
|
||||||
Build Procedure
|
Build Procedure
|
||||||
---------------
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Prepare AARCH64 toolchain.
|
- Prepare AARCH64 toolchain.
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ Build Procedure
|
||||||
Target_SoC should be "imx8mm" for i.MX8MM SoC.
|
Target_SoC should be "imx8mm" for i.MX8MM SoC.
|
||||||
|
|
||||||
Deploy TF-A Images
|
Deploy TF-A Images
|
||||||
-----------------
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
TF-A binary(bl31.bin), u-boot-spl.bin u-boot-nodtb.bin and dtb are combined
|
TF-A binary(bl31.bin), u-boot-spl.bin u-boot-nodtb.bin and dtb are combined
|
||||||
together to generate a binary file called flash.bin, the imx-mkimage tool is
|
together to generate a binary file called flash.bin, the imx-mkimage tool is
|
||||||
|
|
|
@ -16,7 +16,6 @@ Platform Ports
|
||||||
meson-gxl
|
meson-gxl
|
||||||
mt8183
|
mt8183
|
||||||
nvidia-tegra
|
nvidia-tegra
|
||||||
poplar
|
|
||||||
qemu
|
qemu
|
||||||
rcar-gen3
|
rcar-gen3
|
||||||
rockchip
|
rockchip
|
||||||
|
@ -26,4 +25,5 @@ Platform Ports
|
||||||
synquacer
|
synquacer
|
||||||
ti-k3
|
ti-k3
|
||||||
warp7
|
warp7
|
||||||
|
xilinx-versal
|
||||||
xilinx-zynqmp
|
xilinx-zynqmp
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Description
|
Intel Stratix 10 SoCFPGA
|
||||||
===========
|
========================
|
||||||
|
|
||||||
Stratix 10 SoCFPGA is a FPGA with integrated quad-core 64-bit Arm Cortex A53 processor.
|
Stratix 10 SoCFPGA is a FPGA with integrated quad-core 64-bit Arm Cortex A53 processor.
|
||||||
|
|
||||||
|
@ -11,10 +11,10 @@ the hardware, then loads bl31 and bl33 (UEFI) into DDR and boots to bl33.
|
||||||
Boot ROM --> Trusted Firmware-A --> UEFI
|
Boot ROM --> Trusted Firmware-A --> UEFI
|
||||||
|
|
||||||
How to build
|
How to build
|
||||||
============
|
------------
|
||||||
|
|
||||||
Code Locations
|
Code Locations
|
||||||
--------------
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Trusted Firmware-A:
|
- Trusted Firmware-A:
|
||||||
`link <https://github.com/ARM-software/arm-trusted-firmware>`__
|
`link <https://github.com/ARM-software/arm-trusted-firmware>`__
|
||||||
|
@ -23,7 +23,7 @@ Code Locations
|
||||||
`link <https://github.com/altera-opensource/uefi-socfpga>`__
|
`link <https://github.com/altera-opensource/uefi-socfpga>`__
|
||||||
|
|
||||||
Build Procedure
|
Build Procedure
|
||||||
---------------
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Fetch all the above 2 repositories into local host.
|
- Fetch all the above 2 repositories into local host.
|
||||||
Make all the repositories in the same ${BUILD\_PATH}.
|
Make all the repositories in the same ${BUILD\_PATH}.
|
||||||
|
@ -45,7 +45,7 @@ Build Procedure
|
||||||
BL33=PEI.ROM
|
BL33=PEI.ROM
|
||||||
|
|
||||||
Install Procedure
|
Install Procedure
|
||||||
-----------------
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- dd fip.bin to a A2 partition on the MMC drive to be booted in Stratix 10
|
- dd fip.bin to a A2 partition on the MMC drive to be booted in Stratix 10
|
||||||
board.
|
board.
|
||||||
|
@ -53,16 +53,18 @@ Install Procedure
|
||||||
- Generate a SOF containing bl2
|
- Generate a SOF containing bl2
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
aarch64-linux-gnu-objcopy -I binary -O ihex --change-addresses 0xffe00000 bl2.bin bl2.hex
|
aarch64-linux-gnu-objcopy -I binary -O ihex --change-addresses 0xffe00000 bl2.bin bl2.hex
|
||||||
quartus_cpf --bootloader bl2.hex <quartus_generated_sof> <output_sof_with_bl2>
|
quartus_cpf --bootloader bl2.hex <quartus_generated_sof> <output_sof_with_bl2>
|
||||||
|
|
||||||
- Configure SOF to board
|
- Configure SOF to board
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
nios2-configure-sof <output_sof_with_bl2>
|
nios2-configure-sof <output_sof_with_bl2>
|
||||||
|
|
||||||
Boot trace
|
Boot trace
|
||||||
==========
|
----------
|
||||||
|
|
||||||
::
|
::
|
||||||
INFO: DDR: DRAM calibration success.
|
INFO: DDR: DRAM calibration success.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Description
|
NXP QorIQ® LS1043A
|
||||||
===========
|
==================
|
||||||
|
|
||||||
The QorIQ® LS1043A processor is NXP's first quad-core, 64-bit Arm®-based
|
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
|
processor for embedded networking. The LS1023A (two core version) and the
|
||||||
|
@ -36,7 +36,7 @@ UART: supports two UARTs up to 115200 bps for console
|
||||||
More information are listed in `ls1043`_.
|
More information are listed in `ls1043`_.
|
||||||
|
|
||||||
Boot Sequence
|
Boot Sequence
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
|
|
||||||
Bootrom --> TF-A BL1 --> TF-A BL2 --> TF-A BL1 --> TF-A BL31
|
Bootrom --> TF-A BL1 --> TF-A BL2 --> TF-A BL1 --> TF-A BL31
|
||||||
|
@ -44,10 +44,10 @@ Bootrom --> TF-A BL1 --> TF-A BL2 --> TF-A BL1 --> TF-A BL31
|
||||||
|
|
||||||
|
|
||||||
How to build
|
How to build
|
||||||
============
|
------------
|
||||||
|
|
||||||
Build Procedure
|
Build Procedure
|
||||||
---------------
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Prepare AARCH64 toolchain.
|
- Prepare AARCH64 toolchain.
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ Build Procedure
|
||||||
BL33=u-boot.bin NEED_BL32=yes BL32=tee.bin SPD=opteed
|
BL33=u-boot.bin NEED_BL32=yes BL32=tee.bin SPD=opteed
|
||||||
|
|
||||||
Deploy TF-A Images
|
Deploy TF-A Images
|
||||||
-----------------
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Deploy TF-A images on Nor flash Alt Bank.
|
- Deploy TF-A images on Nor flash Alt Bank.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for Amlogic Meson S905 (GXBB)
|
Amlogic Meson S905 (GXBB)
|
||||||
================================================
|
=========================
|
||||||
|
|
||||||
The Amlogic Meson S905 is a SoC with a quad core Arm Cortex-A53 running at
|
The Amlogic Meson S905 is a SoC with a quad core Arm Cortex-A53 running at
|
||||||
1.5Ghz. It also contains a Cortex-M3 used as SCP.
|
1.5Ghz. It also contains a Cortex-M3 used as SCP.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for Amlogic Meson S905x (GXL)
|
Amlogic Meson S905x (GXL)
|
||||||
================================================
|
=========================
|
||||||
|
|
||||||
The Amlogic Meson S905x is a SoC with a quad core Arm Cortex-A53 running at
|
The Amlogic Meson S905x is a SoC with a quad core Arm Cortex-A53 running at
|
||||||
1.5Ghz. It also contains a Cortex-M3 used as SCP.
|
1.5Ghz. It also contains a Cortex-M3 used as SCP.
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
Description
|
MediaTek 8183
|
||||||
===========
|
=============
|
||||||
|
|
||||||
MediaTek 8183 (MT8183) is a 64-bit ARM SoC introduced by MediaTek in early 2018.
|
MediaTek 8183 (MT8183) is a 64-bit ARM SoC introduced by MediaTek in early 2018.
|
||||||
The chip incorporates eight cores - four Cortex-A53 little cores and Cortex-A73.
|
The chip incorporates eight cores - four Cortex-A53 little cores and Cortex-A73.
|
||||||
Both clusters can operate at up to 2 GHz.
|
Both clusters can operate at up to 2 GHz.
|
||||||
|
|
||||||
Boot Sequence
|
Boot Sequence
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
Boot Rom --> Coreboot --> TF-A BL31 --> Depthcharge --> Linux Kernel
|
Boot Rom --> Coreboot --> TF-A BL31 --> Depthcharge --> Linux Kernel
|
||||||
|
|
||||||
How to Build
|
How to Build
|
||||||
============
|
------------
|
||||||
|
|
||||||
.. code:: shell
|
.. code:: shell
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Tegra SoCs - Overview
|
NVIDIA Tegra
|
||||||
=====================
|
============
|
||||||
|
|
||||||
- .. rubric:: T186
|
- .. rubric:: T186
|
||||||
:name: t186
|
:name: t186
|
||||||
|
@ -58,13 +58,13 @@ to extensive power-gating and dynamic voltage and clock scaling based on
|
||||||
workloads.
|
workloads.
|
||||||
|
|
||||||
Directory structure
|
Directory structure
|
||||||
===================
|
-------------------
|
||||||
|
|
||||||
- plat/nvidia/tegra/common - Common code for all Tegra SoCs
|
- plat/nvidia/tegra/common - Common code for all Tegra SoCs
|
||||||
- plat/nvidia/tegra/soc/txxx - Chip specific code
|
- plat/nvidia/tegra/soc/txxx - Chip specific code
|
||||||
|
|
||||||
Trusted OS dispatcher
|
Trusted OS dispatcher
|
||||||
=====================
|
---------------------
|
||||||
|
|
||||||
Tegra supports multiple Trusted OS'.
|
Tegra supports multiple Trusted OS'.
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ Tegra210: TLK and Trusty
|
||||||
Tegra186: Trusty
|
Tegra186: Trusty
|
||||||
|
|
||||||
Scatter files
|
Scatter files
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
Tegra platforms currently support scatter files and ld.S scripts. The scatter
|
Tegra platforms currently support scatter files and ld.S scripts. The scatter
|
||||||
files help support ARMLINK linker to generate BL31 binaries. For now, there
|
files help support ARMLINK linker to generate BL31 binaries. For now, there
|
||||||
|
@ -93,7 +93,7 @@ the scatter file to be used. Tegra platforms have verified BL31 image generation
|
||||||
with ARMCLANG (compilation) and ARMLINK (linking) for the Tegra186 platforms.
|
with ARMCLANG (compilation) and ARMLINK (linking) for the Tegra186 platforms.
|
||||||
|
|
||||||
Preparing the BL31 image to run on Tegra SoCs
|
Preparing the BL31 image to run on Tegra SoCs
|
||||||
=============================================
|
---------------------------------------------
|
||||||
|
|
||||||
.. code:: shell
|
.. code:: shell
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ uint64\_t boot\_profiler\_shmem\_base;
|
||||||
} plat\_params\_from\_bl2\_t;
|
} plat\_params\_from\_bl2\_t;
|
||||||
|
|
||||||
Power Management
|
Power Management
|
||||||
================
|
----------------
|
||||||
|
|
||||||
The PSCI implementation expects each platform to expose the 'power state'
|
The PSCI implementation expects each platform to expose the 'power state'
|
||||||
parameter to be used during the 'SYSTEM SUSPEND' call. The state-id field
|
parameter to be used during the 'SYSTEM SUSPEND' call. The state-id field
|
||||||
|
@ -133,7 +133,7 @@ is implementation defined on Tegra SoCs and is preferably defined by
|
||||||
tegra\_def.h.
|
tegra\_def.h.
|
||||||
|
|
||||||
Tegra configs
|
Tegra configs
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
- 'tegra\_enable\_l2\_ecc\_parity\_prot': This flag enables the L2 ECC and Parity
|
- 'tegra\_enable\_l2\_ecc\_parity\_prot': This flag enables the L2 ECC and Parity
|
||||||
Protection bit, for Arm Cortex-A57 CPUs, during CPU boot. This flag will
|
Protection bit, for Arm Cortex-A57 CPUs, during CPU boot. This flag will
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for QEMU virt Armv8-A
|
QEMU virt Armv8-A
|
||||||
========================================
|
=================
|
||||||
|
|
||||||
Trusted Firmware-A (TF-A) implements the EL3 firmware layer for QEMU virt
|
Trusted Firmware-A (TF-A) implements the EL3 firmware layer for QEMU virt
|
||||||
Armv8-A. BL1 is used as the BootROM, supplied with the -bios argument.
|
Armv8-A. BL1 is used as the BootROM, supplied with the -bios argument.
|
||||||
|
@ -35,7 +35,7 @@ To build:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
make CROSS_COMPILE=aarch64-none-elf- PLAT=qemu
|
make CROSS_COMPILE=aarch64-none-elf- PLAT=qemu
|
||||||
|
|
||||||
To start (QEMU v2.6.0):
|
To start (QEMU v2.6.0):
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Description
|
Renesas R-Car
|
||||||
===========
|
=============
|
||||||
|
|
||||||
"R-Car" is the nickname for Renesas' system-on-chip (SoC) family for
|
"R-Car" is the nickname for Renesas' system-on-chip (SoC) family for
|
||||||
car information systems designed for the next-generation of automotive
|
car information systems designed for the next-generation of automotive
|
||||||
|
@ -97,14 +97,14 @@ program counters.
|
||||||
|
|
||||||
|
|
||||||
How to build
|
How to build
|
||||||
============
|
------------
|
||||||
|
|
||||||
The TF-A build options depend on the target board so you will have to
|
The TF-A build options depend on the target board so you will have to
|
||||||
refer to those specific instructions. What follows is customized to
|
refer to those specific instructions. What follows is customized to
|
||||||
the H3 SiP Salvator-X development system used in this port.
|
the H3 SiP Salvator-X development system used in this port.
|
||||||
|
|
||||||
Build Tested:
|
Build Tested:
|
||||||
-------------
|
~~~~~~~~~~~~~
|
||||||
RCAR_OPT="LSI=H3 RCAR_DRAM_SPLIT=1 RCAR_LOSSY_ENABLE=1"
|
RCAR_OPT="LSI=H3 RCAR_DRAM_SPLIT=1 RCAR_LOSSY_ENABLE=1"
|
||||||
MBEDTLS_DIR=$mbedtls_src
|
MBEDTLS_DIR=$mbedtls_src
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ $ MBEDTLS_DIR=$mbedtls_src_tree make clean bl2 bl31 rcar_layout_tool \
|
||||||
PLAT=rcar ${RCAR_OPT} SPD=opteed
|
PLAT=rcar ${RCAR_OPT} SPD=opteed
|
||||||
|
|
||||||
System Tested:
|
System Tested:
|
||||||
--------------------
|
~~~~~~~~~~~~~~
|
||||||
* mbed_tls:
|
* mbed_tls:
|
||||||
git@github.com:ARMmbed/mbedtls.git [devel]
|
git@github.com:ARMmbed/mbedtls.git [devel]
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ System Tested:
|
||||||
Linux 4.19-rc4
|
Linux 4.19-rc4
|
||||||
|
|
||||||
TF-A Build Procedure
|
TF-A Build Procedure
|
||||||
--------------------
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Fetch all the above 4 repositories.
|
- Fetch all the above 4 repositories.
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ TF-A Build Procedure
|
||||||
make -j8 PLATFORM="rcar" CFG_ARM64_core=y
|
make -j8 PLATFORM="rcar" CFG_ARM64_core=y
|
||||||
|
|
||||||
Install Procedure
|
Install Procedure
|
||||||
-----------------
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Boot the board in Mini-monitor mode and enable access to the
|
- Boot the board in Mini-monitor mode and enable access to the
|
||||||
Hyperflash.
|
Hyperflash.
|
||||||
|
@ -195,7 +195,7 @@ Install Procedure
|
||||||
|
|
||||||
|
|
||||||
Boot trace
|
Boot trace
|
||||||
==========
|
----------
|
||||||
|
|
||||||
Notice that BL31 traces are not accessible via the console and that in
|
Notice that BL31 traces are not accessible via the console and that in
|
||||||
order to verbose the BL2 output you will have to compile TF-A with
|
order to verbose the BL2 output you will have to compile TF-A with
|
||||||
|
@ -266,4 +266,3 @@ LOG_LEVEL=50 and DEBUG=1
|
||||||
Net: eth0: ethernet@e6800000
|
Net: eth0: ethernet@e6800000
|
||||||
Hit any key to stop autoboot: 0
|
Hit any key to stop autoboot: 0
|
||||||
=>
|
=>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for Rockchip SoCs
|
Rockchip SoCs
|
||||||
====================================
|
=============
|
||||||
|
|
||||||
Trusted Firmware-A supports a number of Rockchip ARM SoCs from both
|
Trusted Firmware-A supports a number of Rockchip ARM SoCs from both
|
||||||
AARCH32 and AARCH64 fields.
|
AARCH32 and AARCH64 fields.
|
||||||
|
@ -12,7 +12,7 @@ This includes right now:
|
||||||
|
|
||||||
|
|
||||||
Boot Sequence
|
Boot Sequence
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
For AARCH32:
|
For AARCH32:
|
||||||
Bootrom --> BL1/BL2 --> BL32 --> BL33 --> Linux kernel
|
Bootrom --> BL1/BL2 --> BL32 --> BL33 --> Linux kernel
|
||||||
|
@ -26,7 +26,7 @@ BL1/2 and BL33 can currently be supplied from either:
|
||||||
|
|
||||||
|
|
||||||
How to build
|
How to build
|
||||||
============
|
------------
|
||||||
|
|
||||||
Rockchip SoCs expect TF-A's BL31 (AARCH64) or BL32 (AARCH32) to get
|
Rockchip SoCs expect TF-A's BL31 (AARCH64) or BL32 (AARCH32) to get
|
||||||
integrated with other boot software like U-Boot or Coreboot, so only
|
integrated with other boot software like U-Boot or Coreboot, so only
|
||||||
|
@ -46,7 +46,7 @@ compilation toolchain.
|
||||||
|
|
||||||
|
|
||||||
How to deploy
|
How to deploy
|
||||||
=============
|
-------------
|
||||||
|
|
||||||
Both upstream U-Boot and Coreboot projects contain instructions on where
|
Both upstream U-Boot and Coreboot projects contain instructions on where
|
||||||
to put the built images during their respective build process.
|
to put the built images during their respective build process.
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
Trusted Firmware-A for Raspberry Pi 3
|
Raspberry Pi 3
|
||||||
=====================================
|
==============
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
|
|
||||||
|
@ -167,7 +165,7 @@ Secondary cores
|
||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
This port of the Trusted Firmware-A supports ``PSCI_CPU_ON``,
|
This port of the Trusted Firmware-A supports ``PSCI_CPU_ON``,
|
||||||
`PSCI_SYSTEM_RESET`` and ``PSCI_SYSTEM_OFF``. The last one doesn't really turn
|
``PSCI_SYSTEM_RESET`` and ``PSCI_SYSTEM_OFF``. The last one doesn't really turn
|
||||||
the system off, it simply reboots it and asks the VideoCore firmware to keep it
|
the system off, it simply reboots it and asks the VideoCore firmware to keep it
|
||||||
in a low power mode permanently.
|
in a low power mode permanently.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
Trusted Firmware-A for Socionext UniPhier SoCs
|
Socionext UniPhier
|
||||||
==============================================
|
==================
|
||||||
|
|
||||||
|
|
||||||
Socionext UniPhier Armv8-A SoCs use Trusted Firmware-A (TF-A) as the secure
|
Socionext UniPhier Armv8-A SoCs use Trusted Firmware-A (TF-A) as the secure
|
||||||
world firmware, supporting BL2 and BL31.
|
world firmware, supporting BL2 and BL31.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for STM32MP1
|
STMicroelectronics STM32MP1
|
||||||
===============================
|
===========================
|
||||||
|
|
||||||
STM32MP1 is a microprocessor designed by STMicroelectronics
|
STM32MP1 is a microprocessor designed by STMicroelectronics
|
||||||
based on a dual Arm Cortex-A7.
|
based on a dual Arm Cortex-A7.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for Socionext Synquacer SoCs
|
Socionext Synquacer
|
||||||
===============================================
|
===================
|
||||||
|
|
||||||
Socionext's Synquacer SC2A11 is a multi-core processor with 24 cores of Arm
|
Socionext's Synquacer SC2A11 is a multi-core processor with 24 cores of Arm
|
||||||
Cortex-A53. The Developerbox, of 96boards, is a platform that contains this
|
Cortex-A53. The Developerbox, of 96boards, is a platform that contains this
|
||||||
|
@ -9,10 +9,10 @@ the moment.
|
||||||
More information are listed in `link`_.
|
More information are listed in `link`_.
|
||||||
|
|
||||||
How to build
|
How to build
|
||||||
============
|
------------
|
||||||
|
|
||||||
Code Locations
|
Code Locations
|
||||||
--------------
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Trusted Firmware-A:
|
- Trusted Firmware-A:
|
||||||
`link <https://github.com/ARM-software/arm-trusted-firmware>`__
|
`link <https://github.com/ARM-software/arm-trusted-firmware>`__
|
||||||
|
@ -27,12 +27,12 @@ Code Locations
|
||||||
`link <https://github.com/tianocore/edk2-non-osi>`__
|
`link <https://github.com/tianocore/edk2-non-osi>`__
|
||||||
|
|
||||||
Boot Flow
|
Boot Flow
|
||||||
---------
|
~~~~~~~~~
|
||||||
|
|
||||||
SCP firmware --> TF-A BL31 --> UEFI(edk2)
|
SCP firmware --> TF-A BL31 --> UEFI(edk2)
|
||||||
|
|
||||||
Build Procedure
|
Build Procedure
|
||||||
---------------
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Firstly, in addition to the “normal” build tools you will also need a
|
- Firstly, in addition to the “normal” build tools you will also need a
|
||||||
few specialist tools. On a Debian or Ubuntu operating system try:
|
few specialist tools. On a Debian or Ubuntu operating system try:
|
||||||
|
@ -98,7 +98,7 @@ Build Procedure
|
||||||
Note #2: Replace -b RELEASE with -b DEBUG to build a debug.
|
Note #2: Replace -b RELEASE with -b DEBUG to build a debug.
|
||||||
|
|
||||||
Install the System Firmware
|
Install the System Firmware
|
||||||
---------------------------
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Providing your Developerbox is fully working and has on operating system
|
- Providing your Developerbox is fully working and has on operating system
|
||||||
installed then you can adopt your the newly compiled system firmware using
|
installed then you can adopt your the newly compiled system firmware using
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
Trusted Firmware-A for Texas Instruments K3 SoCs
|
Texas Instruments K3
|
||||||
================================================
|
====================
|
||||||
|
|
||||||
Trusted Firmware-A (TF-A) implements the EL3 firmware layer for Texas Instruments K3 SoCs.
|
Trusted Firmware-A (TF-A) implements the EL3 firmware layer for Texas Instruments K3 SoCs.
|
||||||
|
|
||||||
Boot Flow
|
Boot Flow
|
||||||
---------
|
---------
|
||||||
|
|
||||||
R5(U-Boot) --> TF-A BL31 --> BL32(OP-TEE) --> TF-A BL31 --> BL33(U-Boot) --> Linux
|
::
|
||||||
|
|
||||||
|
R5(U-Boot) --> TF-A BL31 --> BL32(OP-TEE) --> TF-A BL31 --> BL33(U-Boot) --> Linux
|
||||||
\
|
\
|
||||||
Optional direct to Linux boot
|
Optional direct to Linux boot
|
||||||
\
|
\
|
||||||
--> BL33(Linux)
|
--> BL33(Linux)
|
||||||
|
|
||||||
Texas Instruments K3 SoCs contain an R5 processor used as the boot master, it
|
Texas Instruments K3 SoCs contain an R5 processor used as the boot master, it
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for i.MX7 WaRP7
|
NXP i.MX7 WaRP7
|
||||||
==================================
|
===============
|
||||||
|
|
||||||
The Trusted Firmware-A port for the i.MX7Solo WaRP7 implements BL2 at EL3.
|
The Trusted Firmware-A port for the i.MX7Solo WaRP7 implements BL2 at EL3.
|
||||||
The i.MX7S contains a BootROM with a High Assurance Boot (HAB) functionality.
|
The i.MX7S contains a BootROM with a High Assurance Boot (HAB) functionality.
|
||||||
|
@ -7,21 +7,23 @@ This functionality provides a mechanism for establishing a root-of-trust from
|
||||||
the reset vector to the command-line in user-space.
|
the reset vector to the command-line in user-space.
|
||||||
|
|
||||||
Boot Flow
|
Boot Flow
|
||||||
=========
|
---------
|
||||||
|
|
||||||
BootROM --> TF-A BL2 --> BL32(OP-TEE) --> BL33(U-Boot) --> Linux
|
BootROM --> TF-A BL2 --> BL32(OP-TEE) --> BL33(U-Boot) --> Linux
|
||||||
|
|
||||||
In the WaRP7 port we encapsulate OP-TEE, DTB and U-Boot into a FIP. This FIP is
|
In the WaRP7 port we encapsulate OP-TEE, DTB and U-Boot into a FIP. This FIP is
|
||||||
expected and required
|
expected and required
|
||||||
|
|
||||||
# Build Instructions
|
Build Instructions
|
||||||
|
------------------
|
||||||
|
|
||||||
We need to use a file generated by u-boot in order to generate a .imx image the
|
We need to use a file generated by u-boot in order to generate a .imx image the
|
||||||
BootROM will boot. It is therefore _required_ to build u-boot before TF-A and
|
BootROM will boot. It is therefore _required_ to build u-boot before TF-A and
|
||||||
furthermore it is _recommended_ to use the mkimage in the u-boot/tools directory
|
furthermore it is _recommended_ to use the mkimage in the u-boot/tools directory
|
||||||
to generate the TF-A .imx image.
|
to generate the TF-A .imx image.
|
||||||
|
|
||||||
## U-Boot:
|
U-Boot
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
https://git.linaro.org/landing-teams/working/mbl/u-boot.git
|
https://git.linaro.org/landing-teams/working/mbl/u-boot.git
|
||||||
|
|
||||||
|
@ -31,7 +33,8 @@ https://git.linaro.org/landing-teams/working/mbl/u-boot.git
|
||||||
make warp7_bl33_defconfig;
|
make warp7_bl33_defconfig;
|
||||||
make u-boot.imx arch=ARM CROSS_COMPILE=arm-linux-gnueabihf-
|
make u-boot.imx arch=ARM CROSS_COMPILE=arm-linux-gnueabihf-
|
||||||
|
|
||||||
## OP-TEE:
|
OP-TEE
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
https://github.com/OP-TEE/optee_os.git
|
https://github.com/OP-TEE/optee_os.git
|
||||||
|
|
||||||
|
@ -39,7 +42,8 @@ https://github.com/OP-TEE/optee_os.git
|
||||||
|
|
||||||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- PLATFORM=imx PLATFORM_FLAVOR=mx7swarp7 ARCH=arm CFG_PAGEABLE_ADDR=0 CFG_DT_ADDR=0x83000000 CFG_NS_ENTRY_ADDR=0x87800000
|
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- PLATFORM=imx PLATFORM_FLAVOR=mx7swarp7 ARCH=arm CFG_PAGEABLE_ADDR=0 CFG_DT_ADDR=0x83000000 CFG_NS_ENTRY_ADDR=0x87800000
|
||||||
|
|
||||||
## TF-A:
|
TF-A
|
||||||
|
~~~~
|
||||||
|
|
||||||
https://github.com/ARM-software/arm-trusted-firmware.git
|
https://github.com/ARM-software/arm-trusted-firmware.git
|
||||||
|
|
||||||
|
@ -75,7 +79,8 @@ It is also assumed copy of mbedtls is available on the path path ../mbedtls
|
||||||
|
|
||||||
/path/to/u-boot/tools/mkimage -n /path/to/u-boot/u-boot.cfgout -T imximage -e 0x9df00000 -d ./build/warp7/debug/bl2.bin ./build/warp7/debug/bl2.bin.imx
|
/path/to/u-boot/tools/mkimage -n /path/to/u-boot/u-boot.cfgout -T imximage -e 0x9df00000 -d ./build/warp7/debug/bl2.bin ./build/warp7/debug/bl2.bin.imx
|
||||||
|
|
||||||
## FIP:
|
FIP
|
||||||
|
~~~
|
||||||
|
|
||||||
.. code:: shell
|
.. code:: shell
|
||||||
|
|
||||||
|
@ -110,8 +115,8 @@ It is also assumed copy of mbedtls is available on the path path ../mbedtls
|
||||||
--trusted-key-cert fiptool_images/trusted-key-cert.key-crt \
|
--trusted-key-cert fiptool_images/trusted-key-cert.key-crt \
|
||||||
--tb-fw-cert fiptool_images/trusted-boot-fw.key-crt warp7.fip
|
--tb-fw-cert fiptool_images/trusted-boot-fw.key-crt warp7.fip
|
||||||
|
|
||||||
# Deploy Images
|
Deploy Images
|
||||||
|
-------------
|
||||||
|
|
||||||
First place the WaRP7 into UMS mode in u-boot this should produce an entry in
|
First place the WaRP7 into UMS mode in u-boot this should produce an entry in
|
||||||
/dev like /dev/disk/by-id/usb-Linux_UMS_disk_0_WaRP7-0xf42400d3000001d4-0\:0
|
/dev like /dev/disk/by-id/usb-Linux_UMS_disk_0_WaRP7-0xf42400d3000001d4-0\:0
|
||||||
|
@ -138,7 +143,8 @@ Remember to umount the USB device pefore proceeding
|
||||||
sudo umount /dev/disk/by-id/usb-Linux_UMS_disk_0_WaRP7-0xf42400d3000001d4-0\:0*
|
sudo umount /dev/disk/by-id/usb-Linux_UMS_disk_0_WaRP7-0xf42400d3000001d4-0\:0*
|
||||||
|
|
||||||
|
|
||||||
# Signing BL2
|
Signing BL2
|
||||||
|
-----------
|
||||||
|
|
||||||
A further step is to sign BL2.
|
A further step is to sign BL2.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for Xilinx Versal
|
Xilinx Versal
|
||||||
================================
|
=============
|
||||||
|
|
||||||
Trusted Firmware-A implements the EL3 firmware layer for Xilinx Versal.
|
Trusted Firmware-A implements the EL3 firmware layer for Xilinx Versal.
|
||||||
The platform only uses the runtime part of TF-A as Xilinx Versal already has a
|
The platform only uses the runtime part of TF-A as Xilinx Versal already has a
|
||||||
|
@ -19,7 +19,9 @@ To build ATF for different platform (for now its just versal virtual "versal_vir
|
||||||
make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal VERSAL_PLATFORM=versal_virt bl31
|
make RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=versal VERSAL_PLATFORM=versal_virt bl31
|
||||||
```
|
```
|
||||||
|
|
||||||
# Xilinx Versal platform specific build options
|
Xilinx Versal platform specific build options
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
* `VERSAL_ATF_MEM_BASE`: Specifies the base address of the bl31 binary.
|
* `VERSAL_ATF_MEM_BASE`: Specifies the base address of the bl31 binary.
|
||||||
* `VERSAL_ATF_MEM_SIZE`: Specifies the size of the memory region of the bl31 binary.
|
* `VERSAL_ATF_MEM_SIZE`: Specifies the size of the memory region of the bl31 binary.
|
||||||
* `VERSAL_BL32_MEM_BASE`: Specifies the base address of the bl32 binary.
|
* `VERSAL_BL32_MEM_BASE`: Specifies the base address of the bl32 binary.
|
|
@ -1,5 +1,5 @@
|
||||||
Trusted Firmware-A for Xilinx Zynq UltraScale+ MPSoC
|
Xilinx Zynq UltraScale+ MPSoC
|
||||||
====================================================
|
=============================
|
||||||
|
|
||||||
Trusted Firmware-A (TF-A) implements the EL3 firmware layer for Xilinx Zynq
|
Trusted Firmware-A (TF-A) implements the EL3 firmware layer for Xilinx Zynq
|
||||||
UltraScale + MPSoC.
|
UltraScale + MPSoC.
|
||||||
|
@ -23,7 +23,7 @@ To build bl32 TSP you have to rebuild bl31 too:
|
||||||
make CROSS_COMPILE=aarch64-none-elf- PLAT=zynqmp SPD=tspd bl31 bl32
|
make CROSS_COMPILE=aarch64-none-elf- PLAT=zynqmp SPD=tspd bl31 bl32
|
||||||
|
|
||||||
ZynqMP platform specific build options
|
ZynqMP platform specific build options
|
||||||
======================================
|
--------------------------------------
|
||||||
|
|
||||||
- ``ZYNQMP_ATF_MEM_BASE``: Specifies the base address of the bl31 binary.
|
- ``ZYNQMP_ATF_MEM_BASE``: Specifies the base address of the bl31 binary.
|
||||||
- ``ZYNQMP_ATF_MEM_SIZE``: Specifies the size of the memory region of the bl31 binary.
|
- ``ZYNQMP_ATF_MEM_SIZE``: Specifies the size of the memory region of the bl31 binary.
|
||||||
|
@ -36,7 +36,7 @@ ZynqMP platform specific build options
|
||||||
- ``cadence1`` : Cadence UART 1
|
- ``cadence1`` : Cadence UART 1
|
||||||
|
|
||||||
FSBL->TF-A Parameter Passing
|
FSBL->TF-A Parameter Passing
|
||||||
===========================
|
----------------------------
|
||||||
|
|
||||||
The FSBL populates a data structure with image information for TF-A. TF-A uses
|
The FSBL populates a data structure with image information for TF-A. TF-A uses
|
||||||
that data to hand off to the loaded images. The address of the handoff data
|
that data to hand off to the loaded images. The address of the handoff data
|
||||||
|
@ -45,7 +45,7 @@ register is free to be used by other software once TF-A has brought up
|
||||||
further firmware images.
|
further firmware images.
|
||||||
|
|
||||||
Power Domain Tree
|
Power Domain Tree
|
||||||
=================
|
-----------------
|
||||||
|
|
||||||
The following power domain tree represents the power domain model used by TF-A
|
The following power domain tree represents the power domain model used by TF-A
|
||||||
for ZynqMP:
|
for ZynqMP:
|
||||||
|
|
Loading…
Add table
Reference in a new issue