mirror of
https://github.com/CTCaer/hekate
synced 2024-12-22 11:21:23 +00:00
hos: exo: fatal: add check for mixed atmosphere sysmods
Normally that can only happen if atmosphere is updated and config uses fusee-secondary instead of package3. In that case boot2 sysmodule (0100000000000008) will fatal.
This commit is contained in:
parent
a2d18f0848
commit
bcc2512cb6
1 changed files with 10 additions and 4 deletions
|
@ -246,11 +246,11 @@ void config_exosphere(launch_ctxt_t *ctxt, u32 warmboot_base)
|
||||||
// Parse usb mtim settings. Avoid parsing if it's overridden.
|
// Parse usb mtim settings. Avoid parsing if it's overridden.
|
||||||
if (ctxt->fss0_main_path && !ctxt->exo_ctx.usb3_force)
|
if (ctxt->fss0_main_path && !ctxt->exo_ctx.usb3_force)
|
||||||
{
|
{
|
||||||
char set_path[256];
|
char settings_path[256];
|
||||||
strcpy(set_path, ctxt->fss0_main_path);
|
strcpy(settings_path, ctxt->fss0_main_path);
|
||||||
strcat(set_path, "config/system_settings.ini");
|
strcat(settings_path, "config/system_settings.ini");
|
||||||
LIST_INIT(sys_settings);
|
LIST_INIT(sys_settings);
|
||||||
if (ini_parse(&ini_sections, set_path, false))
|
if (ini_parse(&ini_sections, settings_path, false))
|
||||||
{
|
{
|
||||||
LIST_FOREACH_ENTRY(ini_sec_t, ini_sec, &ini_sections, link)
|
LIST_FOREACH_ENTRY(ini_sec_t, ini_sec, &ini_sections, link)
|
||||||
{
|
{
|
||||||
|
@ -416,6 +416,8 @@ static const char *get_error_desc(u32 error_desc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define HOS_PID_BOOT2 0x8
|
||||||
|
|
||||||
void secmon_exo_check_panic()
|
void secmon_exo_check_panic()
|
||||||
{
|
{
|
||||||
volatile atm_fatal_error_ctx *rpt = (atm_fatal_error_ctx *)ATM_FATAL_ERR_CTX_ADDR;
|
volatile atm_fatal_error_ctx *rpt = (atm_fatal_error_ctx *)ATM_FATAL_ERR_CTX_ADDR;
|
||||||
|
@ -431,6 +433,10 @@ void secmon_exo_check_panic()
|
||||||
WPRINTFARGS("Title ID: %08X%08X", (u32)((u64)rpt->title_id >> 32), (u32)rpt->title_id);
|
WPRINTFARGS("Title ID: %08X%08X", (u32)((u64)rpt->title_id >> 32), (u32)rpt->title_id);
|
||||||
WPRINTFARGS("Error: %s (0x%x)\n", get_error_desc(rpt->error_desc), rpt->error_desc);
|
WPRINTFARGS("Error: %s (0x%x)\n", get_error_desc(rpt->error_desc), rpt->error_desc);
|
||||||
|
|
||||||
|
// Check if mixed atmosphere sysmodules.
|
||||||
|
if ((u32)rpt->title_id == HOS_PID_BOOT2)
|
||||||
|
WPRINTF("Is fss0 path correct?\n");
|
||||||
|
|
||||||
// Save context to the SD card.
|
// Save context to the SD card.
|
||||||
char filepath[0x40];
|
char filepath[0x40];
|
||||||
f_mkdir("atmosphere/fatal_errors");
|
f_mkdir("atmosphere/fatal_errors");
|
||||||
|
|
Loading…
Reference in a new issue