Andrew Baumann
1238e67a9e
global rename from kevlar to komodo
2016-08-30 10:43:21 -07:00
Andrew Baumann
3937cb9bbe
pass secure_physbase to monitor by setting it directly from the loader
...
This avoids a special-case SMC call
2016-06-20 12:56:55 -07:00
Andrew Baumann
58dad79479
setup mvbar distinct from secure vbar
2016-06-14 15:52:39 -07:00
Andrew Baumann
a7e674f472
further simplify the monitor <-> bootloader interface, so the initial setup call is just another SMC
2016-06-07 16:31:11 -07:00
Andrew Baumann
a562290644
simplify monitor startup, by moving code to leave secure world into
...
the loader and setting up sp_mon from there
2016-06-06 16:14:47 -07:00
Andrew Baumann
7b83f963f1
initial implementation of address space switch
2016-06-02 13:15:57 -07:00
Andrew Baumann
cf6cc7e98b
clean up monitor's virtual memory layout, so that everything is statically allocated
...
change user-mode VM region to 1GB, so all allocations can be 4kB (including the L1 tables)
added direct-map region, so we can look at by-reference parameters from normal world
2016-05-24 15:34:14 -07:00
Andrew Baumann
d9e0fc37df
checkpoint: using loaderblock in monitor, sizing the page DB, handling trivial SMCs
2016-05-13 16:39:20 -07:00
Andrew Baumann
d02b208626
don't forget to stack LR across SMC C handler; now back into Linux boot
2016-05-13 09:49:45 -07:00
Andrew Baumann
5b04b1c335
checkpoint: started work to pass a loader block to the monitor, and have it always responsible for leaving secure world
...
currently broken, because of a problem with qemu's MSR/MRS instructions that I need to track down
2016-05-12 16:53:53 -07:00
Andrew Baumann
947fb44544
fix alignment bug (and dumb loop) when mapping monitor with a non-empty BSS
2016-05-12 16:32:16 -07:00
Andrew Baumann
7ebda9435e
tweak smc path to avoid using/specifying the immediate, per the ARM SMC ABI spec
2016-04-29 12:14:58 -07:00
Andrew Baumann
5017bee158
SMC test code
...
* avoid trampling r4
* changed from -march=armv7-a to -mcpu=cortex-a7 to enable SMC instruction (why?)
2016-04-19 16:42:46 +01:00
Andrew Baumann
a4eeeec048
enable caches (!) and sharing in PTEs
2016-04-19 11:53:57 +01:00
Andrew Baumann
3a3a8bc386
debugging goop to try to debug hw issue (hang when enabling MMU); no luck yet
2016-04-12 16:25:44 -07:00
Andrew Baumann
a89c1db659
checkpoint: entering linux, and parking other cores
2016-04-10 20:29:41 -07:00
Andrew Baumann
b960572817
now calling into and returning to loader from monitor (in SW PL1)
2016-04-08 21:29:05 -07:00
Andrew Baumann
963cb607f0
checkpoint: fixed some bugs, into early monitor binary (bad stack addr?) with translations on
2016-04-08 16:27:58 -07:00
Andrew Baumann
28a6e1c584
checkpoint: as far as calling into the monitor on qemu, but translations don't seem to work
2016-04-06 16:52:33 -07:00
Andrew Baumann
1e569e9e97
checkpoint: lots of work on mapping monitor, but none of it tested
2016-04-05 16:36:56 -07:00
Andrew Baumann
fe562b0633
add code to reserve high phys mem for the monitor and adjust size reported to linux
2016-04-04 16:49:46 -07:00
Andrew Baumann
f328cf3df3
checkpoint: booting on hw again, looking at atags
2016-04-04 16:18:53 -07:00
Andrew Baumann
95574c16fb
build/link three different blobs (loader, kernel, monitor)
2016-04-01 16:56:13 -07:00
Andrew Baumann
7c25a59e17
setup all cores, and prep for loading a separate secure monitor
2016-04-01 14:53:26 -07:00
Andrew Baumann
a96ba7e116
refactor into subdirectories, after thinking through the components needed
...
cleaned up build system a tad
2016-03-29 16:16:32 -07:00