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