hekate/nyx: slight refactor
This commit is contained in:
@@ -169,7 +169,7 @@ void print_mmc_info()
|
||||
gfx_put_small_sep();
|
||||
gfx_printf("%kGPP (eMMC USER) partition table:%k\n", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT);
|
||||
|
||||
sdmmc_storage_set_mmc_partition(&emmc_storage, EMMC_GPP);
|
||||
emmc_set_partition(EMMC_GPP);
|
||||
LIST_INIT(gpt);
|
||||
emmc_gpt_parse(&gpt);
|
||||
int gpp_idx = 0;
|
||||
|
||||
@@ -44,7 +44,7 @@ void _toggle_autorcm(bool enable)
|
||||
}
|
||||
|
||||
u8 *tempbuf = (u8 *)malloc(0x200);
|
||||
sdmmc_storage_set_mmc_partition(&emmc_storage, EMMC_BOOT0);
|
||||
emmc_set_partition(EMMC_BOOT0);
|
||||
|
||||
int i, sect = 0;
|
||||
u8 corr_mod0, mod1;
|
||||
@@ -114,7 +114,7 @@ void menu_autorcm()
|
||||
nx_emmc_get_autorcm_masks(&mod0, &mod1);
|
||||
|
||||
u8 *tempbuf = (u8 *)malloc(0x200);
|
||||
sdmmc_storage_set_mmc_partition(&emmc_storage, EMMC_BOOT0);
|
||||
emmc_set_partition(EMMC_BOOT0);
|
||||
sdmmc_storage_read(&emmc_storage, 0x200 / EMMC_BLOCKSIZE, 1, tempbuf);
|
||||
|
||||
// Check if 2nd byte of modulus is correct.
|
||||
|
||||
@@ -20,7 +20,15 @@
|
||||
#include <libs/compr/blz.h>
|
||||
#include "logos.h"
|
||||
|
||||
u8 BOOTLOGO_BLZ[SZ_BOOTLOGO_BLZ] = {
|
||||
// 68 x 192 @8bpp Grayscale RAW.
|
||||
#define BOOTLOGO_WIDTH 68
|
||||
#define BOOTLOGO_HEIGHT 192
|
||||
#define BOOTLOGO_X ((720 - BOOTLOGO_WIDTH) / 2)
|
||||
#define BOOTLOGO_Y ((1280 - BOOTLOGO_HEIGHT) / 2)
|
||||
#define BOOTLOGO_SIZE 13056
|
||||
#define BOOTLOGO_BLZ_SIZE 3988
|
||||
|
||||
u8 bootlogo_blz[] = {
|
||||
0x0F, 0xF0, 0x80, 0x1B, 0x1B, 0x40, 0xF0, 0x1E, 0x1F, 0x48, 0x5A, 0x0F, 0xF0, 0x0F, 0xF0, 0xE4,
|
||||
0x17, 0xF0, 0x91, 0x13, 0x26, 0x28, 0x23, 0x1E, 0x0A, 0xA0, 0x0F, 0xF0, 0xC3, 0x22, 0xF0, 0xC3,
|
||||
0xA4, 0x1E, 0x29, 0x33, 0xDB, 0x2C, 0xEA, 0x53, 0x83, 0x0F, 0xF0, 0x38, 0xF0, 0xBC, 0x39, 0x21,
|
||||
@@ -273,7 +281,7 @@ u8 BOOTLOGO_BLZ[SZ_BOOTLOGO_BLZ] = {
|
||||
0x6C, 0x23, 0x00, 0x00
|
||||
};
|
||||
|
||||
u8 BATTERY_EMPTY_BLZ[SZ_BATTERY_EMPTY_BLZ] = {
|
||||
u8 battery_icons_blz[] = {
|
||||
0x17, 0xC0, 0x5D, 0x51, 0x79, 0x12, 0x79, 0x48, 0x69, 0x00, 0x0D, 0x46, 0xE3, 0x0F, 0xF0, 0x20,
|
||||
0xF0, 0x35, 0x2E, 0x38, 0x3F, 0x40, 0xEF, 0xCF, 0x00, 0x89, 0x77, 0x00, 0x17, 0x01, 0x14, 0x09,
|
||||
0x90, 0x36, 0xF0, 0xA4, 0xF1, 0x62, 0x01, 0x38, 0xA1, 0x99, 0x84, 0x3E, 0x00, 0x23, 0x1F, 0x04,
|
||||
@@ -330,8 +338,8 @@ u8 *render_static_bootlogo()
|
||||
|
||||
// Set default logo.
|
||||
u8 *logo_buf = (void *)malloc(SZ_16K);
|
||||
blz_uncompress_srcdest(BOOTLOGO_BLZ, SZ_BOOTLOGO_BLZ, logo_buf, SZ_BOOTLOGO);
|
||||
gfx_set_rect_grey(logo_buf, X_BOOTLOGO, Y_BOOTLOGO, 326, 544);
|
||||
blz_uncompress_srcdest(bootlogo_blz, sizeof(bootlogo_blz), logo_buf, BOOTLOGO_SIZE);
|
||||
gfx_set_rect_grey(logo_buf, BOOTLOGO_WIDTH, BOOTLOGO_HEIGHT, BOOTLOGO_X, BOOTLOGO_Y);
|
||||
|
||||
return logo_buf;
|
||||
}
|
||||
@@ -341,22 +349,22 @@ bool render_ticker_logo(u32 boot_wait, u32 backlight)
|
||||
u32 btn = 0;
|
||||
|
||||
u32 ticker_step_us = boot_wait * 1000000;
|
||||
ticker_step_us /= Y_BOOTLOGO;
|
||||
ticker_step_us /= BOOTLOGO_HEIGHT;
|
||||
|
||||
// Set default logo.
|
||||
u8 *logo_buf = render_static_bootlogo();
|
||||
|
||||
// Clear line.
|
||||
u8 *grey = malloc(6 * Y_BOOTLOGO);
|
||||
memset(grey, 0x1B, 6 * Y_BOOTLOGO);
|
||||
gfx_set_rect_grey(grey, 6, Y_BOOTLOGO, 362, 544);
|
||||
u8 *grey = malloc(6 * BOOTLOGO_HEIGHT);
|
||||
memset(grey, 0x1B, 6 * BOOTLOGO_HEIGHT);
|
||||
gfx_set_rect_grey(grey, 6, BOOTLOGO_HEIGHT, 362, BOOTLOGO_Y);
|
||||
free(grey);
|
||||
|
||||
// Enable backlight to show first frame.
|
||||
display_backlight_brightness(backlight, 1000);
|
||||
|
||||
// Animated line as ticker.
|
||||
for (u32 i = 1; i <= Y_BOOTLOGO; i++)
|
||||
for (u32 i = 1; i <= BOOTLOGO_HEIGHT; i++)
|
||||
{
|
||||
// If only VOL- was pressed, exit.
|
||||
btn = btn_read_vol();
|
||||
@@ -367,7 +375,7 @@ bool render_ticker_logo(u32 boot_wait, u32 backlight)
|
||||
usleep(ticker_step_us);
|
||||
|
||||
// Set next ticker progress.
|
||||
gfx_set_rect_grey(logo_buf + X_BOOTLOGO * (Y_BOOTLOGO - i) + 36, 6, 1, 362, 544 + Y_BOOTLOGO - i);
|
||||
gfx_set_rect_grey(logo_buf + BOOTLOGO_WIDTH * (BOOTLOGO_HEIGHT - i) + 36, 6, 1, 362, BOOTLOGO_Y + BOOTLOGO_HEIGHT - i);
|
||||
}
|
||||
free(logo_buf);
|
||||
|
||||
|
||||
@@ -17,20 +17,13 @@
|
||||
#ifndef _GFX_LOGOS_H_
|
||||
#define _GFX_LOGOS_H_
|
||||
|
||||
// 68 x 192 @8bpp Grayscale RAW.
|
||||
#define X_BOOTLOGO 68
|
||||
#define Y_BOOTLOGO 192
|
||||
#define SZ_BOOTLOGO 13056
|
||||
#define SZ_BOOTLOGO_BLZ 3988
|
||||
extern u8 BOOTLOGO_BLZ[SZ_BOOTLOGO_BLZ];
|
||||
|
||||
// 21 x 50 @8bpp RGB.
|
||||
#define X_BATTERY_EMPTY 21
|
||||
#define Y_BATTERY_EMPTY_BATT 38
|
||||
#define Y_BATTERY_EMPTY_CHRG 12
|
||||
#define SZ_BATTERY_EMPTY 3150
|
||||
#define SZ_BATTERY_EMPTY_BLZ 740
|
||||
extern u8 BATTERY_EMPTY_BLZ[SZ_BATTERY_EMPTY_BLZ];
|
||||
#define BATTERY_EMPTY_WIDTH 21
|
||||
#define BATTERY_EMPTY_BATT_HEIGHT 38
|
||||
#define BATTERY_EMPTY_CHRG_HEIGHT 12
|
||||
#define BATTERY_EMPTY_SIZE 3150
|
||||
#define BATTERY_EMPTY_BLZ_SIZE 740
|
||||
extern u8 battery_icons_blz[];
|
||||
|
||||
u8 *render_static_bootlogo();
|
||||
bool render_ticker_logo(u32 boot_wait, u32 backlight);
|
||||
|
||||
@@ -673,7 +673,6 @@ DPRINTF("Parsed GPT\n");
|
||||
DPRINTF("pkg2 size on emmc is %08X\n", pkg2_size);
|
||||
|
||||
// Read in Boot Config.
|
||||
memset(bctBuf, 0, BCT_SIZE);
|
||||
emmc_part_read(pkg2_part, 0, BCT_SIZE / EMMC_BLOCKSIZE, bctBuf);
|
||||
|
||||
// Read in package2.
|
||||
@@ -909,7 +908,7 @@ int hos_launch(ini_sec_t *cfg)
|
||||
if (!pkg1_warmboot_config(&ctxt, warmboot_base, ctxt.pkg1_id->fuses, kb))
|
||||
{
|
||||
// Can only happen on T210B01.
|
||||
_hos_crit_error("Failed to match warmboot with fuses!\nIf you continue, sleep wont work!");
|
||||
_hos_crit_error("\nFailed to match warmboot with fuses!\nIf you continue, sleep wont work!");
|
||||
|
||||
gfx_puts("\nPress POWER to continue.\nPress VOL to go to the menu.\n");
|
||||
display_backlight_brightness(h_cfg.backlight, 1000);
|
||||
|
||||
@@ -429,7 +429,7 @@ void pkg1_warmboot_rsa_mod(u32 warmboot_base)
|
||||
// Set warmboot binary rsa modulus.
|
||||
u8 *rsa_mod = (u8 *)malloc(512);
|
||||
|
||||
sdmmc_storage_set_mmc_partition(&emmc_storage, EMMC_BOOT0);
|
||||
emmc_set_partition(EMMC_BOOT0);
|
||||
|
||||
u32 sector;
|
||||
u8 mod0, mod1;
|
||||
|
||||
@@ -115,7 +115,7 @@ void check_power_off_from_hos()
|
||||
|
||||
static void *coreboot_addr;
|
||||
|
||||
void reloc_patcher(u32 payload_dst, u32 payload_src, u32 payload_size)
|
||||
static void _reloc_patcher(u32 payload_dst, u32 payload_src, u32 payload_size)
|
||||
{
|
||||
memcpy((u8 *)payload_src, (u8 *)IPL_LOAD_ADDR, PATCHED_RELOC_SZ);
|
||||
|
||||
@@ -171,7 +171,7 @@ bool is_ipl_updated(void *buf, char *path, bool force)
|
||||
return true;
|
||||
}
|
||||
|
||||
void launch_payload(char *path, bool update, bool clear_screen)
|
||||
static void _launch_payload(char *path, bool update, bool clear_screen)
|
||||
{
|
||||
if (clear_screen)
|
||||
gfx_clear_grey(0x1B);
|
||||
@@ -226,13 +226,13 @@ void launch_payload(char *path, bool update, bool clear_screen)
|
||||
if (update)
|
||||
memcpy((u8 *)(RCM_PAYLOAD_ADDR + PATCHED_RELOC_SZ), &b_cfg, sizeof(boot_cfg_t)); // Transfer boot cfg.
|
||||
else
|
||||
reloc_patcher(PATCHED_RELOC_ENTRY, EXT_PAYLOAD_ADDR, ALIGN(size, 0x10));
|
||||
_reloc_patcher(PATCHED_RELOC_ENTRY, EXT_PAYLOAD_ADDR, ALIGN(size, 0x10));
|
||||
|
||||
hw_reinit_workaround(false, byte_swap_32(*(u32 *)(buf + size - sizeof(u32))));
|
||||
}
|
||||
else
|
||||
{
|
||||
reloc_patcher(PATCHED_RELOC_ENTRY, EXT_PAYLOAD_ADDR, 0x7000);
|
||||
_reloc_patcher(PATCHED_RELOC_ENTRY, EXT_PAYLOAD_ADDR, 0x7000);
|
||||
|
||||
// Get coreboot seamless display magic.
|
||||
u32 magic = 0;
|
||||
@@ -265,7 +265,7 @@ out:
|
||||
}
|
||||
}
|
||||
|
||||
void launch_tools()
|
||||
static void _launch_payloads()
|
||||
{
|
||||
u8 max_entries = 61;
|
||||
char *filelist = NULL;
|
||||
@@ -337,7 +337,7 @@ void launch_tools()
|
||||
memcpy(dir + strlen(dir), "/", 2);
|
||||
memcpy(dir + strlen(dir), file_sec, strlen(file_sec) + 1);
|
||||
|
||||
launch_payload(dir, false, true);
|
||||
_launch_payload(dir, false, true);
|
||||
}
|
||||
|
||||
failed_sd_mount:
|
||||
@@ -347,7 +347,7 @@ failed_sd_mount:
|
||||
btn_wait();
|
||||
}
|
||||
|
||||
void ini_list_launcher()
|
||||
static void _launch_ini_list()
|
||||
{
|
||||
u8 max_entries = 61;
|
||||
char *payload_path = NULL;
|
||||
@@ -441,7 +441,7 @@ parse_failed:
|
||||
if (payload_path)
|
||||
{
|
||||
// Try to launch Payload.
|
||||
launch_payload(payload_path, false, true);
|
||||
_launch_payload(payload_path, false, true);
|
||||
}
|
||||
else if (!hos_launch(cfg_sec))
|
||||
{
|
||||
@@ -458,7 +458,7 @@ out:
|
||||
btn_wait();
|
||||
}
|
||||
|
||||
void launch_firmware()
|
||||
static void _launch_config()
|
||||
{
|
||||
u8 max_entries = 61;
|
||||
char *payload_path = NULL;
|
||||
@@ -491,11 +491,11 @@ void launch_firmware()
|
||||
|
||||
ments[2].type = MENT_HANDLER;
|
||||
ments[2].caption = "Payloads...";
|
||||
ments[2].handler = launch_tools;
|
||||
ments[2].handler = _launch_payloads;
|
||||
|
||||
ments[3].type = MENT_HANDLER;
|
||||
ments[3].caption = "More configs...";
|
||||
ments[3].handler = ini_list_launcher;
|
||||
ments[3].handler = _launch_ini_list;
|
||||
|
||||
ments[4].type = MENT_CHGLINE;
|
||||
|
||||
@@ -572,7 +572,7 @@ parse_failed:
|
||||
if (payload_path)
|
||||
{
|
||||
// Try to launch Payload.
|
||||
launch_payload(payload_path, false, true);
|
||||
_launch_payload(payload_path, false, true);
|
||||
}
|
||||
else if (!hos_launch(cfg_sec))
|
||||
{
|
||||
@@ -594,7 +594,7 @@ out:
|
||||
|
||||
#define NYX_VER_OFF 0x9C
|
||||
|
||||
void nyx_load_run()
|
||||
static void _nyx_load_run()
|
||||
{
|
||||
u8 *nyx = sd_file_read("bootloader/sys/nyx.bin", NULL);
|
||||
if (!nyx)
|
||||
@@ -661,7 +661,7 @@ void nyx_load_run()
|
||||
(*nyx_ptr)();
|
||||
}
|
||||
|
||||
static ini_sec_t *get_ini_sec_from_id(ini_sec_t *ini_sec, char **bootlogoCustomEntry, char **emummc_path)
|
||||
static ini_sec_t *_get_ini_sec_from_id(ini_sec_t *ini_sec, char **bootlogoCustomEntry, char **emummc_path)
|
||||
{
|
||||
ini_sec_t *cfg_sec = NULL;
|
||||
|
||||
@@ -703,7 +703,7 @@ static void _bootloader_corruption_protect()
|
||||
}
|
||||
}
|
||||
|
||||
void auto_launch_update()
|
||||
static void _check_for_updated_bootloader()
|
||||
{
|
||||
// Check if already chainloaded update and clear flag. Otherwise check for updates.
|
||||
if (EMC(EMC_SCRATCH0) & EMC_HEKA_UPD)
|
||||
@@ -712,7 +712,7 @@ void auto_launch_update()
|
||||
{
|
||||
// Check if update.bin exists and is newer and launch it. Otherwise create it.
|
||||
if (!f_stat("bootloader/update.bin", NULL))
|
||||
launch_payload("bootloader/update.bin", true, false);
|
||||
_launch_payload("bootloader/update.bin", true, false);
|
||||
else
|
||||
{
|
||||
u8 *buf = calloc(0x200, 1);
|
||||
@@ -722,7 +722,7 @@ void auto_launch_update()
|
||||
}
|
||||
}
|
||||
|
||||
static void _auto_launch_firmware()
|
||||
static void _auto_launch()
|
||||
{
|
||||
struct _bmp_data
|
||||
{
|
||||
@@ -740,7 +740,7 @@ static void _auto_launch_firmware()
|
||||
char *bootlogoCustomEntry = NULL;
|
||||
bool config_entry_found = false;
|
||||
|
||||
auto_launch_update();
|
||||
_check_for_updated_bootloader();
|
||||
|
||||
bool boot_from_id = (b_cfg.boot_cfg & BOOT_CFG_FROM_ID) && (b_cfg.boot_cfg & BOOT_CFG_AUTOBOOT_EN);
|
||||
if (boot_from_id)
|
||||
@@ -815,7 +815,7 @@ static void _auto_launch_firmware()
|
||||
}
|
||||
|
||||
if (boot_from_id)
|
||||
cfg_sec = get_ini_sec_from_id(ini_sec, &bootlogoCustomEntry, &emummc_path);
|
||||
cfg_sec = _get_ini_sec_from_id(ini_sec, &bootlogoCustomEntry, &emummc_path);
|
||||
else if (h_cfg.autoboot == boot_entry_id && config_entry_found)
|
||||
{
|
||||
cfg_sec = ini_sec;
|
||||
@@ -859,7 +859,7 @@ static void _auto_launch_firmware()
|
||||
continue;
|
||||
|
||||
if (boot_from_id)
|
||||
cfg_sec = get_ini_sec_from_id(ini_sec_list, &bootlogoCustomEntry, &emummc_path);
|
||||
cfg_sec = _get_ini_sec_from_id(ini_sec_list, &bootlogoCustomEntry, &emummc_path);
|
||||
else if (h_cfg.autoboot == boot_entry_id)
|
||||
{
|
||||
h_cfg.emummc_force_disable = false;
|
||||
@@ -967,7 +967,7 @@ skip_list:
|
||||
if (payload_path)
|
||||
{
|
||||
// Try to launch Payload.
|
||||
launch_payload(payload_path, false, false);
|
||||
_launch_payload(payload_path, false, false);
|
||||
goto error;
|
||||
}
|
||||
else
|
||||
@@ -1009,7 +1009,7 @@ out:
|
||||
// L4T: Clear custom boot mode flags from PMC_SCRATCH0.
|
||||
PMC(APBDEV_PMC_SCRATCH0) &= ~PMC_SCRATCH0_MODE_CUSTOM_ALL;
|
||||
|
||||
nyx_load_run();
|
||||
_nyx_load_run();
|
||||
}
|
||||
|
||||
#define EXCP_EN_ADDR 0x4003FFFC
|
||||
@@ -1171,8 +1171,8 @@ static void _check_low_battery()
|
||||
goto out;
|
||||
|
||||
// Prepare battery icon resources.
|
||||
u8 *battery_res = malloc(ALIGN(SZ_BATTERY_EMPTY, SZ_4K));
|
||||
blz_uncompress_srcdest(BATTERY_EMPTY_BLZ, SZ_BATTERY_EMPTY_BLZ, battery_res, SZ_BATTERY_EMPTY);
|
||||
u8 *battery_res = malloc(ALIGN(BATTERY_EMPTY_SIZE, SZ_4K));
|
||||
blz_uncompress_srcdest(battery_icons_blz, BATTERY_EMPTY_BLZ_SIZE, battery_res, BATTERY_EMPTY_SIZE);
|
||||
|
||||
u8 *battery_icon = malloc(0x95A); // 21x38x3
|
||||
u8 *charging_icon = malloc(0x2F4); // 21x12x3
|
||||
@@ -1181,8 +1181,8 @@ static void _check_low_battery()
|
||||
memcpy(charging_icon, battery_res, 0x2F4);
|
||||
memcpy(battery_icon, battery_res + 0x2F4, 0x95A);
|
||||
|
||||
u32 battery_icon_y_pos = 1280 - 16 - Y_BATTERY_EMPTY_BATT;
|
||||
u32 charging_icon_y_pos = 1280 - 16 - Y_BATTERY_EMPTY_BATT - 12 - Y_BATTERY_EMPTY_CHRG;
|
||||
u32 battery_icon_y_pos = 1280 - 16 - BATTERY_EMPTY_BATT_HEIGHT;
|
||||
u32 charging_icon_y_pos = 1280 - 16 - BATTERY_EMPTY_BATT_HEIGHT - 12 - BATTERY_EMPTY_CHRG_HEIGHT;
|
||||
free(battery_res);
|
||||
|
||||
charge_status = !charge_status;
|
||||
@@ -1207,9 +1207,9 @@ static void _check_low_battery()
|
||||
if (screen_on && (charge_status != current_charge_status))
|
||||
{
|
||||
if (current_charge_status)
|
||||
gfx_set_rect_rgb(charging_icon, X_BATTERY_EMPTY, Y_BATTERY_EMPTY_CHRG, 16, charging_icon_y_pos);
|
||||
gfx_set_rect_rgb(charging_icon, BATTERY_EMPTY_WIDTH, BATTERY_EMPTY_CHRG_HEIGHT, 16, charging_icon_y_pos);
|
||||
else
|
||||
gfx_set_rect_rgb(no_charging_icon, X_BATTERY_EMPTY, Y_BATTERY_EMPTY_CHRG, 16, charging_icon_y_pos);
|
||||
gfx_set_rect_rgb(no_charging_icon, BATTERY_EMPTY_WIDTH, BATTERY_EMPTY_CHRG_HEIGHT, 16, charging_icon_y_pos);
|
||||
}
|
||||
|
||||
// Check if it's time to turn off display.
|
||||
@@ -1238,11 +1238,11 @@ static void _check_low_battery()
|
||||
u32 *fb = display_init_framebuffer_pitch();
|
||||
gfx_init_ctxt(fb, 720, 1280, 720);
|
||||
|
||||
gfx_set_rect_rgb(battery_icon, X_BATTERY_EMPTY, Y_BATTERY_EMPTY_BATT, 16, battery_icon_y_pos);
|
||||
gfx_set_rect_rgb(battery_icon, BATTERY_EMPTY_WIDTH, BATTERY_EMPTY_BATT_HEIGHT, 16, battery_icon_y_pos);
|
||||
if (current_charge_status)
|
||||
gfx_set_rect_rgb(charging_icon, X_BATTERY_EMPTY, Y_BATTERY_EMPTY_CHRG, 16, charging_icon_y_pos);
|
||||
gfx_set_rect_rgb(charging_icon, BATTERY_EMPTY_WIDTH, BATTERY_EMPTY_CHRG_HEIGHT, 16, charging_icon_y_pos);
|
||||
else
|
||||
gfx_set_rect_rgb(no_charging_icon, X_BATTERY_EMPTY, Y_BATTERY_EMPTY_CHRG, 16, charging_icon_y_pos);
|
||||
gfx_set_rect_rgb(no_charging_icon, BATTERY_EMPTY_WIDTH, BATTERY_EMPTY_CHRG_HEIGHT, 16, charging_icon_y_pos);
|
||||
|
||||
display_backlight_pwm_init();
|
||||
display_backlight_brightness(100, 1000);
|
||||
@@ -1272,7 +1272,7 @@ out:
|
||||
max77620_low_battery_monitor_config(true);
|
||||
}
|
||||
|
||||
void ipl_reload()
|
||||
static void _ipl_reload()
|
||||
{
|
||||
hw_reinit_workaround(false, 0);
|
||||
|
||||
@@ -1366,12 +1366,12 @@ power_state_t STATE_REBOOT_RCM = REBOOT_RCM;
|
||||
power_state_t STATE_REBOOT_BYPASS_FUSES = REBOOT_BYPASS_FUSES;
|
||||
|
||||
ment_t ment_top[] = {
|
||||
MDEF_HANDLER("Launch", launch_firmware),
|
||||
MDEF_HANDLER("Launch", _launch_config),
|
||||
MDEF_CAPTION("---------------", TXT_CLR_GREY_DM),
|
||||
MDEF_MENU("Tools", &menu_tools),
|
||||
MDEF_MENU("Console info", &menu_cinfo),
|
||||
MDEF_CAPTION("---------------", TXT_CLR_GREY_DM),
|
||||
MDEF_HANDLER("Reload", ipl_reload),
|
||||
MDEF_HANDLER("Reload", _ipl_reload),
|
||||
MDEF_HANDLER_EX("Reboot (OFW)", &STATE_REBOOT_BYPASS_FUSES, power_set_state_ex),
|
||||
MDEF_HANDLER_EX("Reboot (RCM)", &STATE_REBOOT_RCM, power_set_state_ex),
|
||||
MDEF_HANDLER_EX("Power off", &STATE_POWER_OFF, power_set_state_ex),
|
||||
@@ -1448,7 +1448,7 @@ skip_lp0_minerva_config:
|
||||
|
||||
// Load saved configuration and auto boot if enabled.
|
||||
if (!(h_cfg.errors & ERR_SD_BOOT_EN))
|
||||
_auto_launch_firmware();
|
||||
_auto_launch();
|
||||
|
||||
// Failed to launch Nyx, unmount SD Card.
|
||||
sd_end();
|
||||
|
||||
@@ -273,7 +273,7 @@ int emummc_storage_write(u32 sector, u32 num_sectors, void *buf)
|
||||
int emummc_storage_set_mmc_partition(u32 partition)
|
||||
{
|
||||
emu_cfg.active_part = partition;
|
||||
sdmmc_storage_set_mmc_partition(&emmc_storage, partition);
|
||||
emmc_set_partition(partition);
|
||||
|
||||
if (!emu_cfg.enabled || h_cfg.emummc_force_disable || emu_cfg.sector)
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user