xref: /rk3399_ARM-atf/docs/plat/rockchip.rst (revision 04b2fb42b171e3fbf2ef823558ac5b0119663dc7)
124dba2b3SPaul BeesleyRockchip SoCs
224dba2b3SPaul Beesley=============
355617251SHeiko Stuebner
455617251SHeiko StuebnerTrusted Firmware-A supports a number of Rockchip ARM SoCs from both
555617251SHeiko StuebnerAARCH32 and AARCH64 fields.
655617251SHeiko Stuebner
755617251SHeiko StuebnerThis includes right now:
8010d6ae3SXiaoDong Huang-  px30: Quad-Core Cortex-A53
955617251SHeiko Stuebner-  rk3288: Quad-Core Cortex-A17 (past A12)
1055617251SHeiko Stuebner-  rk3328: Quad-Core Cortex-A53
1155617251SHeiko Stuebner-  rk3368: Octa-Core Cortex-A53
1255617251SHeiko Stuebner-  rk3399: Hexa-Core Cortex-A53/A72
139fd9f1d0Sshengfei Xu-  rk3566/rk3568: Quad-Core Cortex-A55
14*036935a8SXiaoDong Huang-  rk3576: Octa-Core Cortex-A53/A72
15e3ec6ff4SXiaoDong Huang-  rk3588: Octa-Core Cortex-A55/A76
1655617251SHeiko Stuebner
1755617251SHeiko Stuebner
1855617251SHeiko StuebnerBoot Sequence
1924dba2b3SPaul Beesley-------------
2055617251SHeiko Stuebner
2155617251SHeiko StuebnerFor AARCH32:
2255617251SHeiko Stuebner    Bootrom --> BL1/BL2 --> BL32 --> BL33 --> Linux kernel
2355617251SHeiko Stuebner
2455617251SHeiko StuebnerFor AARCH64:
2555617251SHeiko Stuebner    Bootrom --> BL1/BL2 --> BL31 --> BL33 --> Linux kernel
2655617251SHeiko Stuebner
2755617251SHeiko StuebnerBL1/2 and BL33 can currently be supplied from either:
2855617251SHeiko Stuebner-  Coreboot + Depthcharge
2955617251SHeiko Stuebner-  U-Boot - either separately as TPL+SPL or only SPL
3055617251SHeiko Stuebner
3155617251SHeiko Stuebner
3255617251SHeiko StuebnerHow to build
3324dba2b3SPaul Beesley------------
3455617251SHeiko Stuebner
3555617251SHeiko StuebnerRockchip SoCs expect TF-A's BL31 (AARCH64) or BL32 (AARCH32) to get
3655617251SHeiko Stuebnerintegrated with other boot software like U-Boot or Coreboot, so only
3755617251SHeiko Stuebnerthese images need to get build from the TF-A repository.
3855617251SHeiko Stuebner
3955617251SHeiko StuebnerFor AARCH64 architectures the build command looks like
4055617251SHeiko Stuebner
416611e81eSMichael Trimarchi    make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31
4255617251SHeiko Stuebner
4355617251SHeiko Stuebnerwhile AARCH32 needs a slightly different command
4455617251SHeiko Stuebner
4555617251SHeiko Stuebner    make ARCH=aarch32 CROSS_COMPILE=arm-linux-gnueabihf- PLAT=rk3288 AARCH32_SP=sp_min bl32
4655617251SHeiko Stuebner
4755617251SHeiko StuebnerBoth need replacing the PLAT argument with the platform from above you
4855617251SHeiko Stuebnerwant to build for and the CROSS_COMPILE argument with you cross-
4955617251SHeiko Stuebnercompilation toolchain.
5055617251SHeiko Stuebner
5155617251SHeiko Stuebner
5255617251SHeiko StuebnerHow to deploy
5324dba2b3SPaul Beesley-------------
5455617251SHeiko Stuebner
5555617251SHeiko StuebnerBoth upstream U-Boot and Coreboot projects contain instructions on where
5655617251SHeiko Stuebnerto put the built images during their respective build process.
5755617251SHeiko StuebnerSo after successfully building TF-A just follow their build instructions
5855617251SHeiko Stuebnerto continue.
59