fusee: Implement BootConfig and Boot Reason handling.
This commit is contained in:
@@ -138,9 +138,9 @@ void bootconfig_get_package2_hash_for_recovery(uint64_t *out_hash) {
|
||||
}
|
||||
|
||||
bool bootconfig_is_recovery_boot(void) {
|
||||
return (g_boot_reason.is_recovery_boot != 0);
|
||||
return ((g_boot_reason.bootloader_attribute & 0x01) != 0);
|
||||
}
|
||||
|
||||
uint64_t bootconfig_get_boot_reason(void) {
|
||||
return ((uint64_t)g_boot_reason.boot_reason_high << 24) | (g_boot_reason.boot_reason_low & 0xFFFFFF);
|
||||
return ((uint64_t)g_boot_reason.boot_reason_state << 24) | (g_boot_reason.boot_reason_value & 0xFFFFFF);
|
||||
}
|
||||
|
||||
@@ -34,11 +34,12 @@ static inline bootconfig_t *get_loaded_bootconfig(void) {
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
uint64_t _0x00;
|
||||
uint32_t _0x08;
|
||||
uint32_t is_recovery_boot;
|
||||
uint32_t boot_reason_low;
|
||||
uint32_t boot_reason_high;
|
||||
uint32_t bootloader_version;
|
||||
uint32_t bootloader_start_block;
|
||||
uint32_t bootloader_start_page;
|
||||
uint32_t bootloader_attribute;
|
||||
uint32_t boot_reason_value;
|
||||
uint32_t boot_reason_state;
|
||||
} boot_reason_t;
|
||||
|
||||
void bootconfig_load_and_verify(const bootconfig_t *bootconfig);
|
||||
|
||||
Reference in New Issue
Block a user