Commit Graph

1908 Commits

Author SHA1 Message Date
Michael Scire
0f72b2ceba kern: move spendsgir static assert 2025-05-28 19:34:03 -07:00
Michael Scire
888f7d4730 erpt: update IDs for 20.1.0 2025-05-28 19:34:02 -07:00
Michael Scire
8c3d2bdbba kern: save/restore spendsgir in KInterruptController::Save/RestoreCoreLocal 2025-05-28 19:34:02 -07:00
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
9f247670cb Add version enums for 20.1.0 2025-05-28 19:34:01 -07:00
Michael Scire
9e8cbe3faa svc: bump supported kernel version 2025-05-09 12:10:15 -07:00
Michael Scire
2f9b9d5e7f ams: basic support for compiling with gcc 15 2025-05-09 12:10:11 -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
883e9c8341 ams: add enum support for 20.0.1/18.0.1 2025-05-09 12:10:10 -07:00
Michael Scire
6a75ad3493 erpt: initial support (incomplete) for 20.0.0 2025-05-09 12:10:09 -07:00
Michael Scire
af330433be ldr/pm: update for 20.0.0 abi changes 2025-05-09 12:10:09 -07:00
Michael Scire
b40d497e56 strat: update for fsp-ldr 20.0.0 changes 2025-05-09 12:10:09 -07:00
Michael Scire
b6ea249224 ncm: update to implement new ContentMetaDatabase function for 20.0.0 2025-05-09 12:10:08 -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
f30d109429 erpt: update ids for 20.0.0 2025-05-09 12:10:03 -07:00
Michael Scire
c04caeec8f fusee/exo/ams: update with new keydata/version enums 2025-05-09 12:10:02 -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
4c9b758348 crypto: implement CmacGenerator 2025-05-09 12:10:01 -07:00
Michael Scire
a6ebdbf3af fs: fix uninit warnings on windows localfilesystem 2025-05-09 12:10:00 -07:00
Michael Scire
90f32279a8 libstrat: re-nolto files when compiling for windows-audit 2025-05-09 12:09:59 -07:00
Michael Scire
e590e1adc5 strat: ldr::PlatformId -> ncm::ContentMetaPlatform 2025-05-09 12:09:59 -07:00
Michael Scire
989fb7be0c svc: bump supported kernel version 2024-10-15 21:51:47 -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
ad6124a39d ldr: ProgramInfo is 0x410 now, and fix debug flags for hbl 2024-10-15 21:51:42 -07:00
Michael Scire
b34a796490 pm: add new 19.0.0 commands
This is functionally correct, but I have no idea what these are meant to represent.
These functions are completely unused on NX.
2024-10-15 21:51:41 -07:00
Michael Scire
55281ebb22 ns_mitm: update to support new 19.0.0 command 2024-10-15 21:51:41 -07:00
Michael Scire
6063a0347e ro: support NROs with read-only first page 2024-10-15 21:51:41 -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