Secure Monitor: Difference between revisions
No edit summary  | 
				|||
| 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.  | ||
===== KernelConfiguration =====  | |||
{| class="wikitable" border="1"  | |||
|-  | |||
! Bits  | |||
! Description  | |||
|-  | |||
| 0  | |||
| EnableNonZeroFillMemory  | |||
|-  | |||
| 1  | |||
| EnableUserExceptionHandler  | |||
|-  | |||
| 2  | |||
| PerformanceMonitoringUnit  | |||
|-  | |||
| 3  | |||
| EnableApplicationExtraThread  | |||
|-  | |||
| 8  | |||
| CallShowErrorOnPanic  | |||
|-  | |||
| 16-17  | |||
| MemorySize  | |||
|}  | |||
Kernel reads this when setting up memory-related code.  | |||
Kernel reads this when setting up memory-related code.    | |||
'''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.  | |||
'''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).  | |||
'''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+]   | [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.  | ||
'''CallShowErrorOnPanic''' is a boolean determining whether kernel should call smcPanic on error instead of infinite-looping.  | |||
'''MemorySize''' determines how much memory is available. 00/03 = 4 GB, 01 = 6 GB, 02 = 8 GB.  | |||
===== IsChargerHiZModeEnabled =====  | ===== IsChargerHiZModeEnabled =====  | ||