TSEC Firmware: Difference between revisions
No edit summary |
No edit summary |
||
Line 211: | Line 211: | ||
Before returning, this stage writes back to the host (using MMIO registers) and sets the key used by the first bootloader. | Before returning, this stage writes back to the host (using MMIO registers) and sets the key used by the first bootloader. | ||
[6.2.0+] During this stage, [[#Key data|key data]] is loaded and execution jumps to [[# | [6.2.0+] During this stage, [[#Key data|key data]] is loaded and execution jumps to [[#SecureBootLdr|SecureBootLdr]]. | ||
=== Initialization === | === Initialization === | ||
Line 913: | Line 913: | ||
== SecureBootLdr == | == SecureBootLdr == | ||
[6.2.0+] This was introduced to try to recover the secure boot from the RCM vulnerability. | |||
This stage starts by authenticating and executing [[#KeygenLdr|KeygenLdr]] which in turn authenticates, decrypts and executes [[#Keygen|Keygen]] (both blobs remain unchanged from previous firmware versions). | This stage starts by authenticating and executing [[#KeygenLdr|KeygenLdr]] which in turn authenticates, decrypts and executes [[#Keygen|Keygen]] (both blobs remain unchanged from previous firmware versions). | ||
After the TSEC key has been generated, execution returns to this stage which then parses and executes [[#SecureBoot|SecureBoot]]. | After the TSEC key has been generated, execution returns to this stage which then parses and executes [[#SecureBoot|SecureBoot]]. | ||
Line 1,071: | Line 1,073: | ||
== SecureBoot == | == SecureBoot == | ||
[6.2.0+] This was introduced to try to recover the secure boot from the RCM vulnerability. | |||
This stage prepares the stack then authenticates, decrypts and executes the SecureBoot blob's Falcon OS image. | This stage prepares the stack then authenticates, decrypts and executes the SecureBoot blob's Falcon OS image. | ||