Commit Graph

497 Commits

Author SHA1 Message Date
Michael Scire
e9d44eb71a kern: fuck the KPolice^H^H^H^H^H^HPageGroups 2021-04-11 03:59:20 -07:00
Michael Scire
0162133f1e kern: update pinning semantics for terminating threads 2021-04-11 03:59:19 -07:00
Michael Scire
863008ab54 kern: ensure handle table is finalized when deferring termination 2021-04-11 03:59:19 -07:00
Michael Scire
40f3724891 kern: simplify handle table registration for port/session 2021-04-11 03:59:18 -07:00
Michael Scire
82c67b4c54 kern: update kdebug process management semantics 2021-04-11 03:59:18 -07:00
Michael Scire
b1b8944ccd kern: update port/session state semantics 2021-04-11 03:59:17 -07:00
Michael Scire
94dce392ff kern: update KLightConditionVariable 2021-04-11 03:59:17 -07:00
Michael Scire
f9cd04c7c4 kern: optimize KHandleTable to use indices instead of pointers 2021-04-11 03:59:17 -07:00
Michael Scire
7c35303c62 kern: KAutoObject destruction is now scheduled for next dpc-time 2021-04-11 03:59:16 -07:00
Michael Scire
13ddcae970 kern: update for new slab resource counts/extents 2021-04-11 03:59:16 -07:00
Michael Scire
400137d06b kern: reallocate pool distributions for 8GB units 2021-04-11 03:59:16 -07:00
Michael Scire
0357a98972 kern: simplify global rng initialization 2021-04-11 03:59:15 -07:00
Michael Scire
cf19a7b64d kern: load initial process binary from user pool, rather than from pt heap 2021-04-11 03:59:15 -07:00
Michael Scire
3ebf91304e kern: update Initialize0 for new changes 2021-04-11 03:59:15 -07:00
Michael Scire
a1abde34a9 kern: update KConditionVariable::WaitForAddress/Wait 2021-04-11 03:59:14 -07:00
Michael Scire
438fc774ba kern: trivially optimize userspace io memory write 2021-04-11 03:59:14 -07:00
Michael Scire
e4b271b9bc kern: add bounds checking to KHandleTable::Register/Unreserve 2021-04-11 03:59:14 -07:00
Michael Scire
324ec34f5c kern: update set/way cache operations for new semantics 2021-04-11 03:59:13 -07:00
Michael Scire
2b10401498 kern: if a page table region is zero-size, nothing overlaps it 2021-04-11 03:59:13 -07:00
Michael Scire
50ce41adf2 kern: use KScopedLightLockPair helper for page table pair-locks 2021-04-11 03:59:12 -07:00
Michael Scire
43900d4765 kern: track mapped ipc server memory in page table 2021-04-11 03:59:12 -07:00
Michael Scire
8df6062a1d kern: add KPageTableBase::Read/WriteDebugIoMemory 2021-04-11 03:59:12 -07:00
Michael Scire
a9f81928f7 kern: flush memory before reading in KPageTableBase::ReadDebugMemory 2021-04-11 03:59:11 -07:00
Michael Scire
6eda131ab6 kern: update KMemoryBlockManagerUpdaterAllocator for new ctor/init semantics 2021-04-11 03:59:11 -07:00
Michael Scire
e2f21cbd84 kern: swap tpidr_el1/cntv_cval_el0 as scratch vs exception stack 2021-04-11 03:59:11 -07:00
Michael Scire
c39bce4620 kern: support immortal processes 2021-04-11 03:59:10 -07:00
Michael Scire
ec7e3fb07f kern: update process/thread for new running/termination semantics 2021-04-11 03:59:10 -07:00
Michael Scire
1328f17fb1 kern: unconditionally set thread state when appropriate 2021-04-11 03:59:10 -07:00
Michael Scire
d31612974a kern: update kernel waiter management rules 2021-04-11 03:59:09 -07:00
Michael Scire
be127dfc4b kern: update KInterruptEvent to store core id 2021-04-11 03:59:09 -07:00
Michael Scire
f11f6ec313 kern: update pinned thread priority rules 2021-04-11 03:59:09 -07:00
Michael Scire
e40ccfb4ca kern: add new checks to SetThreadPriority/CoreMask 2021-04-11 03:59:08 -07:00
Michael Scire
e597eb5411 kern: KLinkedList no longer exists 2021-04-11 03:59:08 -07:00
Michael Scire
af72072313 kern: bump svc limit to 192 from 128 2021-04-11 03:59:07 -07:00
Michael Scire
9b47aa6e08 ams: prefer construct_at/destroy_at over placement new/explicit destructor 2021-04-11 03:59:04 -07:00
Michael Scire
f09107ff50 kern: add extension InfoType for retrieving current process handle. 2021-04-11 03:59:01 -07:00
Michael Scire
5daccda627 kern: use fix usage of incorrect page table for UserBuffer ipc 2021-04-11 03:59:00 -07:00
Michael Scire
3888feb3fb kern: fix inverted conditional in KDebugBase::SetThreadContext 2021-04-11 03:59:00 -07:00
Michael Scire
c766cc8347 kern: Increase reserved system memory, require mesosphere for htc/tma 2021-04-11 03:58:54 -07:00
Michael Scire
e1cc9f25a9 kern: alleviate a little KPort pressure. 2021-04-11 03:58:27 -07:00
Michael Scire
832f0f441d kern: fix support for virtual core IDs 2021-02-15 19:51:57 -08:00
Michael Scire
a8d1eab91a meso: update for new fatal encoding 2021-02-02 12:16:29 -08:00
Michael Scire
6166a74c12 kern: fix scheduler update semantics in KLightLock::LockSlowPath 2021-02-02 12:16:27 -08:00
Michael Scire
b3eef9315b kern: further codegen tweaks 2021-01-13 10:41:27 -08:00
Michael Scire
ca5e69f16d kern: greatly improve codegen for atomics, scheduler 2021-01-13 10:41:26 -08:00
Michael Scire
514756094b kern: fix svc bounds checking for main memory size 4GB -> 8GB (closes #1320) 2021-01-13 10:41:26 -08:00
Michael Scire
bb30453d43 kern: fix KTrace buffer memory region type to match official kernel 2020-12-28 17:34:07 -08:00
ameerj
e7f5e95d04 fix typo in KServerPort::Destroy() 2020-12-28 17:34:07 -08:00
Michael Scire
4ddacf3384 kern: refactor to use m_ for member variables 2020-12-19 10:21:52 -08:00
Michael Scire
85e817da3e kern: fix inverted conditional in waiter debug print 2020-12-19 10:21:48 -08:00
Michael Scire
15189e577e kern: fix some typos/naming semantics 2020-12-19 10:21:47 -08:00
Michael Scire
cdbf881e99 kern: implement process cpu utilization debug 2020-12-19 10:21:47 -08:00
Michael Scire
69333c7fc0 kern: add kernel thread utilization debug 2020-12-19 10:21:47 -08:00
Michael Scire
02453fc15f kern: add page table contents debug 2020-12-19 10:21:46 -08:00
Michael Scire
59b4e75021 kern: cfi fix pt 2 2020-12-11 05:02:36 -08:00
Michael Scire
da89824925 kern: fix cfi (requires x18 not cleared on return to userland) 2020-12-11 05:02:35 -08:00
Michael Scire
5a18bea645 kern: fix building debug config 2020-12-11 03:49:04 -08:00
Michael Scire
e80707f2df kern: update for 11.0.1 2020-12-11 03:49:02 -08:00
Michael Scire
eb621c6aae kern: implement memory debug 2020-12-11 03:49:02 -08:00
Michael Scire
247bade76a kern/sm: fix debug port output 2020-12-11 03:49:02 -08:00
Michael Scire
7519d17941 kern: add kernel object debug 2020-12-11 03:49:01 -08:00
Michael Scire
4c0b780017 kern: implement port debug 2020-12-11 03:49:01 -08:00
Michael Scire
f3882fa0f7 kern: add handle table/process/suspend/resume debug 2020-12-11 03:49:01 -08:00
Michael Scire
9784530bcf kern: implement thread call stack debug 2020-12-11 03:49:00 -08:00
Michael Scire
a7b7dd1257 kern: add debug thread dump 2020-12-11 03:49:00 -08:00
Michael Scire
98c80d487b meso: properly initialize per-thread CFI-value for 11.x 2020-12-11 03:48:59 -08:00
Michael Scire
3355f97275 exo/meso/fusee: support dynamic control of log port/baud rate 2020-12-11 03:48:58 -08:00
Michael Scire
ccd1f3b982 kern: add support for InfoType_FreeThreadCount 2020-12-11 03:48:56 -08:00
Michael Scire
de5341ecde kern: fix inverted conditional in UnmapProcessCodeMemory 2020-12-03 12:48:16 -08:00
Michael Scire
9c3e45a856 kern: fix reboot to fatal error 2020-12-03 12:48:16 -08:00
Michael Scire
9586142e90 kern: tweak optimization settings for hot paths 2020-12-02 06:53:22 -08:00
Michael Scire
b9504f356f microkernel: hot paths are pretty fucking hot 2020-12-02 06:53:20 -08:00
Michael Scire
929e38cce9 kern: update KConditionVariable to support new has_waiter_flag rules 2020-12-02 06:53:20 -08:00
Michael Scire
f3e127f147 kern: fix SvcGetResourceLimitPeakValue 2020-12-02 06:53:20 -08:00
Michael Scire
7abc665807 kern: fix copy/paste error 2020-12-02 06:53:19 -08:00
Michael Scire
9d51004a9b kern: fix bugs caused by UB + transition to -Os 2020-12-02 06:53:19 -08:00
Michael Scire
31603c2a5a kern: reduce KMemoryRegionAllocator slab size 2020-12-02 06:53:18 -08:00
Michael Scire
b5eb0bb978 kern: assume that uart has been setup by secmon 2020-12-02 06:53:18 -08:00
Michael Scire
0eb6e0a963 kern: add new overflow checks on KMemoryRegions 2020-12-02 06:53:17 -08:00
Michael Scire
763b00027b kern: fix assertion in the multi-region pool partition code 2020-12-02 06:53:17 -08:00
Michael Scire
2db30d4d46 kern: improve KMemoryManager pool detection 2020-12-02 06:53:17 -08:00
Michael Scire
0b36215bfa kern: update KMemoryRegion to store last address rather than size 2020-12-02 06:53:16 -08:00
Michael Scire
2d1ebf4406 kern: add KAlpha/KBeta 2020-12-02 06:53:16 -08:00
Michael Scire
7779d7d06d kern: stubs for Svc39, 3A, 46, 47 2020-12-02 06:53:16 -08:00
Michael Scire
c24ba715b4 KConditionVariable/KAddressArbiter: no need for global compare thread 2020-12-02 06:53:15 -08:00
Michael Scire
e4774a2685 kern: implement 64-virtual-core interface 2020-12-02 06:53:15 -08:00
Michael Scire
a57c7f7a48 kern: cleanup KThread, optimize/normalize KThreadQueue/KWaitObject 2020-12-02 06:53:14 -08:00
Michael Scire
a01f7ab1c9 kern: improve KSynchronizationObject, kill KSynchronization 2020-12-02 06:53:14 -08:00
Michael Scire
1806dc45ee kern: update for new interrupt event locking scheme 2020-12-02 06:53:13 -08:00
Michael Scire
0e6ed3b71b kern: fix sleep save/resume for new x18/tpidr scheme 2020-12-02 06:53:13 -08:00
Michael Scire
b0c96b3bb6 kern: fix race-crash on interrupt controller save, improve fatal output 2020-12-02 06:53:13 -08:00
Michael Scire
1582110af7 kern: KObjectContainer::Register -> void 2020-12-02 06:53:12 -08:00
Michael Scire
0c73792282 kern: Kill KCoreLocalRegion 2020-12-02 06:53:12 -08:00
Michael Scire
43a0706e96 kern: remove more of clc 2020-12-02 06:53:12 -08:00
Michael Scire
7b9b9b7a7a kern: move scheduler/interrupt task manager out of core local region 2020-12-02 06:53:12 -08:00
Michael Scire
f36d24e1ed kern: update KHardwareTimer, move out of KCoreLocalRegion 2020-12-02 06:53:11 -08:00
Michael Scire
8ec3f47a80 kern: use single interrupt manager object 2020-12-02 06:53:11 -08:00
Michael Scire
843e2b08fe kern: fix unnecessary align-down 2020-12-02 06:53:11 -08:00
Michael Scire
c21e43f7e1 kern: fix error in SeparatePages 2020-12-02 06:53:11 -08:00
Michael Scire
f8999a2318 kern: remove KPageTableBase::MakeAndOpenContiguousPageGroup 2020-12-02 06:53:10 -08:00
Michael Scire
397d317a6c kern: implement DisableDeviceAddressSpaceMerge 2020-12-02 06:53:10 -08:00
Michael Scire
0063ede635 kern: SvcGetResourceLimitPeakValue 2020-12-02 06:53:10 -08:00
Michael Scire
396dc066e9 kern: KMemoryManager::Allocate -> AllocateAndOpen 2020-12-02 06:53:09 -08:00
Michael Scire
1260d85bb9 kern: implement kmemoryblock/kmemoryinfo merge disable 2020-12-02 06:53:09 -08:00
Michael Scire
dd799d3909 kern: remove KMemoryAttribute_AnyLocked 2020-12-02 06:53:09 -08:00
Michael Scire
f152b16639 kern: update KMemoryBlockManagerUpdateAllocator api 2020-12-02 06:53:09 -08:00
Michael Scire
5f885a3b22 kern: implement new software-reserved page table bits 2020-12-02 06:53:08 -08:00
Michael Scire
394112f9ac kern: update KPageTableBase for new disable-merge attrs 2020-12-02 06:53:08 -08:00
SciresM
791b402320 sdmmc: implement driver suitable for fs + bootloader
* sdmmc: begin skeletoning sdmmc driver

* sdmmc: add most of SdHostStandardController

* sdmmc: implement most of SdmmcController

* sdmmc: Sdmmc2Controller

* sdmmc: skeleton implementation of Sdmmc1Controller

* sdmmc: complete abstract logic for Sdmmc1 power controller

* sdmmc: implement gpio handling for sdmmc1-register-control

* sdmmc: implement pinmux handling for sdmmc1-register-control

* sdmmc: fix building for arm32 and in stratosphere context

* sdmmc: implement voltage enable/set for sdmmc1-register-control

* util: move T(V)SNPrintf from kernel to util

* sdmmc: implement BaseDeviceAccessor

* sdmmc: implement MmcDeviceAccessor

* sdmmc: implement clock reset controller for register api

* sdmmc: fix bug in WaitWhileCommandInhibit, add mmc accessors

* exo: add sdmmc test program

* sdmmc: fix speed mode extension, add CheckMmcConnection for debug

* sdmmc: add DeviceDetector, gpio: implement client api

* gpio: modernize client api instead of doing it the lazy way

* sdmmc: SdCardDeviceAccessor impl

* sdmmc: update test program to read first two sectors of sd card

* sdmmc: fix vref sel

* sdmmc: finish outward-facing api (untested)

* ams: changes for libvapours including tegra register defs

* sdmmc: remove hwinit
2020-12-02 06:52:42 -08:00
Michael Scire
10e9e0e8f9 docs/fatal error: update for 0.15.0 2020-10-26 16:03:09 -07:00
Michael Scire
0f3085b8f6 kern: perform rescheduling on dispatch re-enable (closes #1169) 2020-10-26 16:03:08 -07:00
Michael Scire
b953b82c3b kern: minor behavioral fixes to condvar/address arbiter 2020-10-26 16:03:08 -07:00
Michael Scire
dbbf26f03c ams: expose reboot payload for kernel panic 2020-10-26 16:03:06 -07:00
Michael Scire
e7e63e19b9 kern: fix KCodeMemory SVCs when Owner process != Generator process 2020-09-17 08:34:23 -07:00
Michael Scire
ba45f73e40 kern: generate fatal error on panic 2020-09-17 08:34:22 -07:00
Michael Scire
f7a3eead0c kern: add build-define for logging to iram ringbuffer 2020-09-17 08:34:22 -07:00
Michael Scire
a1ef94c342 kern: lps driver fixes, sleep confirmed working on 1.0.0 2020-09-07 10:51:52 -07:00
Michael Scire
81a47c1cb8 kern: fix c/p error 2020-09-07 10:51:52 -07:00
Michael Scire
6cda01f88f kern: add debug logging on smmu error interrupt 2020-09-07 10:51:52 -07:00
Michael Scire
51c951f4ac kern: finish 1.x lps driver 2020-09-07 10:51:51 -07:00
Michael Scire
c93a3b2e8b kern: add most of 1.x lps driver 2020-09-07 10:51:51 -07:00
Michael Scire
b4dbd97381 kern: skeleton legacy lps driver 2020-09-07 10:51:51 -07:00
Michael Scire
6182330d05 exo/kern: 1.0.0 requires access to bpmp smmu regs, userland (am) needs to map bpmp exception vectors 2020-09-07 10:51:50 -07:00
Michael Scire
22f2946671 kern: begin 1.0.0 backwards compat changes (kips run, full boot fails) 2020-09-07 10:51:50 -07:00
Michael Scire
1aedaa0f91 kern: support 2-pool layout on 2.x-4.x instead of modern 4-pool layout 2020-09-07 10:51:50 -07:00
Michael Scire
6cf1e0cece kern: change terminology metadata -> management 2020-09-07 10:51:50 -07:00
Michael Scire
00a43ac776 kern: revamp KMemoryRegionType to better encode derivation hierarchies 2020-09-07 10:51:49 -07:00
Michael Scire
ae14cf51b5 kern: PMC must be user-mappable for 1.0.0 compat 2020-09-07 10:51:48 -07:00
Michael Scire
c89927177e kern: expose mesosphere meta over GetInfo instead of GetSystemInfo 2020-09-07 10:51:48 -07:00
Michael Scire
8836a5385c kern/pm: support for 5.x under mesosphere 2020-09-07 10:51:47 -07:00
Michael Scire
658b92e17a kern: add version bounds checking 2020-09-07 10:51:45 -07:00
Michael Scire
5bc3307ffa kern: improve resource region size definitions/calculations 2020-09-07 10:51:45 -07:00
Michael Scire
959122a849 kern: resolve NonSecure definition TODO 2020-09-07 10:51:44 -07:00
Michael Scire
1007d8756a kern: correct thread termination atomicity 2020-09-07 10:51:44 -07:00
Michael Scire
f577ffa682 kern: fix reference leak in KThread::GetThreadFromId callers 2020-09-07 10:51:44 -07:00
Michael Scire
aea200fece kern: non-loop cas-weak -> cas-strong 2020-09-07 10:51:44 -07:00
Michael Scire
e1e2be41d6 kern: fix bug in KScheduler::ClearPreviousThread 2020-09-07 10:51:43 -07:00
fincs
4916f3f7f8 kern: move SetupPoolPartitionMemoryRegions into board specific implementation 2020-09-07 10:51:42 -07:00
Michael Scire
e6bf8d2d97 kern: use std::atomic_ref instead of reinterpret_cast to std::atomic 2020-09-07 10:51:42 -07:00
Michael Scire
78161021f4 kern: use common GIC implementation for arm/arm64 2020-09-07 10:51:41 -07:00
Michael Scire
4a50b00cab kern: correct flushing of init arguments 2020-09-07 10:51:41 -07:00
Michael Scire
f02868d886 kern: simplify SetupForIpcClient cleanup 2020-09-07 10:51:41 -07:00
Michael Scire
d7e420c895 kern: SvcLegacyGetFutureThreadInfo 2020-09-07 10:51:40 -07:00
Michael Scire
4cafc6acb9 kern: rename CacheHelper operation for accuracy 2020-09-07 10:51:40 -07:00
Michael Scire
23864afe32 kern: KPageTableBase::WriteDebugMemory stores/invalidates cache 2020-09-07 10:51:40 -07:00
Michael Scire
888f5cdd20 kern: fix multicore instruction cache invalidation 2020-09-07 10:51:40 -07:00
Michael Scire
d2dd922f47 kern: add tracing for irq/scheduling 2020-09-07 10:51:39 -07:00
Michael Scire
b876337ffd kern: cleanup some KMemoryManager functions 2020-09-07 10:51:39 -07:00
Michael Scire
f0b455de83 kern: refactor KMemoryLayout 2020-09-07 10:51:39 -07:00
Michael Scire
0a4a0d3f03 kern: N reduced the slabheap gap size in 10.0.0 2020-09-07 10:51:38 -07:00