Michael Scire
b1ca5b4049
kern: plutoo is an intellectual, I am a fool, fix chicanery
2025-05-09 11:55:21 -07:00
Michael Scire
4580a352c0
kern: use callback to note pte updates in KPageTableImpl
2025-05-09 11:55:21 -07:00
Michael Scire
b27999a116
kern: adjust system registers during exception handling on MTE-violation or kernel address fault
2025-05-09 11:55:21 -07:00
Michael Scire
98e5bd4411
kern: update UserspaceAccess functions for 20.0.0 changes
2025-05-09 11:55:21 -07:00
Michael Scire
85fd13f724
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-04-07 16:49:10 -07:00
Michael Scire
e63cae5c77
kern: Perform page table validity pass during KPageTableImpl::InitializeForKernel
2024-10-15 21:48:59 -07:00
Michael Scire
c911420d6a
kern: fix more page table refactor bugs
2024-10-15 21:48:59 -07:00
Michael Scire
570989384b
kern: first round of page table refactor bug fixes
2024-10-15 21:48:59 -07:00
Michael Scire
4c81432e94
kern: update KPageTable::Map for new refactor
2024-10-15 21:48:59 -07:00
Michael Scire
e1e84d4450
kern: update ChangePermissions to use new iteration logic
2024-10-15 21:48:59 -07:00
Michael Scire
d2656e3948
kern: update KPageTable::Finalize for the refactor
2024-10-15 21:48:59 -07:00
Michael Scire
62abb31122
kern: use new merge pages api
2024-10-15 21:48:59 -07:00
Michael Scire
cb970049db
kern: implement KPageTableImpl merge
2024-10-15 21:48:59 -07:00
Michael Scire
9610f42dc0
kern: continue page table refactor, implement separate/unmap
2024-10-15 21:48:59 -07:00
Michael Scire
02e837d82e
kern: start KPageTable(Impl) refactor, use array-with-levels for KPageTableImpl
2024-10-15 21:48:59 -07:00
Michael Scire
9cfd535568
kern: invoke supervisor mode thread functions from C++ context with valid stack frame
2024-10-15 21:48:59 -07:00
Michael Scire
ff38a32a9b
kern/ldr: add support for --x executables
2024-10-15 21:48:59 -07:00
Michael Scire
3394a88a1a
kern: fix debug build
2024-10-15 21:48:59 -07:00
Michael Scire
a72e39d657
kern: allocate all TTBR0 pages during init, use procidx as asid
2024-10-15 21:48:59 -07:00
Michael Scire
c3fa42d958
kern: clear gicd/gicc pointers in KInterruptController::Finalize
2024-10-15 21:48:59 -07:00
Michael Scire
a0ad3ef949
kern/svc: update WaitForAddress to support 64-bit WaitIfEqual
2024-10-15 21:48:59 -07:00
Michael Scire
10c7a39528
kern/creport: use mod0 to locate symbol table for all modules
2024-09-24 13:15:21 -07:00
Michael Scire
4fe139ea52
kern: return ExceptionType_UnalignedData on data abort caused by alignment fault
2024-03-29 02:41:14 -07:00
Michael Scire
952188fc73
kern: implement new attr tracking for memory range/traversal context
2024-03-29 02:41:14 -07:00
Michael Scire
8aa62a54d8
kern/os: support CreateProcessFlag_EnableAliasRegionExtraSize
2024-03-29 02:41:14 -07:00
Michael Scire
cf5895e04f
kern: use userspace access instructions to read from tlr
2024-03-29 02:41:14 -07:00
Michael Scire
872c18c501
kern: fix some comment typos
2023-11-01 10:25:31 -07:00
Michael Scire
afc0e14556
kern/svc: fix query/insecure names
2023-11-01 10:24:13 -07:00
Michael Scire
4ddfb6183c
kern: split out GetInstructionDataUserMode in exception handler
2023-10-12 08:55:58 -07:00
Michael Scire
2a4d68f916
kern: KPageTable: remove MapFirst operation, replace with MapFirstGroup
2023-10-12 08:55:58 -07:00
Michael Scire
7b523cfc8d
kern: note OnFinalize calls in KPageTable::Finalize
2023-10-12 08:55:58 -07:00
Michael Scire
b7384a8667
kern: KSupervisorPageTable now checks wxn instead of setting it
2023-10-12 08:55:58 -07:00
Michael Scire
85b5f20395
kern: KPageTable::Initialize no longer takes unused process id
2023-10-12 08:55:58 -07:00
Michael Scire
c72ba35684
kern: add speculation barriers after eret
2023-10-12 08:55:58 -07:00
Michael Scire
035cebef9d
kern: refactor init (kill identity map, merge cpu on logic)
2023-02-22 17:19:51 -08:00
Michael Scire
8db22967bf
kern: use variable-count parameter arrays for DebugEvents
2023-02-22 17:19:51 -08:00
Michael Scire
6e2dd791b2
kern: update for new ChangePermissions page table operation
2023-02-22 17:19:51 -08:00
Michael Scire
d5ebf13094
kern: optimize userspace access asm to use cheaper instruction in io memory loops
2023-02-22 17:19:51 -08:00
Michael Scire
695c125721
kern: use different psr masks for 64 and 32-bit El0 threads
2023-02-22 17:19:51 -08:00
Michael Scire
e7e3e7b374
kern: increase stack parameter size by 0x10
2023-02-22 17:19:51 -08:00
Michael Scire
bf4fdf6188
kern: update for new exception flag semantics
2022-10-12 09:15:16 -07:00
Michael Scire
7f2cbba543
kern: Implement new PageTable operations/PhysicalMemory reference semantics
2022-10-12 09:15:16 -07:00
Michael Scire
2e73f33eb0
kern: implement K(Secure)SystemResource
2022-10-12 09:15:16 -07:00
Michael Scire
ff07ba4201
kern: implement revised IPI/SGI semantics
2022-03-23 09:10:50 -07:00
Michael Scire
9d89835ff8
kern: update for new hw maintenance semantics
2022-03-23 09:10:50 -07:00
Michael Scire
6e17317d5d
kern: implement new thread context/fpu semantics
2022-03-23 09:10:50 -07:00
merry
9545cbb4cb
KThreadContext: Use El0PsrMask constant in GetUserContext
2022-03-06 11:22:28 -08:00
SciresM
96f95b9f95
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-02-14 14:45:32 -08:00
Michael Scire
30fac905af
ams: deduplicate static initialization logic
2021-12-13 13:07:03 -08:00
Michael Scire
9d5e652fbd
kern: be a little more consistent about pragma GCC location
2021-11-16 11:25:57 -08:00