exosphere: commit WIP warmboot progress
-15+ bugs fixed -We now receive ~0x400 SMCs from user processes (including from psm) on wake-from-sleep
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include "arm.h"
|
||||
#include "synchronization.h"
|
||||
#include "exocfg.h"
|
||||
#include "pmc.h"
|
||||
|
||||
#undef MC_BASE
|
||||
#define MC_BASE (MMIO_GET_DEVICE_PA(MMIO_DEVID_MC))
|
||||
@@ -24,7 +25,7 @@ uintptr_t get_warmboot_crt0_stack_address(void) {
|
||||
uintptr_t get_warmboot_crt0_stack_address_critsec_enter(void) {
|
||||
unsigned int core_id = get_core_id();
|
||||
|
||||
if (core_id) {
|
||||
if (core_id == 3) {
|
||||
return WARMBOOT_GET_TZRAM_SEGMENT_PA(TZRAM_SEGMENT_ID_CORE3_STACK) + 0x1000;
|
||||
} else {
|
||||
return WARMBOOT_GET_TZRAM_SEGMENT_PA(TZRAM_SEGEMENT_ID_SECMON_EVT) + 0x80 * (core_id + 1);
|
||||
@@ -180,12 +181,12 @@ void warmboot_init(void) {
|
||||
*/
|
||||
flush_dcache_all();
|
||||
invalidate_icache_all();
|
||||
|
||||
|
||||
/* On warmboot (not cpu_on) only */
|
||||
if (MC_SECURITY_CFG3_0 == 0) {
|
||||
init_dma_controllers(g_exosphere_target_firmware_for_init);
|
||||
}
|
||||
|
||||
|
||||
/*identity_remap_tzram();*/
|
||||
/* Nintendo pointlessly fully invalidate the TLB & invalidate the data cache on the modified ranges here */
|
||||
if (g_exosphere_target_firmware_for_init < EXOSPHERE_TARGET_FIRMWARE_500) {
|
||||
|
||||
Reference in New Issue
Block a user