Commit graph

2164 commits

Author SHA1 Message Date
Yanyan Shen
d8d006fab9 armv8/hyp: Add armHSCurVCPU and armHSVCPUActive 2018-03-28 12:15:09 +11:00
Yanyan Shen
2a7076177f armv8: Use array regs in vcpu for aarch64 2018-03-28 12:15:09 +11:00
Yanyan Shen
0b71b332c1 armv8: Add VCPU_PTR and VCPU_REF 2018-03-28 12:15:09 +11:00
Yanyan Shen
942b1bd2a9 armv8: Add VCPU_SIZE_BITS for EL2 2018-03-28 12:15:09 +11:00
Yanyan Shen
e289a0526c armv8: Add tcbVCPU for EL2 arch_tcb 2018-03-28 12:15:09 +11:00
Yanyan Shen
0ab42919dd libsel4/armv8: Add seL4_VCPUReg for EL2 2018-03-28 12:15:09 +11:00
Yanyan Shen
a4fef8f4d9 libsel4/armv8: Add VGICMaintenance_/VCPUFault_Msg 2018-03-28 12:15:09 +11:00
Yanyan Shen
28cc72e972 libsel4/armv8: Add seL4_ARM_VCPUBits&seL4_VCPUBits 2018-03-28 12:15:09 +11:00
Yanyan Shen
544c73b4cb armv8: Handle SPSR_EL1 in sanitiseRegister for VMs 2018-03-28 12:15:04 +11:00
Yanyan Shen
7246586310 armv8: Define PPTR_TOP for EL2 2018-03-28 12:11:33 +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
Adrian Danis
a7a6d9e229 x86: Increase TCB size for large xsave regions 2018-03-27 13:42:09 +11:00
Bruce Mitchener
b942a50441 Fix trivial comment typos. 2018-03-27 10:51:26 +11:00
Adrian Danis
cc9ccb497b arm: Correct TCB size under multicore 2018-03-27 10:25:07 +11:00
Anna Lyons
6e7f334f83 Update DOI link in README.md
Previously the DOI link was to one very old version. Update with a link
that links to the latest version automatically.
2018-03-26 14:42:54 +11:00
Adrian Danis
f5d0b93ccf arm: Correct TCB size when using FPU and virtualisation 2018-03-26 14:41:28 +11:00
Gerwin Klein
54dd138005 make TCB offset parametric in verification annotation 2018-03-26 09:03:01 +11:00
Yanyan Shen
bdbe4866ce armv8/libsel4: Add VGICMaintenance and VCPUFault 2018-03-23 17:39:49 +11:00
Yanyan Shen
a5e683b70f armv8: Extend AttrIndx to 4-bit for stage-2 2018-03-23 17:39:49 +11:00
Yanyan Shen
894f3b9d94 armv8: Add virq types 2018-03-23 17:39:49 +11:00
Yanyan Shen
ba0da28e30 armv8: Add VGICMaintenance and VCPUFault 2018-03-23 17:39:49 +11:00
Yanyan Shen
5a8b96000c armv8: Add vcpu_cap 2018-03-23 17:39:49 +11:00
Yanyan Shen
e7c2c8b1a1 armv8: EL2 uses 48-bit base without sign extension 2018-03-23 17:39:49 +11:00
Adrian Danis
91e44d3835 cmake: Correctly disable FPU usage on aarch64
aarch64 has different flags for preventing the usage of FPU registers
2018-03-23 16:26:05 +11:00
Adrian Danis
6081ecef9e cmake: Only pass -marm for aarch32
The -marm flag is not present on aarch64 toolchains
2018-03-23 16:25:29 +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
caf86a4b65 cmake: Convience argument for arm hardware floating point toolchain 2018-03-23 12:29:33 +11:00
Adrian Danis
c42f338133 cmake: Explicitly set ARM and not thumb compilation
Some toolchains default to thumb compilation for some reason
2018-03-23 12:29:33 +11:00
Adrian Danis
066c736f05 cmake: Fix typo 2018-03-23 12:29:33 +11:00
Adrian Danis
5bb06b08ce cmake: Set correct FPU variable 2018-03-23 12:29:33 +11:00
Adrian Danis
bce62b4e43 Check that TCB object is not larger than necessary 2018-03-23 12:28:54 +11:00
Adrian Danis
a2a2d9b937 Define tcb_t as half the TCB object size
A TCB object has two objects inside it, the cnode object and the 'actual tcb object'.
For simplicity of verification we would like the tcb_t portion of the object to also
be size aligned instead of just just being offset by the size of the cnode.
2018-03-23 12:28:54 +11:00
Adrian Danis
f12d6fdc98 Increase seL4_TCBBits ready for alignment increase
The alignment of the tcb_t portion of a TCB object is going to be increased, this will
cause the total TCB size to overflow in some cases. This updates the definition of
seL4_TCBBits such that TCBs will be large enough after the alignment change.
2018-03-23 12:28:54 +11:00
Adrian Danis
f5abc87894 Rename TCB_SIZE_BITS to TCB_CNODE_SIZE_BITS
This definition is used as the size of the cnode portion of the TCB object (and not the tcb_t)
portion and so this provides a much less confusing name.
2018-03-23 12:28:54 +11:00
Anna Lyons
315562d35c TX1: error on SMP + cpu utilisation tracking
TX1 has multiple interrupts for the PMU, one per core. This is
not currently implemented, and is tracked in SELFOUR-1252. It will
work on 1 core.
2018-03-22 13:45:29 +11:00
Anna Lyons
f6ff7806dd define KERNEL_PMU_IRQ for TX1, HIKEY 2018-03-22 13:12:03 +11:00
Adrian Danis
f656fb852b x86: Check ASID instead of mapping type
This is a simpler check for verification
2018-03-22 11:28:53 +11:00
Adrian Danis
764b19dc43 cmake: Avoid circular dependencies in prune generation
This fixes a case where modifying certain kernel files would cause subsequent ninja
invocations to complain of circular dependencies due to the prune generation seeing
an include directory that it was not suppose to.
2018-03-21 17:11:23 +11:00
Adrian Danis
95a300fe50 x86: Guard call to unmapPage
This `if` is not strictly necessary as unmapPage will immediately return after failing to
look up the asid but this makes verification easier.
2018-03-20 12:14:19 +11:00
Adrian Danis
30738188db x86: modeUnmapPage returns whether or not tlb needs invalidation
Whilst it is always correct to invalidate the TLB even if no page was unampped this
provides a small optimization and makes the modeUnmapPage behaviour mirror the general
arch behaviour
2018-03-15 09:47:31 +11:00
Yanyan Shen
1157c708fa arm: Remove duplicate extern declarations. 2018-03-14 20:26:13 +11:00
Yanyan Shen
59d9bd78b4 armv8: Check TCR_EL2 configuration in init_cpu. 2018-03-14 14:02:35 +11:00