1. Архитектура загрузки MCom-03

Предупреждение

Этот документ не является достоверным. Описанные свойства могут не поддерживаться в ПО или поддерживаться не так как описано в документе. Свойства могут измениться при финальной реализации или быть не реализованы совсем.

Архитектура загрузки MCom-03 разработана, исходя из использования AArch64 на ARM CPU.

Диаграмма загрузки приведена на рисунке Диаграмма последовательности загрузки MCom-03.

  1. При снятии сброса RISC0 начинает исполнять BootROM.

  2. BootROM загружает инициализатор DDR. После инициализации DDR управление возвращается в BootROM.

  3. BootROM загружает SBL и передаёт ему управление.

  4. SBL загружает образ ПО для RISC1 и запускает его.

  5. SBL загружает образы ПО для ARM и запускает монитор безопасности ARM TZ (secure monitor) в Secure EL3.

  6. SBL загружает образ ПО для RISC0 и передаёт ему управление.

  7. Монитор безопасности ARM TZ запускает ПО безопасности (secure payload) в Secure EL1 и ожидает сообщения о его завершении его начальной инициализации.

  8. Монитор безопасности ARM TZ запускает небезопасный загрузчик в Non-secure EL2.

  9. Небезопасный загрузчик загружает ядро Linux и передаёт ему управление.

box RISC0
    participant BootROM
    participant "DDR initializer" as DDRInit
    participant SBL
    participant "RISC0\nTrusted OS" as RISC0TOS
end box

box "RISC1"
    participant "RISC1\nTrusted OS" as RISC1TOS
end box

box "Secure ARM EL3"
    participant "TF-A BL31\nSecure monitor" as BL31
end box

box "Secure ARM EL1"
    participant "TF-A BL32\nTrusted OS" as BL32
end box

box "Non-secure ARM EL2/EL1"
    participant "BL33/U-Boot" as BL33
    participant Linux
end box

[-> BootROM: Reset
activate BootROM

BootROM -> DDRInit **: Load &\nauthenticate
BootROM -> DDRInit ++: Run
return
destroy DDRInit

BootROM -> SBL **: Load & authenticate
BootROM -> SBL: Handoff
destroy BootROM
activate SBL

SBL -> SBL ++: RISC1 loader
SBL -> RISC1TOS **: Load & authenticate
SBL -> RISC1TOS ++: Run
deactivate SBL

SBL -> SBL ++: ARM loader
SBL -> BL31 **: Load & authenticate
SBL -> BL32 **: Load & authenticate
SBL -> BL33 **: Load & authenticate
SBL -> BL31 ++: Prepare images info & run
deactivate SBL

SBL -> RISC0TOS **: Load &\nauthenticate
SBL -> RISC0TOS: Handoff
destroy SBL
activate RISC0TOS

BL31 -> BL32 ++: SPD runs
' note left: SPD is Secure Payload Dispatcher
note over BL31: Waiting
BL32 --> BL31: Initialized

BL31 -> BL33 --
activate BL33
note over BL31: Resident

BL33 -> Linux **: Load
BL33 -> Linux: Handoff
deactivate BL33
activate Linux

note over Linux: Trusted OS supplicants\nare initialized

Linux --> RISC0TOS: Supplicant is ready
Linux --> RISC1TOS: Supplicant is ready
Linux --> BL32: Supplicant is ready

Рис. 1.2 Диаграмма последовательности загрузки MCom-03