Commit Graph

195 Commits

Author SHA1 Message Date
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
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
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
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
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
e0998df82e kern: refactor smc helpers to share more common logic 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
43b8461b5f kern/svc: fix query/insecure names 2023-11-16 16:25:26 -07:00
Michael Scire
e07b0a924d kern: Add special-case for InvalidateProcessDataCache on current process 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
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
c8f04e21e5 kern: update KMemoryState, remove bijection (separate IoRegister/IoMemory) 2023-10-12 09:22:23 -07:00
Michael Scire
a6e34647de kern: clear new pages in init page allocator, not init page table 2023-10-12 09:22:22 -07:00
Michael Scire
8d84b5776f kern: add speculation barriers after eret 2023-10-12 09:22:22 -07:00
Michael Scire
d21f281094 kern: remove unnecessary fields from InitArgs (0x80 -> 0x40) 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
8afa5a9057 kern: update for new ChangePermissions page table operation 2023-02-23 09:00:30 -07:00
Michael Scire
07213a23fb kern: update UnmapIoRegion for new Mapping_Memory handling 2023-02-23 09:00:28 -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
30ecdbcf6a kern: update scheduler for new switch count tracking logic 2023-02-23 09:00:26 -07:00
Michael Scire
044c8fbd72 kern: fix unnecessarily strong load in aligned spinlock
Copy-paste error I didn't notice for two years, whoops
2023-01-24 14:39:17 -07:00
Michael Scire
22a4a85fb2 kern: implement Svc(Un)MapInsecureMemory 2022-10-12 09:15:50 -07:00
Michael Scire
e4825cc879 kern: Implement new PageTable operations/PhysicalMemory reference semantics 2022-10-12 09:15:49 -07:00
Michael Scire
cfe81a7eb3 kern: update for new device map 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
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
17ceca9140 kern: fix minor assembly bugs, avoid unnecessary function call in KScheduler hotloop 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
Michael Scire
610e99b277 kern: audit (and fix) our hardware maintenance instructions to match official kernel 2021-10-27 22:57:18 -07:00
Michael Scire
dfba6af22c kern: implement 13.1.0 kernel changes 2021-10-26 01:11:18 -07:00
Michael Scire
3304c91dae kern: add (and use) generic KSystemControlBase 2021-10-26 01:11:18 -07:00
Michael Scire
194e58a3e3 kern/test: add wip qemu-virt board support to mesosphere 2021-10-26 01:11:16 -07:00
Michael Scire
62bdae5b3f kern: devirtualize most things that are free to devirtualize (see #1672) 2021-10-26 01:11:15 -07:00
SciresM
823c0df6b9 kern: avoid constexpr init for many objects (avoids unnecessary memory clear) (#1668) 2021-10-26 01:11:13 -07:00