Michael Scire
c06a4c696d
kern: Perform page table validity pass during KPageTableImpl::InitializeForKernel
2024-10-10 19:14:07 -07:00
Michael Scire
5c7122d0f3
kern: fix more page table refactor bugs
2024-10-10 18:04:54 -07:00
Michael Scire
ecff16fb3c
kern: first round of page table refactor bug fixes
2024-10-10 16:10:18 -07:00
Michael Scire
ac1a8e749e
kern: update KPageTable::Map for new refactor
2024-10-10 15:29:29 -07:00
Michael Scire
c9df4f8e26
kern: update ChangePermissions to use new iteration logic
2024-10-10 14:20:31 -07:00
Michael Scire
2749ac416e
kern: update KPageTable::Finalize for the refactor
2024-10-10 14:00:15 -07:00
Michael Scire
170688ef30
kern: use new merge pages api
2024-10-10 13:39:08 -07:00
Michael Scire
e2f068548b
kern: implement KPageTableImpl merge
2024-10-10 13:25:37 -07:00
Michael Scire
104be247da
kern: continue page table refactor, implement separate/unmap
2024-10-10 12:58:15 -07:00
Michael Scire
197ffa1dbc
kern: start KPageTable(Impl) refactor, use array-with-levels for KPageTableImpl
2024-10-10 05:31:57 -07:00
Michael Scire
4baf0e8cce
kern: invoke supervisor mode thread functions from C++ context with valid stack frame
2024-10-09 22:01:45 -07:00
Michael Scire
12f7c95c5d
kern/ldr: add support for --x executables
2024-10-09 17:42:02 -07:00
Michael Scire
117da7ff37
kern: fix debug build
2024-10-09 15:12:25 -07:00
Michael Scire
c8e73003f3
kern: allocate all TTBR0 pages during init, use procidx as asid
2024-10-09 14:04:15 -07:00
Michael Scire
c6b2692168
kern: clear gicd/gicc pointers in KInterruptController::Finalize
2024-10-09 12:52:07 -07:00
Michael Scire
456b88ed9a
kern/svc: update WaitForAddress to support 64-bit WaitIfEqual
2024-10-09 11:36:17 -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
Michael Scire
d1f3c4904b
kern: fix minor assembly bugs, avoid unnecessary function call in KScheduler hotloop
2021-10-28 19:16:23 -07:00
Michael Scire
92321ccbc8
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-28 15:42:52 -07:00
Michael Scire
4b7b33809f
kern: optimize and bring into line with N our pstate.i management
2021-10-27 15:00:07 -07:00
Michael Scire
e81a1ce5a8
kern: audit (and fix) our hardware maintenance instructions to match official kernel
2021-10-27 12:31:53 -07:00
Michael Scire
9cc6be4d57
kern: other dmbs in kernel were already dmb ish
2021-10-25 17:38:50 -07:00