History log of /seL4-test-master/kernel/src/arch/arm/32/hyp_traps.S
Revision Date Author Comments
# 79da0792 01-Mar-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

Convert license tags to SPDX identifiers

This commit also converts our own copyright headers to directly use
SPDX, but leaves all other copyright header intact, only adding the
SPDX ident. As far as possible this commit also merges multiple
Data61 copyright statements/headers into one for consistency.


# 01b73622 27-May-2019 Curtis Millar <curtis.millar@data61.csiro.au>

Consistent naming of FaultIP and NextIP in kernel

Always refer to the virtual register that stores the address of a fault
as FaultIP and the register that stores the return for a fault NextIP.


# f6e5e218 20-Mar-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Remove symlinked libsel4 files from include dir

These files can be included normally using libsel4 include paths. This
removes situations where the same file is available under different
include paths due to symlinking into different directory structures.


# 60e2acdb 22-Oct-2017 Yanyan Shen <yanyan.shen@data61.csiro.au>

arm/hyp: add support for running multiple ARM VMs

This commit saves/restores various control registers that can be
modified by guest VM kernels, so seL4 can execute multiple ARM
32-bit VMs multiplexing a single physical core.

When the CONFIG_HAVE_FPU option is selected, the commit allows
the VMs to use FPU registers and enables lazily saving/restoring
FPU registers for the VMs.


# 5d146463 18-Jan-2017 Hesham Almatary <hesham.almatary@data61.csiro.au>

ARM: Refactor how we get/set seL4 kernel stack

This commit makes seL4 hold the stack address on TPIDRPRW register (PL1 only
Thread ID Register, VMSA, see B4.1.150 section of ARMv7-A and ARMv7-R
edition reference manual).

Originally, the kernel stack was (re-)mapped to a fixed kernel virtual address and
on traps sp is loaded with this virtual address. Reason is to shave up some
cycles/instructions on (fast) traps path instead of having two instructions
(loading global variable pointer and then memory-load stack address from
it).

With ARM pipelining getting smart/complex (from ARMv7 onwards), there is
no noticeable difference in performance between the two implementations.
Furthermore, this change makes it easy for SMP to load different stacks
for each core and do CPU ID arithmetic efficiently. It also avoids the
issues involving (re-)mapping stacks for different cores if we
followed the original design.

Note: the main side-effect to this change is that the kernel stack for
ARM is no longer mapped with execute-never attribute.


# ef00e986 21-Aug-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-615: arm entry point stubs


# f34f354a 16-Aug-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-617: one source of memory object sizes

Adds the following constants to libsel4
and uses them in the kernel.

seL4_SectionSize (arm)
seL4_SuperSectionSize (arm)
seL4_HugePageSize (x86 - pae)
seL4_LargePageSize (arm)
seL4_DataFault
seL4_InstructionFault


# 500bdd03 27-Jul-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

arm: Remove unused arm_swi_undefined_syscall


# 778043a7 18-Jul-2016 Hesham Almatary <hesham.almatary@data61.csiro.au>

ARM Hyp: Fix fastpath_restore on ARM Hyp and implement slowpath and restore in C


# 6a8f97c2 15-Jun-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

arm-hyp: Push ARM_HYP config check into traps.S


# 5f0ae410 02-Jun-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

arm-hyp: Minor cleanups

Cleanup some small licensing, whitespace and configuration details