Commit graph

1148 commits

Author SHA1 Message Date
Adrian Danis
12a1a61686 riscv: Respect read only mappings
Previously write permissions would be given to mappings that were marked as VMReadOnly
2018-04-18 10:10:14 +10:00
Adrian Danis
5300421eac riscv: Implement executable attribute
Passes the executable attribute from the VMAttributes given by the user into the creation
of the page table entry.
2018-04-18 10:10:14 +10:00
Adrian Danis
5b17cd9648 riscv: Missing arch cap abstractions
These are needed after rebase
2018-04-18 10:10:14 +10:00
Adrian Danis
aafa594258 RISCV: Place TODOs in the source 2018-04-18 10:10:14 +10:00
Hesham Almatary
83ba084713 [SELFOUR-1156] RISC-V Port
Experimental release that supports both RV32 and RV64
2018-04-18 10:10:14 +10:00
Yanyan Shen
511be7d91d armv8/hyp: Call invalidateASIDEntry 2018-04-17 15:32:48 +10:00
Yanyan Shen
28368e4492 armv8/hyp: Use invalidateTLBASID/ASIDVA functions 2018-04-17 15:32:48 +10:00
Yanyan Shen
49cff315eb armv8/hyp: Add ASID/TLB helper functions 2018-04-17 15:32:48 +10:00
Yanyan Shen
f97604c34e armv8/hyp: Add VMID reuse code 2018-04-17 15:32:48 +10:00
Yanyan Shen
d23a02f3e4 armv8/hyp: Add HW ASID variables 2018-04-17 15:32:48 +10:00
Yanyan Shen
6ad387d2bf armv8/hyp: Dissociate VCPU when deleting a thread 2018-04-17 15:04:42 +10:00
Yanyan Shen
b6e201ab07 armv8/hyp: Parse inputs for VCPUInjectIRQ 2018-04-13 09:51:41 +10:00
Yanyan Shen
aeb2e4e426 armv8/hyp: Sync the status of vgic.lr 2018-04-13 09:51:41 +10:00
Yanyan Shen
3d9962eb20 arm/hyp: Call aarch64 VCPU functions 2018-04-13 09:51:41 +10:00
Yanyan Shen
f17d12b3b5 arm/hyp: Call aarch64 vcpu_enable/disable code 2018-04-13 09:51:41 +10:00
Gerwin Klein
d1335fdbad stricter test for max object size
The previous test with word_bits was sufficient on 32 bit platforms, but
64 bit platforms may set a much smaller value for seL4_MaxUntypedBits in
relation to word_bits.
2018-04-11 08:01:16 +10:00
Gerwin Klein
ab313d62b0 avoid shift overflow for large Untyped's on 64bit platforms 2018-04-11 08:01:07 +10:00
Yanyan Shen
a72f8beb8b arm/hyp: ksCurThread -> NODE_STATE(ksCurThread) 2018-04-06 13:44:53 +10:00
Yanyan Shen
bc162cae6a armv7/hyp: Move v7 hyp code to armv7-a/armv/vcpu.h 2018-04-06 13:44:53 +10:00
Yanyan Shen
7f7a12c383 arm/hyp: uint32_t -> word_t 2018-04-06 13:44:53 +10:00
Yanyan Shen
e2bb6b2949 arm/hyp: Move common HCR macros to vcpu.h 2018-04-06 13:44:53 +10:00
Yanyan Shen
094fddb79d arm: Move VGIC code to gic_pl390 files 2018-04-06 13:44:53 +10:00
Kent McLeod
53b86d0e9d cmake: Add missing KernelArmCortexA7 variable
If this isn't explicitly set to off like the others, it ends up being
defined
2018-04-06 09:19:59 +10:00
Yanyan Shen
07b29e79fa armv8: Fix style 2018-04-04 14:21:53 +10:00
Yanyan Shen
dca5dff28b armv8/hyp: Flush cache by kernel VA in EL2 2018-04-04 11:30:23 +10:00
Yanyan Shen
d7ea407587 armv8: memzero an ASID pool with seL4_ASIDPoolBits 2018-04-04 11:30:23 +10:00
Yanyan Shen
a430d97e28 armv8/hyp: Switch VCPU in setVMRoot when HYP is on 2018-04-04 11:30:23 +10:00
Yanyan Shen
e43e4186bc armv8/hyp: Handle VM faults triggered by VCPUs 2018-04-04 11:30:23 +10:00
Yanyan Shen
a4f3fb285c armv8/hyp: Use S2 format for userland if HYP is on 2018-04-04 11:30:23 +10:00
Yanyan Shen
c31f31b8e7 armv8/hyp: Support EL2 stage-1 for kernel VSpace 2018-04-04 11:30:23 +10:00
Yanyan Shen
a948887cfc armv8/hyp: Map AP to stage-2 access permissions 2018-04-04 11:30:23 +10:00
Yanyan Shen
d4752177a0 armv8/hyp: Add stage-2 memory attributes 2018-04-04 11:30:23 +10:00
Yanyan Shen
f563916076 armv8/hyp: Enable FPU in EL0/1 when HYP is on
The disableFpu() for EL2 traps any FPU instruction to EL2 even
if the FPU is enabled for EL0/1 in CPACR_EL1. For EL2, we
use CPTR_EL2 to enable/disable trapping FPU instructions.
Therefore, we enable FPU for EL0/1 by default so that no additional
exceptions will be generated when we enable FPU access in CPTR_EL2.
2018-04-04 10:52:16 +10:00
Yanyan Shen
a07de033d6 armv8: Add isFPUEnabledCached for each core 2018-04-04 10:52:16 +10:00
Yanyan Shen
5cf1d386d2 armv8: Fix style 2018-04-03 13:48:39 +10:00
Yanyan Shen
d6ea386129 armv8/hyp: Add cap_vcpu_cap in objecttype.c 2018-03-28 12:15:09 +11:00
Yanyan Shen
d8d006fab9 armv8/hyp: Add armHSCurVCPU and armHSVCPUActive 2018-03-28 12:15:09 +11:00
Yanyan Shen
6ae2ad9e21 armv8: Add HVC64 and VCPU faults handlers for EL2. 2018-03-28 11:17:58 +11:00
Yanyan Shen
4a67506cd3 armv8: Add EL2 support for kernel exit code 2018-03-28 11:17:58 +11:00
Yanyan Shen
89a0335018 armv8: Load kernel stack in invalid_vector_entry
The halt may call printf, so we set up the kernel stack.
2018-03-28 11:17:58 +11:00
Yanyan Shen
94255c728c armv8: Load kernel stack in cur_el_sync
The halt may call printf, so we set up the kernel stack.
2018-03-28 11:17:58 +11:00
Yanyan Shen
5a01e5b275 armv8: Add ELR, ESR, SPSR, and TPIDR for EL2 2018-03-28 11:17:58 +11:00
Yanyan Shen
d624bb2c8b armv8: Generalise label names for EL1/2 2018-03-28 11:17:58 +11:00
Yanyan Shen
c2b5d4ad91 armv8: Introduce ELR, ESR, SPSR, and TPIDR for EL1 2018-03-28 11:17:58 +11:00
Yanyan Shen
a47d4b8759 armv8: Generalise ESR shift and constants 2018-03-28 11:17:58 +11:00
Bruce Mitchener
b942a50441 Fix trivial comment typos. 2018-03-27 10:51:26 +11:00
Gerwin Klein
54dd138005 make TCB offset parametric in verification annotation 2018-03-26 09:03:01 +11:00
Adrian Danis
87d4f7bf31 arm: Inform user when not using a supported FPU
This just provides potentially useful information to the user to alert them when they
have configured a kernel without FPU support but are in fact running on a system that
has a usable FPU.
2018-03-23 12:29:33 +11:00
Adrian Danis
e0281bbccb arm: Make supportsAsyncExceptions always visible in compilation
This function has no dependencies and can be visible with or without FPU being enabled.
Having it visible will allow for using it to provide better information to the user
when CONFIG_HAVE_FPU is disabled.
2018-03-23 12:29:33 +11:00
Adrian Danis
5bb06b08ce cmake: Set correct FPU variable 2018-03-23 12:29:33 +11:00