blob: a1e06590a0b735ff5b7f6abea1ad61b4a0fc98af [file] [log] [blame]
Paul Beesleyf3653a62019-05-22 11:22:44 +01001Allwinner ARMv8 SoCs
2====================
Samuel Holland74383202017-08-12 04:07:39 -05003
4Trusted Firmware-A (TF-A) implements the EL3 firmware layer for Allwinner
5SoCs with ARMv8 cores. Only BL31 is used to provide proper EL3 setup and
6PSCI runtime services.
Andre Przywara4416ba82018-06-22 00:33:28 +01007
Samuel Holland74383202017-08-12 04:07:39 -05008U-Boot's SPL acts as a loader, loading both BL31 and BL33 (typically U-Boot).
9Loading is done from SD card, eMMC or SPI flash, also via an USB debug
10interface (FEL).
Andre Przywara4416ba82018-06-22 00:33:28 +010011
Samuel Holland74383202017-08-12 04:07:39 -050012BL31 lives in SRAM A2, which is documented to be accessible from secure
13world only.
14
15Current limitations:
16
17- Missing PMIC support
18
19After building bl31.bin, the binary must be fed to the U-Boot build system
20to include it in the FIT image that the SPL loader will process.
21bl31.bin can be either copied (or sym-linked) into U-Boot's root directory,
22or the environment variable BL31 must contain the binary's path.
23See the respective `U-Boot documentation`_ for more details.
24
Andre Przywaraaa26f532017-12-08 01:27:02 +000025To build for machines with an A64 or H5 SoC:
Samuel Holland74383202017-08-12 04:07:39 -050026
Paul Beesley493e3492019-03-13 15:11:04 +000027.. code:: shell
Samuel Holland74383202017-08-12 04:07:39 -050028
29 make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 DEBUG=1 bl31
30
Andre Przywaraaa26f532017-12-08 01:27:02 +000031To build for machines with an H6 SoC:
32
Paul Beesley493e3492019-03-13 15:11:04 +000033.. code:: shell
Andre Przywaraaa26f532017-12-08 01:27:02 +000034
35 make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h6 DEBUG=1 bl31
36
Samuel Holland74383202017-08-12 04:07:39 -050037.. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD
Amit Singh Tomar2f372242018-06-20 00:44:50 +053038
39Trusted OS dispatcher
Paul Beesleyf3653a62019-05-22 11:22:44 +010040---------------------
Amit Singh Tomar2f372242018-06-20 00:44:50 +053041
42One can boot Trusted OS(OP-TEE OS, bl32 image) along side bl31 image on Allwinner A64.
43
44In order to include the 'opteed' dispatcher in the image, pass 'SPD=opteed' on the command line
45while compiling the bl31 image and make sure the loader (SPL) loads the Trusted OS binary to
46the beginning of DRAM (0x40000000).