3.2. Linux Boot FlowΒΆ

On K3 architecture based devices, the ROM only supports boot via R5. This means that the bootloader has to run on the R5 core. The Linux boot architecture is shown in the below figure. This boot architecture keeps safety in mind, while also allowing for a faster boot time.

+------------------------------------------------------------------------+
|      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*   |     |
|    |         |         |                       |     +-----------+     |
|    +---------+         |                       |                       |
|                        |                       |                       |
+------------------------------------------------------------------------+

The DMSC acts as master and provides all the critical services. R5 & ARM64 requests DMSC to get these services as shown in the above diagram.