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