Michael Scire
69f113b87b
kern: wait 100us after synchronizing cores before saving interrupt state on sleep
2025-05-28 19:34:01 -07:00
Michael Scire
4eefa84c42
kern: use KLightLock for KCoreBarrierInterruptHandler
2025-05-28 19:34:01 -07:00
Michael Scire
20ae7f3037
fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images.
...
Starting in 20.0.0, the browser needs more applet memory to function, so we can't steal as much any more.
Thus, we now steal 14 MB on 20.0.0+ instead of 40MB.
However, since this reduces memory available for custom system modules, we are adjusting to compensate.
ams.mitm's heap size has been reduced from 32MB to 12MB (recovering 20MB).
In addition, fs.mitm now uses a new mechanism for stealing memory from the applet pool while romfs is being built.
On net, we are compromising:
* Custom sysmodules lose memory available to them.
On 19.0.0/AMS 1.8.0, there was 30 MB available for custom sysmodules.
Stealing 14 MB instead of 40 MB, we lose 26 MB of that. Reducing ams.mitm's usage will gain us back 20.
Nintendo also appears to...use 4 extra MB, in 20.0.0, from my test homebrew.
So on 20.0.0/AMS 1.9.0, there should be 20 MB available for custom sysmodules.
On the bright side, on <20.0.0/AMS 1.9.0, I guess there will be 50 MB available for custom sysmodules now?
* totk mods will lose the ability to...put every file in the romfs on sd card. There will be some unknown maximum filecount for totk mods.
On the bright side, implementing the transient memory stealing should improve compatibility for some mods which strictly add files?
2025-05-09 12:10:10 -07:00
Michael Scire
69993b1894
kern: plutoo is an intellectual, I am a fool, fix chicanery
2025-05-09 12:10:08 -07:00
Michael Scire
e5ebbd0cd1
kern: use callback to note pte updates in KPageTableImpl
2025-05-09 12:10:07 -07:00
Michael Scire
7f3ccf945a
kern: refactor FindFreeArea region search logic per 20.0.0 changes
2025-05-09 12:10:07 -07:00
Michael Scire
0d0f533805
kern: update instruction cache invalidation logic in KPageTableBase to reflect 20.0.0 changes
2025-05-09 12:10:07 -07:00
Michael Scire
7656a0e770
kern: reorder resource manager implementation
2025-05-09 12:10:06 -07:00
Michael Scire
5aa54772e6
kern: support null resource limit in KSecureSystemResource
2025-05-09 12:10:06 -07:00
Michael Scire
1e67468804
kern: adjust system registers during exception handling on MTE-violation or kernel address fault
2025-05-09 12:10:05 -07:00
Michael Scire
fa7577c87b
kern: update UserspaceAccess functions for 20.0.0 changes
2025-05-09 12:10:05 -07:00
Michael Scire
73dd0b5019
kern: update KAddressSpaceInfo to reflect 20.0.0 changes
2025-05-09 12:10:04 -07:00
Michael Scire
16fb7ca067
kern: invert meaning of KTargetSystem/KSystemControl bools
2025-05-09 12:10:04 -07:00
Michael Scire
437ef0004a
ams: various fixes to support booting debug configuration
2025-05-09 12:10:02 -07:00
Michael Scire
715eff2102
kern: update KernelLdr for 19.0.0 (new checks, dummy function call).
...
Also, fix a few very embarassing mistakes in kernel ldr:
* We have been mapping the page table region RWX for a few years now, accidentally.
* My attempt at making initial page tables not use bit 58 was broken in multiple ways.
2025-05-09 12:10:01 -07:00
Michael Scire
5d1a1eca26
kern: support reboot to fatal error on mariko
2024-10-15 21:51:46 -07:00
Michael Scire
18473ebbe9
kern: Perform page table validity pass during KPageTableImpl::InitializeForKernel
2024-10-15 21:51:46 -07:00
Michael Scire
4f9b30bd86
kern: fix more page table refactor bugs
2024-10-15 21:51:45 -07:00
Michael Scire
1c2ed77c67
kern: first round of page table refactor bug fixes
2024-10-15 21:51:45 -07:00
Michael Scire
1466c59252
kern: update KPageTable::Map for new refactor
2024-10-15 21:51:44 -07:00
Michael Scire
235cff531b
kern: update ChangePermissions to use new iteration logic
2024-10-15 21:51:44 -07:00
Michael Scire
73062fd8f8
kern: update KPageTable::Finalize for the refactor
2024-10-15 21:51:44 -07:00
Michael Scire
eaef8d20a1
kern: use new merge pages api
2024-10-15 21:51:43 -07:00
Michael Scire
1d7ad43fdc
kern: implement KPageTableImpl merge
2024-10-15 21:51:43 -07:00
Michael Scire
b40b203614
kern: continue page table refactor, implement separate/unmap
2024-10-15 21:51:43 -07:00
Michael Scire
fe06100001
kern: start KPageTable(Impl) refactor, use array-with-levels for KPageTableImpl
2024-10-15 21:51:42 -07:00
Michael Scire
03d859792e
kern: invoke supervisor mode thread functions from C++ context with valid stack frame
2024-10-15 21:51:40 -07:00
Michael Scire
28ad01341a
kern: specify allowable ipc client memory attr via inverted-whitelist, not blacklist
2024-10-15 21:51:40 -07:00
Michael Scire
adc3f5e155
kern: add minimum alignment support to KMemoryManager
2024-10-15 21:51:39 -07:00
Michael Scire
b70e367745
kern/ldr: add support for --x executables
2024-10-15 21:51:39 -07:00
Michael Scire
49f2449073
kern/strat: update for new DebugFlags capability semantics
2024-10-15 21:51:38 -07:00
Michael Scire
b0566b8dc7
kern: simplify KProcess max memory calculation
2024-10-15 21:51:38 -07:00
Michael Scire
98d2aae984
kern: move KTargetSystem into .rodata, split init/verify
2024-10-15 21:51:38 -07:00
Michael Scire
18d59ac4ac
kern: fix debug build
2024-10-15 21:51:37 -07:00
Michael Scire
0c85274c14
kern: allocate all TTBR0 pages during init, use procidx as asid
2024-10-15 21:51:37 -07:00
Michael Scire
42332ee1bc
kern: clear gicd/gicc pointers in KInterruptController::Finalize
2024-10-15 21:51:36 -07:00
Michael Scire
989b494a86
kern: eliminate use of KMemoryInfo, shuffle KMemoryBlock fields
2024-10-15 21:51:36 -07:00
Michael Scire
7be7c1ba7c
kern: KAddressSpaceInfo now takes CreateProcessFlags in getters
2024-10-15 21:51:35 -07:00
Michael Scire
89bfecb6b6
kern/svc: update WaitForAddress to support 64-bit WaitIfEqual
2024-10-15 21:51:35 -07:00
Michael Scire
63d83fe69d
kern: add InfoType_TransferMemoryHint
2024-10-15 21:51:34 -07:00
Michael Scire
06d82b52ff
kern/creport: use mod0 to locate symbol table for all modules
2024-10-15 21:51:33 -07:00
Michael Scire
fadec29817
kern: fix using memory config for half-of-true-size
2024-03-29 03:19:46 -07:00
Michael Scire
d7867cccd7
kern: fix whoops in new page table logic
2024-03-29 02:55:06 -07:00
Michael Scire
e0998df82e
kern: refactor smc helpers to share more common logic
2024-03-29 02:55:05 -07:00
Michael Scire
7f661bd2c8
kern: return ExceptionType_UnalignedData on data abort caused by alignment fault
2024-03-29 02:55:05 -07:00
Michael Scire
2af5fbb951
kern: add KPageGroup::CopyRangeTo
2024-03-29 02:55:05 -07:00
Michael Scire
6571df6cbc
kern: implement new attr tracking for memory range/traversal context
2024-03-29 02:55:04 -07:00
Michael Scire
5f4f668d97
kern: simplify size calculations in KPageTableBase::Read/WriteDebugIoMemory
2024-03-29 02:55:04 -07:00
Michael Scire
7ef8ee44f8
kern: pass properties directly to KPageTableBase::AllocateAndMapPagesImpl
2024-03-29 02:55:03 -07:00
Michael Scire
1e2dc76755
kern: take alignment argument in KMemoryManager::AllocateAndOpen
2024-03-29 02:55:03 -07:00