Line 672: |
Line 672: |
| [3.0.0+] [[Loader services|RO]] checks this and if set then skipping NRR rsa signatures is allowed. | | [3.0.0+] [[Loader services|RO]] checks this and if set then skipping NRR rsa signatures is allowed. |
| | | |
− | The value of this field is loaded from [[BootConfig]] unsigned-config+0x10 u8 bit1.
| + | ===== KernelConfiguration ===== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Bits |
| + | ! Description |
| + | |- |
| + | | 0 |
| + | | EnableNonZeroFillMemory |
| + | |- |
| + | | 1 |
| + | | EnableUserExceptionHandler |
| + | |- |
| + | | 2 |
| + | | PerformanceMonitoringUnit |
| + | |- |
| + | | 3 |
| + | | EnableApplicationExtraThread |
| + | |- |
| + | | 8 |
| + | | CallShowErrorOnPanic |
| + | |- |
| + | | 16-17 |
| + | | MemorySize |
| + | |} |
| | | |
− | ===== KernelConfiguration =====
| + | Kernel reads this when setting up memory-related code. |
− | Kernel reads this when setting up memory-related code. | |
| | | |
− | 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.
| + | '''EnableNonZeroFillMemory''' 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. |
| | | |
− | Bit 1 is a boolean determining whether kernel should forcefully enable usermode exception handlers (when false, only certain aborts (((1LL << (esr >> 26)) & 0x1115804400224001) == 0, typically data/prefetch aborts) that occur when the faulting address is in a readable region with MemoryType_CodeStatic will trigger usermode exception handlers).
| + | '''EnableUserExceptionHandler''' is a boolean determining whether kernel should forcefully enable usermode exception handlers (when false, only certain aborts (((1LL << (esr >> 26)) & 0x1115804400224001) == 0, typically data/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).
| + | '''PerformanceMonitoringUnit''' is a boolean determining whether kernel should enable usermode access to the Performance Monitors (whether PMUSERENR_EL0 should be 1 or 0). |
| | | |
− | [8.0.0+] Bit 3 is a boolean determining whether the kernel should increase the KThread slabheap capacity by 160. This also increases object capacities that are calculated based on number of threads. | + | [8.0.0+] '''EnableApplicationExtraThread''' is a boolean determining whether the kernel should increase the KThread slabheap capacity by 160. This also increases object capacities that are calculated based on number of threads. |
| | | |
− | Bits 8-15 are a boolean determining whether kernel should call smcPanic on error instead of infinite-looping.
| + | '''CallShowErrorOnPanic''' is 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.
| + | '''MemorySize''' determines how much memory is available. 00/03 = 4 GB, 01 = 6 GB, 02 = 8 GB. |
| | | |
| ===== IsChargerHiZModeEnabled ===== | | ===== IsChargerHiZModeEnabled ===== |