3.2. Linux Boot FlowΒΆ
On K3 architecture based devices, ROM supports boot only via MCU(R5). This means that bootloader has to run on R5 core. In order to meet this constraint, keeping safety in picture and to have faster boot time, the Linux boot architecture is designed as below:
+------------------------------------------------------------------------+
| DMSC(M3) | R5 | ARM64(A53) |
+------------------------------------------------------------------------+
| +---------+ | | |
| | Reset | | | |
| +---------+ | | |
| : | | |
| +---------+ | +------------+ | |
| | *ROM* |---------|-->| Reset rls | | |
| +---------+ | +------------+ | |
| | | | : | |
| | ROM | | : | |
| |services | | : | |
| | | | +-------------+ | |
| | | | | *R5 ROM* | | |
| | | | +-------------+ | |
| | |<--------|---| Load & auth | | |
| | | | | tiboot3.bin | | |
| | | | | (R5 SPL + | | |
| | Start | | | SYSFW image)| | |
| | SYSFW | | +-------------+ | |
| +--------+ | : | |
| : | : | |
| +---------+ | : | |
| | *SYSFW* | | +-------------+ | |
| | | | | *R5 SPL* | | |
| | | | +-------------+ | |
| | | | | DDR | | |
| | | | | Config | | |
| | | | +-------------+ | |
| | |<--------|---| Start A53 | | |
| | | | | and Reset | | |
| | | | +-------------+ | |
| | | | | +-----------+ |
| | |---------|-----------------------|---->| Reset rls | |
| | | | | +-----------+ |
| | DMSC | | | : |
| |Services | | | +-----------+ |
| | |<--------|-----------------------|---->|*ATF/OPTEE*| |
| | | | | +-----------+ |
| | | | | : |
| | | | | +-----------+ |
| | |<--------|-----------------------|---->| *A53 SPL* | |
| | | | | +-----------+ |
| | | | | | Load | |
| | | | | | u-boot.img| |
| | | | | +-----------+ |
| | | | | : |
| | | | | +-----------+ |
| | |<--------|-----------------------|---->| *U-Boot* | |
| | | | | +-----------+ |
| | | | | | prompt | |
| | | | | +-----------+ |
| | | | | | Load | |
| | | | | |Kernel/DTB | |
| | | | | +-----------+ |
| | | | | : |
| | | | | +-----------+ |
| | |<--------|-----------------------|---->| *Linux* | |
| | | | | +-----------+ |
| +---------+ | | |
| | | |
+------------------------------------------------------------------------+
Here DMSC acts as master and provides all the critical services. R5/ARM64 requests DMSC to get these services done as shown in the above diagram.