blob: d82380ddf9a881b01207e7f4b1b3bff2aaa598ce [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
Mark Dykesef3a4562020-01-08 20:37:18 +000029 make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 DEBUG=1 bl31
Samuel Holland74383202017-08-12 04:07:39 -050030
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
Mark Dykesef3a4562020-01-08 20:37:18 +000035 make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h6 DEBUG=1 bl31
Andre Przywaraaa26f532017-12-08 01:27:02 +000036
Sandrine Bailleux4e824722020-07-01 13:53:07 +020037.. _U-Boot documentation: https://gitlab.denx.de/u-boot/u-boot/-/blob/master/board/sunxi/README.sunxi64
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).