Michael Scire
29358dc593
kernel_ldr: use unoptimized memcpy before mmu bringup ( closes #1102 )
...
Before the MMU is up, all reads/writes must be aligned; the optimized
memcpy implementation does not guarantee all reads/writes it performs
are aligned.
This commit splits the libc impl to be separate for kernel/kernel_ldr,
and so now only kernel will use the optimized impl. This is safe,
as the MMU is brought up before kernel begins executing.
2020-08-02 14:40:28 -07:00
Michael Scire
8cd81b3092
kern: fix dynamic calculation of slab heap size
2020-07-31 14:50:52 -07:00
Michael Scire
e1f3bb10a5
kern: clean up majority of TODOs
2020-07-31 14:50:52 -07:00
Michael Scire
1ffe08672d
kern: fix EL0 TLB conflict handler
2020-07-31 14:50:52 -07:00
Michael Scire
7352d87b20
kern: switch memset to optimized impl
2020-07-31 14:50:52 -07:00
Michael Scire
9231646f33
kern: implement SvcSleepSystem
2020-07-31 14:50:52 -07:00
Michael Scire
5fa59ec888
kern: fix kscheduler interrupt api, adjust debug logging
2020-07-31 14:50:52 -07:00
Michael Scire
9beb05da50
kern: retrieve target firmware from exosphere instead of hardcoding
2020-07-31 14:50:52 -07:00
Michael Scire
ef1763334b
kern: patch svc tables via asm, instead of relying on compiler to be nice
2020-07-31 14:50:52 -07:00
Michael Scire
ff022115ca
kern: Support older SVC ABIs
2020-07-31 14:50:52 -07:00
Michael Scire
33434e21ef
kern: Prepare to commit cardinal sin
2020-07-13 17:00:51 -07:00
SciresM
3a1ccdd919
Switch atmosphere's build target to C++20. ( #952 )
...
* ams: update to build with gcc10/c++20
* remove mno-outline-atomics
* ams: take care of most TODO C++20s
* fusee/sept: update for gcc10
* whoosh, your code now uses pre-compiled headers
* make: dependency fixes
2020-05-11 15:02:10 -07:00
Michael Scire
8e75a4169d
ams: revamp target firmware
2020-05-06 22:29:07 -07:00
Michael Scire
970b85bf9a
kern: implement KUnsafeMemory
2020-04-26 02:35:10 -07:00
Michael Scire
6ad0f0e7f2
kern/kldr: fix bugs in physical randomization
2020-04-22 03:45:21 -07:00
Michael Scire
b39b6f0d5b
kern: implement 10.x perm change, fix many page table bugs
2020-04-19 17:16:19 -07:00
Michael Scire
bc1d3ccc91
kern: Update init to reflect 10.0.0 changes
2020-04-18 22:19:09 -07:00
Michael Scire
94b10b5779
ams: fix boot sysmodule/kernel for 10.0.0
2020-04-14 10:11:58 -07:00
Michael Scire
116e00c21c
kernel_ldr: update to support 10.0.0
2020-04-14 07:38:01 -07:00
Michael Scire
96d15b28c6
kern: implement CallSecureMonitor, some of GetInfo/GetSystemInfo
2020-03-18 00:09:50 -07:00
Michael Scire
efae01c165
kern: implement KUserPointer (and test with QueryMemory) in advance of svc dev
2020-02-20 09:05:24 -08:00
Michael Scire
80b115ef57
kern: implement user thread start, el0 code now runs
2020-02-19 21:21:44 -08:00
Michael Scire
c568788609
kern: implement KProcess::Run
2020-02-19 19:38:20 -08:00
Michael Scire
d9c3908caf
kern: mark initial threads as intended constinit
2020-02-19 05:45:32 -08:00
Michael Scire
fba8fb539d
kern: add KProcess members
2020-02-18 05:04:49 -08:00
Michael Scire
30d6b359f9
kern: implement smmu init
2020-02-15 00:00:35 -08:00
Michael Scire
20b5268e90
kern: kern::arm64 -> kern::arch::arm64
2020-02-14 18:22:55 -08:00
Michael Scire
11f70759ce
kern: implement lightlock slowpath (works on hw)
2020-02-14 15:27:34 -08:00
Michael Scire
5b98426171
kern: implement KWorkerTaskManager
2020-02-14 02:56:42 -08:00
Michael Scire
c91386b0fa
kern: implement interrupt thread init
2020-02-14 02:20:33 -08:00
Michael Scire
19e6d2e1c0
kernel_ldr: fix consistency on hardware
2020-02-13 22:53:26 -08:00
Michael Scire
ea0011d572
kern: use TinyMT instead of mt19937_t
2020-02-13 22:37:30 -08:00
Michael Scire
364b04b68a
libmesosphere: move .s to kernel (prevent manifesting in kernelldr)
2020-02-13 22:05:20 -08:00
Michael Scire
8c93eb5712
kern: implement enough of KPageTable to initialize a thread
2020-02-13 17:38:56 -08:00
Michael Scire
919b8124dc
kern: Implement exception vector ASM
2020-02-08 02:49:32 -08:00
Michael Scire
cb6af379d8
kern: implement dynamic slab init + ini relocation
2020-02-07 04:58:35 -08:00
Michael Scire
323858cf96
kern: s/MemoryBlock/MemoryRegion/g
2020-02-05 14:16:56 -08:00
Michael Scire
797c04d19f
kern .fini array: one weird trick
2020-01-31 04:57:28 -08:00
Michael Scire
86eea62cd8
kernel: use .rel.ro
2020-01-31 03:37:49 -08:00
Michael Scire
d5a4c17ee7
kern: fully implement slabheap init
2020-01-30 01:41:59 -08:00
Michael Scire
2faf3d33b5
kern: Implement KAutoObject, KSlabHeap, KLightLock
2020-01-29 22:06:25 -08:00
Michael Scire
981bb1f15d
kern: skeleton enough types to init KCoreLocalRegion in main()
2020-01-29 14:26:24 -08:00
Michael Scire
ad0d2faa6c
meso: makefile improvements, sysreg accessors
2020-01-29 05:37:14 -08:00
Michael Scire
7820e5b759
kern: implement debug register/vectors init
2020-01-29 02:42:41 -08:00
Michael Scire
7c703903ea
kern: implement pool partition memblock setup
2020-01-29 01:49:04 -08:00
Michael Scire
e7dee2a9fc
kern: Implement most of memory init (all cores hit main, but still more to do)
2020-01-28 22:09:47 -08:00
Michael Scire
b2e522c0a0
meso: find -exec sed -i'' -e 's/2018-2019 Atmo/2018-2020 Atmo/g' {} +
2020-01-24 02:12:37 -08:00
Michael Scire
32fb22e361
kern: finish implementing assembly init routines
2020-01-24 02:11:26 -08:00
Michael Scire
b3bfd6c4c9
meso: discard .interp section
2020-01-24 02:11:25 -08:00
Michael Scire
866771fdae
kern: reuse data cache code during init
2020-01-24 02:11:25 -08:00
Michael Scire
308ddecc9c
kern: fix bss end align (now gets through kernelldr on hardware)
2020-01-24 02:11:25 -08:00
Michael Scire
24d41ce55e
kern: push code through call to kernelldr
2020-01-24 02:11:25 -08:00
Michael Scire
bce7133128
meso: add script to build mesosphere.bin
2020-01-24 02:11:24 -08:00
Michael Scire
3982afdd6b
meso: skeleton buildsystem for kernel
2020-01-24 02:11:23 -08:00
Michael Scire
6ecf04c3b7
find -exec sed -i'' -e 's/2018-2019 Atmo/2018-2020 Atmo/g' {} +
2020-01-24 02:10:40 -08:00
Michael Scire
bf5bbfbcef
kernel_ldr: clean up KSystemControl init API
2019-12-31 00:46:09 -08:00
Michael Scire
d10621e832
mesosphere: refactor Elf vs Elf64 distinction
2019-12-31 00:46:09 -08:00
Michael Scire
d3b697fd1d
fusee: inject our kernel_ldr in place of N's
2019-12-31 00:46:09 -08:00
fincs
daa7f5db79
kernel_ldr: Explicitly reserve space for bss section in output .bin
2019-12-31 00:46:09 -08:00
fincs
4adc0e4096
Replace HFILES with HFILES_BIN in all makefiles
2019-12-31 00:46:09 -08:00
Michael Scire
f78653d815
kernelldr: miscellaneous fixes
2019-12-31 00:46:09 -08:00
Michael Scire
3c7c1fbd8a
kernel_ldr: ensure crt0 is at start of output binary
2019-12-31 00:46:09 -08:00
Michael Scire
8efdd04fcd
kernel_ldr: finish implementing all core logic.
2019-12-31 00:46:09 -08:00
fincs
623b5f4eb9
meso: miscellaneous cleanup and build fixes
2019-12-31 00:46:09 -08:00
Michael Scire
2866cb5fe6
mesosphere: Implement kernelldr through first page table mapping
2019-12-31 00:46:09 -08:00
Michael Scire
b5becba8ff
kernelldr: skeleton build system in prep for dev
2019-12-31 00:46:09 -08:00