blob: cee35e42505e2e1b9fa71c79c309ab1e26c79dca [file] [log] [blame]
Paul Beesleyf3653a62019-05-22 11:22:44 +01001Rockchip SoCs
2=============
Heiko Stuebner2333a512019-04-19 12:35:47 +02003
4Trusted Firmware-A supports a number of Rockchip ARM SoCs from both
5AARCH32 and AARCH64 fields.
6
7This includes right now:
8- rk3288: Quad-Core Cortex-A17 (past A12)
9- rk3328: Quad-Core Cortex-A53
10- rk3368: Octa-Core Cortex-A53
11- rk3399: Hexa-Core Cortex-A53/A72
12
13
14Boot Sequence
Paul Beesleyf3653a62019-05-22 11:22:44 +010015-------------
Heiko Stuebner2333a512019-04-19 12:35:47 +020016
17For AARCH32:
18 Bootrom --> BL1/BL2 --> BL32 --> BL33 --> Linux kernel
19
20For AARCH64:
21 Bootrom --> BL1/BL2 --> BL31 --> BL33 --> Linux kernel
22
23BL1/2 and BL33 can currently be supplied from either:
24- Coreboot + Depthcharge
25- U-Boot - either separately as TPL+SPL or only SPL
26
27
28How to build
Paul Beesleyf3653a62019-05-22 11:22:44 +010029------------
Heiko Stuebner2333a512019-04-19 12:35:47 +020030
31Rockchip SoCs expect TF-A's BL31 (AARCH64) or BL32 (AARCH32) to get
32integrated with other boot software like U-Boot or Coreboot, so only
33these images need to get build from the TF-A repository.
34
35For AARCH64 architectures the build command looks like
36
37 make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl32
38
39while AARCH32 needs a slightly different command
40
41 make ARCH=aarch32 CROSS_COMPILE=arm-linux-gnueabihf- PLAT=rk3288 AARCH32_SP=sp_min bl32
42
43Both need replacing the PLAT argument with the platform from above you
44want to build for and the CROSS_COMPILE argument with you cross-
45compilation toolchain.
46
47
48How to deploy
Paul Beesleyf3653a62019-05-22 11:22:44 +010049-------------
Heiko Stuebner2333a512019-04-19 12:35:47 +020050
51Both upstream U-Boot and Coreboot projects contain instructions on where
52to put the built images during their respective build process.
53So after successfully building TF-A just follow their build instructions
54to continue.