This project is mirrored from https://github.com/seL4/seL4.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Jul 30, 2019
-
-
Anna Lyons authored
-
Anna Lyons authored
This allows SMP support for the imx8m.
-
Anna Lyons authored
This allows SPIs to be routed to different cores.
-
Anna Lyons authored
This function enables ipis to be sent between cores. Co-authored-by:
Yanyan Shen <yanyan.shen@data61.csiro.au>
-
Anna Lyons authored
This commit updates the gic_v3 driver to translate virtual irqs to hardware irq numbers, which enables PPI support for SMP.
-
Anna Lyons authored
This commit brings the gic_v3 is_sgi and is_ppi checks in line with gicv2 making the code more consistent. It also removes unneccessary conditionals in the checks, as is_sgi is always called before is_ppi so the lower bounds checks are not required.
-
Anna Lyons authored
This removes a redundant constant to use one from the gic_common header.
-
Anna Lyons authored
In order to support gic_v3 SMP, move helpers from gic_v2.h to gic_common.h
-
Anna Lyons authored
Move common definitions from gic_v2.h and gic_v3.h into gic_common.h
-
Anna Lyons authored
Co-authored-by:
Yanyan Shen <yanyan.shen@data61.csiro.au>
-
Anna Lyons authored
Move definition of L1_CACHE_LINE_SIZE_BITS to cmake where it is set according to the arm processor family. This removes duplication in the hardware.h header files and makes adding a new processor family require less lines changed.
-
- Jul 29, 2019
-
-
Kent McLeod authored
This also adds a check that translating a core + irq doesn't result in an index that is irqInvalid.
-
Kent McLeod authored
-
Kent McLeod authored
Under SMP configurations, getActiveIRQ doesn't directly return an IRQ ID, but an encoding of the ID and core due to the existance of per core interrupts. This fixes some remaining locations where the result is still interpreted as an IRQ.
-
- Jul 25, 2019
-
-
Kent McLeod authored
Setting the IRQState to IRQTimer for each per core timer prevents the interrupts from getting masked the first time that they are received.
-
Kent McLeod authored
Need to explicitly set these to either ON or OFF rather than simply setting them.
-
Chris Guikema authored
This is possible now that the kernel supports 40 bit PAs.
-
Anna Lyons authored
This commit adds support for using a 40-bit physical addresses in aarch64-hyp mode. 40-bit PA support is implemented by using a 3-stage translation, with a 13 bit page upper directory as the vspace root. PageGlobalDirectories are not used in this configuration. To use 40-bit PAs, platforms should set KernelArmPASizeBits40 to ON. Co-authored-by:
Yanyan Shen <yanyan.shen@data61.csiro.au> Co-authored-by:
Chris Guikema <chris.guikema@dornerworks.com>
-
Anna Lyons authored
Depending on the physical address range the top level translation table may be a page upper directory or a page global directory. Rename in libsel4 the invocations on top level structures to be on an seL4_ARM_VSpace rather than an seL4_ARM_PageGlobalDirectory.
-
Anna Lyons authored
On aarch64-hyp the virtual address translation structure can differ depending on the physical address range. This commit prepares to support more than a single physical address range by removing the assumption that the top-level structure in a vspace is a PGD, replacing it with the concept of a vspace_root. Specifically: - add and use macros to refer to vtable bitfield generator functions - use the existing vspace_root_t type rather than pgde_t - pull performASIDPoolInvocation into header - add and use VSPACE_PTR rather than PGDE_PTR - rename decodeARMVPageGlobalDirectoryInvocation to refer to VSpace - update comments/error messages - rename variables
-
Kent McLeod authored
The physical address range supported by each aarch64 platform is defined by which Arm CPUs it has. We therefore configure KernelArmPASizeBits* based on which CPU is selected.
-
Anna Lyons authored
Check that the configured physical address range is supported by the processor and that the granule size (4KiB) is supported.
-
Chris Guikema authored
-
- Jul 19, 2019
-
-
Sylvain Gauthier authored
-
Sylvain Gauthier authored
Correctly defined the macros to translate between virtual and hardware IRQs such that PPIs can be properly handled on gic_v2. It is now possible to create a per-core handler for PPIs on platforms using this GIC.
-
Sylvain Gauthier authored
irq_t is now a "virtual" interrupt type that encapsulates the information of the core in case of a private interrupt. There is a couple of macros that need to be defined on the interrupt controller level to translate between virtual and hardware IRQs.
-
Sylvain Gauthier authored
Added a new IPI on ARM to unmask a remote private interrupt.
-
Sylvain Gauthier authored
Created a new syscall, seL4_DebugSendIPI for ARM to send arbitrary SGIs (software generated interrupts) to arbitrary cores. As SGIs are specifically PPIs (private interrupts), this syscall effectively allows to trigger PPIs on arbitrary cores, for debug/testing purposes.
-
Kent McLeod authored
This adds support for the 64-bit i.MX8M Mini evaluation kit. Currently only AArch64 EL1 is supported.
-
Kent McLeod authored
-
- Jul 18, 2019
-
-
Kent McLeod authored
-
- Jul 12, 2019
-
-
Kent McLeod authored
-
- Jul 11, 2019
-
-
Curtis Millar authored
Only force a reset of the segments (and a reload from the GDT) if the segment selectors were changed by user-level.
-
- Jul 10, 2019
-
-
Kent McLeod authored
This function now returns an error when the IRQ number is outside of the acceptable range. Previously it always succeeded due to a bad conditional.
-
Yanyan Shen authored
This platform assumes 2 clusters of A57 processors as described in tools/dts/fvp.dts. This configuration is for running on FVP simulators.
-
Yanyan Shen authored
-
- Jul 05, 2019
-
-
Japheth Lim authored
This accounts for the ASID PD hole splitting the main memory region.
-
Japheth Lim authored
This explains why the DTS overlays intentionally throw away part of the kernel memory window.
-
- Jul 03, 2019
-
-
Japheth Lim authored
This is a hack that allows user-space tools like the capDL static allocator to work. Otherwise, the allocator (currently unaware of the kernel window) would think that there is a 28-bit untyped at pptr 0xf0000000, and would generate untyped derivations that are not available at runtime. Note that we clamp to 0xff000000 on exynos4 and exynos5, *not* 0xfff00000 (PPTR_TOP), to avoid the ASID PD hole at 0xff000000..0xff200000. The affected platforms are ARM VM platforms; VM images are often larger than 13MiB and would overlap the ASID hole if loaded from PPTR_TOP. init_freemem fails if this overlap exists.
-
Anna Lyons authored
This is so KernelDTBSize can be consumed by other tools.
-