mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-11-06 04:01:44 +00:00
Stage2: Fix bug, add more debug printfs to nxboot. The CCPLEX doesn't turn on
This commit is contained in:
parent
5920f5a4b0
commit
f39622c421
2 changed files with 4 additions and 3 deletions
|
@ -86,7 +86,7 @@ void nxboot_main(void) {
|
||||||
fatal_error("Failed to open Package2 from %s: %s!\n", loader_ctx->package2_path, strerror(errno));
|
fatal_error("Failed to open Package2 from %s: %s!\n", loader_ctx->package2_path, strerror(errno));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifndef I_KNOW_WHAT_IM_DOING_2
|
#ifdef I_KNOW_WHAT_IM_DOING_2
|
||||||
pk2file = fopen("bcpkg21:/", "rb");
|
pk2file = fopen("bcpkg21:/", "rb");
|
||||||
if (pk2file == NULL || fseek(pk2file, 0x4000, SEEK_SET) != 0) {
|
if (pk2file == NULL || fseek(pk2file, 0x4000, SEEK_SET) != 0) {
|
||||||
printf("Error: Failed to open Package2 from NAND: %s!\n", strerror(errno));
|
printf("Error: Failed to open Package2 from NAND: %s!\n", strerror(errno));
|
||||||
|
@ -190,8 +190,8 @@ void nxboot_main(void) {
|
||||||
printf("Rebuilding package2...\n");
|
printf("Rebuilding package2...\n");
|
||||||
/* Patch package2, adding Thermosphère + custom KIPs. */
|
/* Patch package2, adding Thermosphère + custom KIPs. */
|
||||||
package2_rebuild_and_copy(package2, MAILBOX_EXOSPHERE_CONFIGURATION->target_firmware);
|
package2_rebuild_and_copy(package2, MAILBOX_EXOSPHERE_CONFIGURATION->target_firmware);
|
||||||
printf(u8"Loading Exosphère...\n");
|
|
||||||
|
|
||||||
|
printf(u8"Reading Exosphère...\n");
|
||||||
/* Copy Exophère to a good location (or read it directly to it.) */
|
/* Copy Exophère to a good location (or read it directly to it.) */
|
||||||
if (MAILBOX_EXOSPHERE_CONFIGURATION->target_firmware <= EXOSPHERE_TARGET_FIRMWARE_400) {
|
if (MAILBOX_EXOSPHERE_CONFIGURATION->target_firmware <= EXOSPHERE_TARGET_FIRMWARE_400) {
|
||||||
exosphere_memaddr = (void *)0x40020000;
|
exosphere_memaddr = (void *)0x40020000;
|
||||||
|
@ -222,6 +222,7 @@ void nxboot_main(void) {
|
||||||
} else {
|
} else {
|
||||||
MAILBOX_NX_BOOTLOADER_SETUP_STATE = NX_BOOTLOADER_STATE_LOADED_PACKAGE2_4X;
|
MAILBOX_NX_BOOTLOADER_SETUP_STATE = NX_BOOTLOADER_STATE_LOADED_PACKAGE2_4X;
|
||||||
}
|
}
|
||||||
|
printf("Powering on the CCPLEX...\n");
|
||||||
cluster_enable_cpu0((uint64_t)(uintptr_t)exosphere_memaddr, 1);
|
cluster_enable_cpu0((uint64_t)(uintptr_t)exosphere_memaddr, 1);
|
||||||
while (MAILBOX_NX_BOOTLOADER_IS_SECMON_AWAKE == 0) {
|
while (MAILBOX_NX_BOOTLOADER_IS_SECMON_AWAKE == 0) {
|
||||||
/* Wait for Exosphere to wake up. */
|
/* Wait for Exosphere to wake up. */
|
||||||
|
|
|
@ -22,7 +22,7 @@ static void package2_append_section(unsigned int id, package2_header_t *package2
|
||||||
static void package2_fixup_header_and_section_hashes(package2_header_t *package2, size_t size);
|
static void package2_fixup_header_and_section_hashes(package2_header_t *package2, size_t size);
|
||||||
|
|
||||||
static inline size_t align_to_4(size_t s) {
|
static inline size_t align_to_4(size_t s) {
|
||||||
return ((s + 3) << 2) >> 2;
|
return ((s + 3) >> 2) << 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void package2_rebuild_and_copy(package2_header_t *package2, uint32_t target_firmware) {
|
void package2_rebuild_and_copy(package2_header_t *package2, uint32_t target_firmware) {
|
||||||
|
|
Loading…
Reference in a new issue