[Auto boot] Change order of invoking sept

This is important, otherwise it can break tools like memloader.

Until a semi-usb init solution is found, hekate will show bootlogo and allow you to go to menu.
If >= 7.0.0 after that, it will run sept and then show logo again without a wait. For as long as rebuilding the boot process takes.
This commit is contained in:
Kostas Missos 2019-03-08 00:35:43 +02:00
parent bafc6f4a1d
commit 4f4df9ccd1
2 changed files with 13 additions and 14 deletions

View file

@ -695,11 +695,8 @@ out:
void auto_launch_firmware() void auto_launch_firmware()
{ {
if (!(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH)) if (!h_cfg.sept_run)
{
auto_launch_update(); auto_launch_update();
gfx_con.mute = true;
}
u8 *BOOTLOGO = NULL; u8 *BOOTLOGO = NULL;
char *payload_path = NULL; char *payload_path = NULL;
@ -719,6 +716,9 @@ void auto_launch_firmware()
bool bootlogoFound = false; bool bootlogoFound = false;
char *bootlogoCustomEntry = NULL; char *bootlogoCustomEntry = NULL;
if (!(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH))
gfx_con.mute = true;
ini_sec_t *cfg_sec = NULL; ini_sec_t *cfg_sec = NULL;
LIST_INIT(ini_sections); LIST_INIT(ini_sections);
LIST_INIT(ini_list_sections); LIST_INIT(ini_list_sections);
@ -843,13 +843,8 @@ void auto_launch_firmware()
else else
goto out; goto out;
payload_path = ini_check_payload_section(cfg_sec);
if (!payload_path)
check_sept();
u8 *bitmap = NULL; u8 *bitmap = NULL;
if (!(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH)) if (!(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH) && h_cfg.bootwait)
{ {
if (bootlogoCustomEntry) // Check if user set custom logo path at the boot entry. if (bootlogoCustomEntry) // Check if user set custom logo path at the boot entry.
bitmap = (u8 *)sd_file_read(bootlogoCustomEntry); bitmap = (u8 *)sd_file_read(bootlogoCustomEntry);
@ -915,13 +910,13 @@ void auto_launch_firmware()
if (h_cfg.autoboot_list) if (h_cfg.autoboot_list)
ini_free(&ini_list_sections); ini_free(&ini_list_sections);
if (b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH) if (h_cfg.sept_run)
display_backlight_brightness(h_cfg.backlight, 0); display_backlight_brightness(h_cfg.backlight, 0);
else if (h_cfg.bootwait) else if (h_cfg.bootwait)
display_backlight_brightness(h_cfg.backlight, 1000); display_backlight_brightness(h_cfg.backlight, 1000);
// Wait before booting. If VOL- is pressed go into bootloader menu. // Wait before booting. If VOL- is pressed go into bootloader menu.
if (!(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH)) if (!h_cfg.sept_run)
{ {
btn = btn_wait_timeout(h_cfg.bootwait * 1000, BTN_VOL_DOWN); btn = btn_wait_timeout(h_cfg.bootwait * 1000, BTN_VOL_DOWN);
@ -929,6 +924,8 @@ void auto_launch_firmware()
goto out; goto out;
} }
payload_path = ini_check_payload_section(cfg_sec);
if (payload_path) if (payload_path)
{ {
ini_free_section(cfg_sec); ini_free_section(cfg_sec);
@ -936,7 +933,10 @@ void auto_launch_firmware()
free(payload_path); free(payload_path);
} }
else else
{
check_sept();
hos_launch(cfg_sec); hos_launch(cfg_sec);
}
out: out:
ini_free(&ini_sections); ini_free(&ini_sections);

View file

@ -29,8 +29,7 @@
#include "../utils/util.h" #include "../utils/util.h"
#include "../hos/hos.h" #include "../hos/hos.h"
/* #include "../gfx/gfx.h" // #include "../gfx/gfx.h"
extern gfx_con_t gfx_con; */
static int _tsec_dma_wait_idle() static int _tsec_dma_wait_idle()
{ {