Commit Graph

193 Commits

Author SHA1 Message Date
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
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
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
b70e367745 kern/ldr: add support for --x executables 2024-10-15 21:51:39 -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
89bfecb6b6 kern/svc: update WaitForAddress to support 64-bit WaitIfEqual 2024-10-15 21:51:35 -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
7f661bd2c8 kern: return ExceptionType_UnalignedData on data abort caused by alignment fault 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
60e3c8a4cc kern/os: support CreateProcessFlag_EnableAliasRegionExtraSize 2024-03-29 02:55:02 -07:00
Michael Scire
d7c77f731e kern: use userspace access instructions to read from tlr 2024-03-29 02:55:00 -07:00
Michael Scire
d7a02b6ca1 kern: fix some comment typos 2023-11-16 16:25:26 -07:00
Michael Scire
43b8461b5f kern/svc: fix query/insecure names 2023-11-16 16:25:26 -07:00
Michael Scire
d213377313 kern: split out GetInstructionDataUserMode in exception handler 2023-10-12 09:22:26 -07:00
Michael Scire
6dcf506423 kern: KPageTable: remove MapFirst operation, replace with MapFirstGroup 2023-10-12 09:22:25 -07:00
Michael Scire
7ac90cdb0d kern: note OnFinalize calls in KPageTable::Finalize 2023-10-12 09:22:25 -07:00
Michael Scire
9f51df06d5 kern: KSupervisorPageTable now checks wxn instead of setting it 2023-10-12 09:22:24 -07:00
Michael Scire
41eea11a19 kern: KPageTable::Initialize no longer takes unused process id 2023-10-12 09:22:24 -07:00
Michael Scire
8d84b5776f kern: add speculation barriers after eret 2023-10-12 09:22:22 -07:00
Michael Scire
03d0fd0f62 kern: refactor init (kill identity map, merge cpu on logic) 2023-02-23 09:00:31 -07:00
Michael Scire
0db64c5e6f kern: use variable-count parameter arrays for DebugEvents 2023-02-23 09:00:31 -07:00
Michael Scire
8afa5a9057 kern: update for new ChangePermissions page table operation 2023-02-23 09:00:30 -07:00
Michael Scire
a761a80252 kern: optimize userspace access asm to use cheaper instruction in io memory loops 2023-02-23 09:00:27 -07:00
Michael Scire
326f737349 kern: use different psr masks for 64 and 32-bit El0 threads 2023-02-23 09:00:27 -07:00
Michael Scire
f81abe0625 kern: increase stack parameter size by 0x10 2023-02-23 09:00:27 -07:00
Michael Scire
a3cbed96d0 kern: update for new exception flag semantics 2022-10-12 09:15:51 -07:00
Michael Scire
e4825cc879 kern: Implement new PageTable operations/PhysicalMemory reference semantics 2022-10-12 09:15:49 -07:00
Michael Scire
8ca94db643 kern: implement K(Secure)SystemResource 2022-10-12 09:15:48 -07:00
Michael Scire
8022175f5f kern: implement revised IPI/SGI semantics 2022-03-23 09:16:07 -07:00
Michael Scire
d066ac3d69 kern: update for new hw maintenance semantics 2022-03-23 09:16:06 -07:00
Michael Scire
f38d589516 kern: implement new thread context/fpu semantics 2022-03-23 09:16:06 -07:00
merry
a2e891d5e8 KThreadContext: Use El0PsrMask constant in GetUserContext 2022-03-23 09:15:46 -07:00
SciresM
00203fd7c3 Integrate new result macros. (#1780)
* result: try out some experimental shenanigans

* result: sketch out some more shenanigans

* result: see what it looks like to convert kernel to use result conds instead of guards

* make rest of kernel use experimental new macro-ing
2022-03-23 09:15:40 -07:00
Michael Scire
9436b9a555 ams: deduplicate static initialization logic 2022-01-19 16:28:54 -08:00
Michael Scire
2409222dd0 kern: be a little more consistent about pragma GCC location 2021-11-30 16:34:45 -08:00
Michael Scire
17ceca9140 kern: fix minor assembly bugs, avoid unnecessary function call in KScheduler hotloop 2021-10-29 17:47:13 -07:00
Michael Scire
e5756ca0b0 kern: fix 32-bit light ipc svc handler asm
Nintendo used to do what we were doing because the function wasn't directly in the handler table,
but we've always been directly in the handler table, so we were trashing the last four arguments to light ipc
when called from aarch32. Nothing uses this, but needed to be fixed.
2021-10-29 17:47:13 -07:00
Michael Scire
cb7f4e7757 kern: optimize and bring into line with N our pstate.i management 2021-10-27 22:57:18 -07:00