Line 225: |
Line 225: |
| | 11 || [[#IsDebugMode]] | | | 11 || [[#IsDebugMode]] |
| |- | | |- |
− | | 12 || [[#UnitConfiguration]] | + | | 12 || [[#KernelFlags]] |
| |- | | |- |
| | 13 || [[#IsChargerHiZModeEnabled]] | | | 13 || [[#IsChargerHiZModeEnabled]] |
Line 381: |
Line 381: |
| The value of this field is loaded from [[BootConfig]] unsigned-config+0x10 u8 bit1. | | The value of this field is loaded from [[BootConfig]] unsigned-config+0x10 u8 bit1. |
| | | |
− | ==== UnitConfiguration ==== | + | ==== KernelFlags ==== |
− | Kernel reads this when setting up memory-related code. If bit0 is set, it will memset various allocated memory-regions with 0x58, 0x59, 0x5A ('X', 'Y', 'Z') instead of zero. This allows Nintendo devs to find uninitialized memory bugs. If bit17-16 is 0b01, the kernel assumes 6GB of DRAM instead of 4GB. | + | Kernel reads this when setting up memory-related code. |
| | | |
− | bit1 and bit2 are boolean values.
| + | Bit 0 is a boolean determining whether kernel should it will memset various allocated memory-regions with 0x58, 0x59, 0x5A ('X', 'Y', 'Z') instead of zero. This allows Nintendo devs to find uninitialized memory bugs. |
− | If bit15-8 is zero, kernel will loop forever without calling smcPanic, nonzero smcPanics with 0xf00 and then loops.
| + | |
| + | Bit 1 is a boolean determining whether kernel should forcefully enable usermode exception handlers (when false, only data aborts/prefetch aborts that occur when the faulting address is in a readable region with MemoryType_CodeStatic will trigger usermode exception handlers). |
| + | |
| + | Bit 2 is a boolean determining whether kernel should enable usermode access to the Performance Monitors (whether PMUSERENR_EL0 should be 1 or 0). |
| + | |
| + | Bits 8-15 are a boolean determining whether kernel should call smcPanic on error instead of infinite-looping. |
| + | |
| + | Bits 16-17 determine how much memory is available. 00/03 = 4 GB, 01 = 6 GB, 02 = 8 GB. |
| | | |
| ==== IsChargerHiZModeEnabled ==== | | ==== IsChargerHiZModeEnabled ==== |