TuxSH
8538fed043
thermosphere: optimize barrier and core_ctx
2021-02-19 21:51:57 +00:00
TuxSH
217c1ad054
thermosphere: implement reading and writing guest memory
2021-02-19 21:51:50 +00:00
TuxSH
626f0ecb98
thermosphere: major refactor of memory map
...
- use recursive stage 1 page table (thanks @fincs for this idea)
- NULL now unmapped
- no identity mapping
- image + GICv2 now mapped at the same address for every platform
- tempbss mapped just after "real" bss, can now steal unused mem from
the latter
- no hardcoded VAs for other MMIO devices
- tegra: remove timers, use the generic timer instead
2021-02-19 21:51:48 +00:00
TuxSH
72d1992eec
thermosphere: use barriers and caches *properly*. Cache code refactoring
...
- set/way cache ops create losses of coherency, do not broadcast and are only meant to be used on boot, period.
Cache ops by VA are **the only way** to do data cache maintenance.
Fix a bug where the L2 cache was evicted by each core. It shouldn't have.
- Cleaning dcache to PoU and invalidating icache to PoU, by VA is sufficient for self-modifying code
- Since we operate within a single cluster and don't do DMA, we almost always operate within the inner shareability domain
(commit untested on real hw)
2021-02-19 21:51:47 +00:00
TuxSH
b6a130547a
thermosphere: add common asm macros
2021-02-19 21:51:46 +00:00
TuxSH
68a1ce6dd2
thermosphere: properly implement guest timer stuff
2021-02-19 21:51:45 +00:00
TuxSH
501472324f
thermosphere: refactor exception handlers & add stolen time/emulated ptimer logic
2021-02-19 21:51:42 +00:00
TuxSH
ef79908594
thermosphere: add CFI where needed, add PANIC macro, etc.
2021-02-19 21:51:38 +00:00
TuxSH
9bc0ed2f70
thermosphere: refactor crt0 + watchpoint init
2021-02-19 21:51:31 +00:00
TuxSH
ff9714d4f6
thermopshere: refactor jump-to-kernel ,add single-step code
...
not working under qemu yet though
2021-02-19 21:51:30 +00:00
TuxSH
eb27c36709
thermosphere: impl stage2 translation
2021-02-19 21:51:29 +00:00
TuxSH
045f556f80
thermosphere: enable EL2 stage1 translation (doesn't take much space)
...
Identity map using 1GB L1 blocks
2021-02-19 21:51:27 +00:00
TuxSH
a11b0b6e0e
thermosphere: fix x18 init, etc.
2021-02-19 21:51:27 +00:00
TuxSH
3fa9133814
thermosphere: add semihosting support & load a kernel using it when needed
...
basically host i/o
2021-02-19 21:51:27 +00:00
TuxSH
6d33ebceef
thermosphere: cpu_on hook & skeleton for other PSCI functions
2021-02-19 21:51:26 +00:00
TuxSH
b686af2008
thermosphere: use adrp
2021-02-19 21:51:25 +00:00
TuxSH
ad6db14526
thermosphere: Fix wrong register allocation
2021-02-19 21:51:25 +00:00
TuxSH
61b6f06766
thermosphere: unfuck qemu JIT, fix exc. handling bug, add cache funcs
2021-02-19 21:51:24 +00:00
TuxSH
16cfa1305d
thermosphere: use x18 but qemu shits the bed
2021-02-19 21:51:24 +00:00
TuxSH
4e0eef2784
thermosphere: start exception handling
2021-02-19 21:51:19 +00:00
TuxSH
4e6108839d
thermosphere: fix bugs:
...
- missing barriers after setting elr/spsr
- .text.start* matching .text.startup (which contains main, thanks @fincs)
2021-02-19 21:51:17 +00:00
TuxSH
1d58ba8d52
thermosphere: attempt to run
2021-02-19 21:51:17 +00:00
TuxSH
bd9152215f
thermosphere: "write" placeholder code
2021-02-19 21:51:16 +00:00
TuxSH
1f7a1f71d6
thermosphere: remove legacy code
2021-02-19 21:51:16 +00: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
2g4y1
3cb60b324b
More 2019 Copyrights ( #503 )
2019-04-08 12:47:01 +02:00
hexkyz
28e4d4411d
Add and fix copyright notices for better GPL compliance (thanks @naehrwert and @CTCaer).
2018-09-07 16:00:13 +01:00
Kate J. Temkin
d104ff61ca
thermosphere: add in basic hypervisor skeleton
2018-04-20 04:10:44 -06:00