#
6ad15c0f |
|
26-Oct-2020 |
Oliver Scott <Oliver.Scott@data61.csiro.au> |
trivial: clean up code for C parser Remove unused cases and add break in switch statements. Add conditions to sel4arch.xml. Change guard in capdl printing to correct TK1_SMMU. Set KernelArmSMMU default to off. Add types to aarch32 syscall_stub_gen.py. Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>
|
#
c66d9cee |
|
03-Aug-2020 |
Oliver Scott <Oliver.Scott@data61.csiro.au> |
trivial: style and comment Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>
|
#
73e062bd |
|
12-Nov-2019 |
Qian Ge <qian.ge@data61.csiro.au> |
SMMU: assigning vspace to context banks Supporting user-level applications to assign vsapce root to context banks through system calls. This commit also configures the context bank according to stage 1 or stage 2 requirement. Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>
|
#
7316bfc6 |
|
19-Sep-2019 |
Qian Ge <qian.ge@data61.csiro.au> |
SMMU: providing master control caps to root task Adding the master control caps that are used to create transaction and context banks caps. This commit includes the internal kernel structure that required to manage any created transaction and context bank caps. Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>
|
#
1a9756f6 |
|
09-Sep-2019 |
Qian Ge <qian.ge@data61.csiro.au> |
SMMU: basic driver for init and probing Introducing the driver in kernel for detecting SMMU features and initialise the hardware. Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>
|
#
4466c7c9 |
|
13-May-2020 |
Curtis Millar <curtis.millar@data61.csiro.au> |
Remove references to kernelBase kernelBase was used inconsistently between different architectures to refer to the either of the first kernel address or the first address of the mappings of the kernel ELF region specifically. These have been replaced with more consistent use of constants explicitly describing which region is being referenced. Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>
|
#
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.
|
#
713bbc70 |
|
28-Jan-2020 |
Anna Lyons <anna@gh.st> |
arm: Reserve VPPI and VGIC maintenance IRQs on SMP This commit updates the secondary core initialisation to reserve the VGIC maintenance and VTimer Event IRQs. This change is introduced in support of SMP configurations when arm hypervisor support is enabled.
|
#
71d636f8 |
|
20-Jun-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
arm_hyp: Save and restore vtimer state on switches Added support for reading and writing additional virtual timer registers for vcpu hw read and write accesses. These include the compare value register (CNTV_CVAL) and offset register (CNTV_OFF), each represented as two 32 bit (high and low) registers on aarch32 and as single 64 bit registers on aarch64. Added support for explicitly saving and restoring the virtual timer registers when the vcpu is enabled and disabled. This ensures when the vcpu is switched in and out, the virtual timer registers are restored to a state that is consistent to when it was last run. By default the CNTVOFF register will be updated by the kernel to accumulate the time the VCPU is not running. From the guest this will result in the VCNT register not increasing when the VCPU is suspended. This behavior can be turned off by disabling the KernelArmVtimerUpdateVOffset config option.
|
#
2d362cb7 |
|
11-Nov-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
arm,SMP: Refactor irq_t structure for smp Explicitly create a struct definition for irq_t on SMP Arm configurations. This makes it a lot harder to mistakenly use the wrong irq encoding when moving an irq between a cnode index and hardware irq number / core. A couple areas where this was being handled incorrectly was fixed as part of the refactor. When performing an ipi for masking PPI interrupts, the idx encoding is used as it fits into a single word.
|
#
0de7fc11 |
|
18-Dec-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
Revert "Cache FPU enable state on all platforms" This reverts commit 186180cf309b365b45c162f7a1f5931f0fc05d7c.
|
#
113a53b2 |
|
18-Dec-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
Revert "trivial: use global machine/fpu.h (arm)" This reverts commit 89e53be40b1f94ed835d409a31229791c7f2b608.
|
#
89e53be4 |
|
11-Jul-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
trivial: use global machine/fpu.h (arm)
|
#
186180cf |
|
11-Jul-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
Cache FPU enable state on all platforms This change broadens the caching of the FPU enable/disable bit from arm to all platforms to ensure that on x86 time is not wasted on the fastpath disabling or enabling an already disabled/enabled FPU.
|
#
53539955 |
|
13-Dec-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
boot: Use extra_bi_size_bits for vreg size calc The bootinfo extra size region is rounded up to a power of 2 size before being mapped into the initial threads address space. This wasn't being handled correctly which lead to a situation where if the bootinfo finishes on the last address of a page table but the extra region size is not a power of 2 size then there won't be a page directory allocated where one needs to be and the kernel would crash.
|
#
04e51d40 |
|
27-Nov-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
Revert the recent changes to Faster FPU switch These changes need to be reverted until we can properly test the changes with all of our hardware online (currently we cannot test on x86 hardware). This reverts commit a0aeec3b304d16909619bc847197df221c73a0c4. This reverts commit af0fdc82c23f1e7e3f1e568f6987f5afd0d2150a. This reverts commit a190a14ecaae688a6b40dd0a699b8f49c2c0631e.
|
#
6d90e0c0 |
|
11-Jul-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
trivial: use global machine/fpu.h (arm)
|
#
e9b90f9f |
|
11-Jul-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
Cache FPU enable state on all platforms This change broadens the caching of the FPU enable/disable bit from arm to all platforms to ensure that on x86 time is not wasted on the fastpath disabling or enabling an already disabled/enabled FPU.
|
#
b5c56244 |
|
07-Oct-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
Create device untypeds at boot for all arches Currently on x86 device untypeds are generated by passing the entire address space minus any parts that are reserved by the kernel or that are "real" memory (e.g. kernel image, physical RAM). On ARM and RISC-V, device untypeds were generated at compile-time from a device tree. This patch moves ARM and RISC-V to use the same approach as x86, and moves the code from x86 into a common location that's shared between the three architectures. Co-Authored-By: Anna Lyons <anna@gh.st>
|
#
7798b476 |
|
06-Sep-2019 |
Anna Lyons <anna@gh.st> |
aarch64: allow access to memory below physBase On aarch64 physBase is the constant that points to the bottom of physical memory (RAM). Prior to this change the kernel window was mapped directly to physBase, which is usually not a 0 paddr. As a consequence the kernel could not access any memory below physBase. This change fixes this issue by mapping the start of the kernel window to 0 in the physical address space. - add new constant PADDR_LOAD, the location of the kernel image in the physical address space. - add new constant PADDR_BASE, the start of the physical address space (0). - add new constant KERNEL_ELF_BASE, the location of the kernel image in kernel virtual memory. A consequence of this change is that on aarch64, the kernelBase constant now points to the start of the kernel window in virtual memory, but *not* to the start of the kernel image as these are now different.
|
#
34c1f920 |
|
03-Nov-2016 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
mcs: add periodic scheduling This commit adds periodic scheduling with sporadic servers.
|
#
742cabf1 |
|
22-May-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
mcs: provide tickless api for arm timers This does not implement the timers for any platforms, but provides the generic arm arch, and aarch32/aarch64 infrastructure for tickless timer drivers.
|
#
952134d1 |
|
27-Oct-2016 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
mcs: Add a scheduling context object This is the first part of the seL4 MCS. This commit: * adds a scheduling context object. Threads without scheduling context objects cannot be scheduled. * replaces tcbTimeSlice with the scheduling context object * adds seL4_SchedControl caps for each core * adds seL4_SchedControl_Configure which allows users to configure amount of ticks a scheduling context has, and set a core for the scheduling context. * adds seL4_SchedContext_Bind, Unbind and UnbindObject, which allows a tcb to be bound to a scheduling context.
|
#
aee7d516 |
|
25-Jul-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
arm,smp: setIRQState for each core timer Setting the IRQState to IRQTimer for each per core timer prevents the interrupts from getting masked the first time that they are received.
|
#
a6157d5d |
|
18-Jul-2019 |
Sylvain Gauthier <sylvain.gauthier@data61.csiro.au> |
[SMP] Abstracted IRQ indexing to handle PPIs 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.
|
#
20ef7255 |
|
18-Jun-2019 |
Matthew Brecknell <Matthew.Brecknell@data61.csiro.au> |
ARM boot: avoid variable + constant array access This is workaround for part of binary verification, which currently cannot handle some modes of array access.
|
#
d4c106bf |
|
17-Jun-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
boot: handle arm user image > kernel window If we place the user image at the end of memory, the user image can be beyond the kernel window. Handle this in arch_init_freemem by comparing to paddr's not pptrs.
|
#
cb7cbd84 |
|
30-May-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
boot: allocate rootserver objects last This change allows us to know, from just the kernel and dtb, where user level untyped objects start being allocated from. - allocate rootserver objects from last available freemem region. - move create_rootserver_objects call into init_freemem.
|
#
6db7bf9b |
|
17-Jun-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
arm: handle user image being at end of memory The user image could be on either side of mode_reserved_region. Fix this by assuming there is 1 or 0 mode_reserved_regions, and checking if the user image is either side.
|
#
8586b7f2 |
|
07-May-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
boot: refactor allocation of rootserver objects Prior to this change, the boot process would dynamically allocate memory for root server objects based on the order of initialisation. Allocation was a best-fit algorithm. This change preallocates all memory for root server objects to an aligned untyped just after the user image. By allocating the objects in order of size, allocation is greatly simplified and the ability to reproduce the allocation offline based on the kernel and user image sizes is increased.
|
#
23d45194 |
|
07-May-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
boot: fix dtb region size calculation in arm Include padding to round up to a page boundary.
|
#
9dcb4706 |
|
16-Jun-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
arm: remove plat/machine/timer.h plat/machine/timer.h is unused on arm, so remove it and fix up the includes.
|
#
3e0bbe82 |
|
12-Jun-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
arm: clean & consolidate pmu management code - consolidate armv_init_ccnt into arm_init_ccnt, which is general - move armv_handleOverflowIRQ definition to benchmark.h (no need for extra header) - clean up definition of armv_handleOverflowIRQ
|
#
8a6180f4 |
|
29-Apr-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
arm: make mode reserved regions a constant Replace an unneccessary function call with a constant. This simplifies and increases the maintainability of arch_init_freemem.
|
#
e3a83035 |
|
10-Apr-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
boot: consolidate init_freemem init_freemem sets up available regions of memory for the hardware that seL4 is booting on. Previously this function was duplicated across architectures, with minor duplication. This change provides a top-level init_freemem suitable for all architectures. - arm/riscv: change get_avail_p_reg to return whole p_reg array - update all architectures to use new init_freemem. - wrap init_freemem calls with arch_init_freemem for each arch, where arch_init_freemem sets up the available and reserved regions of memory which are passed to init_freemem.
|
#
a6b4cf73 |
|
09-Apr-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
boot: allocate irq cnode statically The memory used for the irq cnode is never available to the user. As a result this memory can be allocated statically, simplifying the bootcode. - remove allocation of irq cnode - add static init - generate irq cnode size from cmake for arm - add static constants for riscv, x86 as there is no variability at the moment.
|
#
6a31a57e |
|
25-Nov-2018 |
Simon Shields <simon.shields@data61.csiro.au> |
ARM: optionally pass bootloader DTB to userspace We now support receiving a DTB from the ELF loader and passing it on to userspace in extra bootinfo. We still support booting without a DTB, though - the device tree address is set to zero in the boot code and no extra bootinfo region is provided.
|
#
56de1ad7 |
|
02-Apr-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
aarch64: adjustments to pass c-parser This commit updates the aarch64 build to pass the c-parser. - replace 0b constants with decimal - remove empty array definition - replace __uint128_t with uint64_t, and double the array size - remove variable shadowing No further verification guarantees are provided for aarch64 code.
|
#
306453e3 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: set min-conditional-indent to 0 Given we use braces all the time conditional indents do not make code cleaner.
|
#
d0930f67 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: consistently attach return type Add attach-return-type to astyle
|
#
761006e0 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: consistently align pointer with name Run astyle with align-pointer=name
|
#
3d10ef0c |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: correct parenthesis padding Use astyle's unpad-paren to unpad all parentheses that are not included by pad-header, pad-oper, and pad-comma.
|
#
b88d7701 |
|
12-Feb-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
arm: Rename plat_cleanInvalidateCache Rename plat_cleanInvalidateCache to plat_cleanInvalidateL2Cache to indicate that it is a L2 cache maintenance operation only.
|
#
41e336cd |
|
03-Feb-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
arm: Assert that device regions don't overlap The assert has an assumption that regions are also ordered in ascending order.
|
#
315562d3 |
|
21-Mar-2018 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
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.
|
#
59d9bd78 |
|
13-Mar-2018 |
Yanyan Shen <yanyan.shen@data61.csiro.au> |
armv8: Check TCR_EL2 configuration in init_cpu.
|
#
1936323e |
|
23-Jan-2018 |
Yanyan Shen <yanyan.shen@data61.csiro.au> |
armv8: Add SMP support for aarch64 (1) Use NODE_STATE() to access per-core kernel data. (2) Allocate kernel stack in src/arch/arm/64/head.S. (3) Use the TPIDR_EL1 to contain the kernel stack pointer as well as the logical core ID. The kernel stack must be 4-KiB aligned, and the lowest 12 bits of TPIDR_EL1 are for the logical core ID. (4) Define the LD_EX, ST_EX, and OP_WIDTH as "ldxr", "stxr", and "w". (5) Add irq_remote_call_ipi and irq_reschedule_ipi
|
#
c89b9828 |
|
15-Nov-2017 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
Make TIMER_CLOCK_HZ available in timer.h for ARM The RT kernel needs this value accessible to common functions.
|
#
2f7d3bb9 |
|
14-Nov-2017 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
Move definition of initTimer to be arm specific initTimer does not exist on x86
|
#
25eba565 |
|
15-Oct-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
arm: Add missing memory fence Without a release+acquire fence here the compiler may assume that the value of ksNumCPUs does not change, and essentially elide the loop.
|
#
57fa0e0f |
|
07-Aug-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
Share linker.h between architectures
|
#
ee28936d |
|
18-Jun-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
SMP: Introduce ENABLE_SMP_SUPPORT - Make it more readable and less confusing compared to the 'CONFIG_MAX_NUM_NODES > 1' check
|
#
64d576fb |
|
12-Jun-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
SELFOUR-806: aarch32 - Implement lazy FP save/restore This commit implements lazy FP save/restore mechanism, required for user threads when they use the FPU. The following caveats take place: * Only support synchronous exceptions. No support for asynchronous ones. * VFP opcodes are used instead of normal instructions to discard compiler warnings/errors. * Support is limited to specific ARM subarchitectures we support and tested this commit on. * Disable the FPU by default if users are not using it to avoid channels. * FPU support is not verified yet. * Will not work properly if using a VM that's running besides other VMs/threads that are using the FPU.
|
#
4baa8482 |
|
28-Jun-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
SELFOUR-746: IPI Handler for ARM
|
#
2499f872 |
|
16-Mar-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
ARM/SMP: rename/add IRQ macros to match with x86
|
#
0a6f9a5d |
|
14-Mar-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
SELFOUR-748: ARM - Support local/remote TLB invalidation operations
|
#
93cc22b2 |
|
09-Mar-2017 |
amrzar <azarrabi@nicta.com.au> |
smp: fix bugs when stalling remote core - Restart TCB from inside the lock if it is waiting for anything other than IRQ - Only replace the TCB with idle thread if it is in ThreadState_RunningVM state Also, this makes the design generic to be shared with arm.
|
#
6103d8f2 |
|
15-Mar-2017 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
trivial: typos in previous commit
|
#
f42d6363 |
|
15-Mar-2017 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
refactor: initialise common core state in one place
|
#
cea76d17 |
|
07-Mar-2017 |
Bamboo <bamboo@keg.ertos.in.nicta.com.au> |
[STYLE_FIX]
|
#
59724015 |
|
01-Mar-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
SELFOUR-744: ARM - preliminary booting of other cores
|
#
b8f9dcac |
|
27-Feb-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
ARM/IRQ: add a function to initialise local IRQ controller for CPUs Similar to initIRQController(), cpu_initLocalIRQController() has to be implemented for each platform. For those that are gonna support SMP, it should be implemented proprely (if required), otherwise it can be stubbed for single core implementations.
|
#
c4395425 |
|
26-Feb-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
Remove assumption on 32-bit memory offsets On 64-bit platforms physical address could be >2^32 offset from a virtual address. This changes offsets to match the word size of the target architecture
|
#
03c323c1 |
|
26-Feb-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
ARM/Boot: initialise private timer, user access and benchmark in CPU context In SMP context, init_cpu is meant to be called for each CPU, where initialising private timer, user access and benchmarks (basically CCNT) are per-CPU operations and involve per-CPU hardware resources/interrupts.
|
#
8610061a |
|
23-Feb-2017 |
amrzar <azarrabi@nicta.com.au> |
aarch64: FPU lazy context switch
|
#
35e48115 |
|
22-Feb-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
Verification: Guard getCurrentCPUIndex() with SMP #define
|
#
c1407c55 |
|
19-Feb-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
[SELFOUR-744]: Modify head.S to load stacks for each core and implement getCurrentCPUIndex
|
#
e0adcae3 |
|
15-Feb-2017 |
Bamboo <bamboo@keg.ertos.in.nicta.com.au> |
[STYLE_FIX]
|
#
22f9d7b9 |
|
12-Feb-2017 |
amrzar <azarrabi@nicta.com.au> |
Update init_freemem to check for mode dependant reserve regions
|
#
0b2fe8d6 |
|
17-Jan-2017 |
amrzar <azarrabi@nicta.com.au> |
aarch64: Initial implementation
|
#
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.
|
#
bebfcf6d |
|
23-Jun-2016 |
Kofi Doku Atuah <kofi.dokuatuah@nicta.com.au> |
SELFOUR-499: X86, ARM: Add userspace invocations for hardware debugging This commit implements the body of SELFOUR-499. The API exposes the x86 DR0-7 and ARM coprocessor 14 features to userspace by virtualizing them as context- switched registers in the TCB. Implemented as TCB invocations. This feature is only built when CONFIG_HARDWARE_DEBUG_API is selected. * Add low-level support routines for setting, unsetting, getting, enabling and disabling breakpoints. * Add support for single-stepping as well. ^ Single-stepping is not supported on ARMv6 since the hardware doesn't have support. ^ ARM implements single-stepping as instruction breakpoints configured to fault on every instruction -- this is achieved through the "mismatch" mode, which is only supported from ARMv7 onwards. * Also support explicit software break requests, a la "BKPT" and "INT $3". * New invocations: * seL4_TCB_SetBreakpoint(). * seL4_TCB_GetBreakpoint(). * seL4_TCB_UnsetBreakpoint(). * seL4_TCB_ConfigureSingleStepping(). * New constants: ^ Event types: ^ seL4_InstructionBreakpoint. ^ seL4_DataBreakpoint. ^ seL4_SoftwareBreakRequest. ^ Access types: ^ seL4_BreakOnRead. ^ seL4_BreakOnWrite. ^ seL4_BreakOnReadWrite. ^ Exports: ^ seL4_NumHWBreakpoints. ^ seL4_NumExclusiveBreakpoints. ^ seL4_NumExclusiveWatchpoints. ^ seL4_NumDualFunctionMonitors. ^ seL4_FirstBreakpoint. ^ seL4_FirstWatchpoint. ^ seL4_FirstDualFunctionMonitor. See documentation in the seL4 API manual.
|
#
d507b2d3 |
|
09-Feb-2016 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
SELFOUR-421 Introduce explicit device frames and untypeds Kernel objects cannot be created from device untypeds, with the exception of frames, which do not get zeroed and cannot be used as an IPC buffer. Device untypeds additionally cannot be used in the construction of ASID pools. This then changes the API to the rootserver (i.e. bootinfo) to send device untypeds instead of device frames. On ARM these device untypeds are the same as the previously exported device frame regions. On x86 PCI scanning is removed and all physical memory addresses (that are not important for kernel integrity) are released to the user. In order to have bits in the frame and untyped caps on ARM the number of software ASIDs had to be reduced from 2^18 to 2^17, and the maximum untyped size reduced from 2^31 to 2^30
|
#
3c05b79a |
|
27-Jul-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
Provide generic C entry/exit hook routines It can be deseriable to run code before/after user mode, but not have to write it in assembly. This commit adds such stubs that get called as the first/last C code when coming in and out of the kernel
|
#
6d891b0a |
|
26-Jul-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
SELFOUR-551: Remove direct accesses to machine data structures This commit wraps accesses to the vgic in functions that are marked as DONT_TRANSLATE and uses a global constant (that is determined at boot time) for the number of LR registers to prevent loops that have undefined bounds
|
#
09358f9b |
|
23-Jun-2016 |
Hesham Almatary <Hesham.Almatary@nicta.com.au> |
SELFOUR-448 Benchmark: Track thread's CPU utilisation time
|
#
c5b6a6a5 |
|
06-Jun-2016 |
Anna Lyons <Anna.Lyons@nicta.com.au> |
Refactor duplicated code in hardware.h One copy to rule them all.
|
#
5f0ae410 |
|
02-Jun-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
arm-hyp: Minor cleanups Cleanup some small licensing, whitespace and configuration details
|
#
31918359 |
|
28-Apr-2016 |
Corey Richardson <corey@octayn.net> |
SELFOUR-229: add error condition for root task overlapping kernel window on ARM
|
#
c85094bb |
|
29-May-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
arm-hyp/tk1: add guards so other plats can compile.
|
#
b783eecc |
|
26-May-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
arm-hyp/tk1: make style
|
#
27ecdffe |
|
26-May-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
arm-hyp/tk1: address review comments.
|
#
fc1feb67 |
|
24-May-2016 |
Hesham Almatary <Hesham.Almatary@nicta.com.au> |
SELFOUR-446 Benchmark: Track syscall feature Benchmark feature that currently: - Keeps track of system calls info - Start time - Duration - Capability type - Invocation tag - Log the number of invocations of each system call* - Log the number of invocations for each capability type per syscall. - Has 3 new syscalls (dump, reset, get size). - This new feature uses the existing log buffer (which is 1MiB for x86 and ARM). Since the number of syscall invocations is not deterministic, the logged number of invocations is limited by the size of the buffer. I suggested to enable the users to pass their own user-level buffer, to enable more flexibility, later. - ENABLE_BENCHMARKS is now a parent config option of trace points and system call track features, they can't be used at the same time.
|
#
b1e4f92f |
|
19-May-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
arm-hyp/tk1: reserve the SMMU interrupt
|
#
851fccc2 |
|
18-May-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
arm-hyp/tk1: put iospace caps to bootinfo
|
#
879d9724 |
|
13-May-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
arm/tk1: a checkpoint for SMMU implementation
|
#
cbb6bf15 |
|
02-Mar-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
arm_hyp: add file to contain hyp mode inline funcs machine_pl2.h: new place for hyp mode inline functions. boot.c: replace #ifdef ARM_HYP with config_set(ARM_HYP). vcpu.h, machine_pl2.h: add empty functions when ARM_HYP is not defined to pass compilation.
|
#
3abf177c |
|
02-Mar-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
arm_hyp: add file to contain hyp mode inline funcs machine_pl2.h: new place for hyp mode inline functions. boot.c: replace #ifdef ARM_HYP with config_set(ARM_HYP). vcpu.h, machine_pl2.h: add empty functions when ARM_HYP is not defined to pass compilation.
|
#
289bf92b |
|
05-Jan-2016 |
Anna Lyons <Anna.Lyons@nicta.com.au> |
SELFOUR-114: remove bootinfo.h duplication
|
#
3959ced3 |
|
17-Jan-2016 |
amrzar <azarrabi@nicta.com.au> |
Remove mode dependant codes for initial thread from architecture dependant boot codes
|
#
3439c6bd |
|
28-Jun-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
Do not switch to the the root thread until after cpu initialization is done
|
#
171824f7 |
|
07-Dec-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
Change additional int->word_t due to interraction with the C parser to ease verification
|
#
2d61910e |
|
09-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
Rename uint32_t -> word_t in any relevant places
|
#
e82953a1 |
|
01-Sep-2015 |
Stephen Sherratt <Stephen.Sherratt@nicta.com.au> |
Removed CONFIG_BENCHMARK config option. All checks for '#ifdef CONFIG_BENCHMARK' replaced with '#if CONFIG_MAX_NUM_TRACE_POINTS > 0'.
|
#
4f12acd2 |
|
25-Feb-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
ARM: Map the initial thread's IPC buffer and boot info as non-executable. Note that this also required some irrelevant x86 changes to match function arguments.
|
#
b62b20f2 |
|
20-Feb-2015 |
akroh <Alexander.Kroh@nicta.com.au> |
ARM: Add config options for exporting PMU and ARM generic timer physical count registers to PL0
|
#
f2ac14f1 |
|
16-Feb-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
arm: Rename BI_CAP_IT_PD to BI_CAP_IT_VSPACE to match x86 and common boot code
|
#
0b64f564 |
|
07-Aug-2014 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
arm: Perform additional cache clean to prevent TLB walker loading garbage entries for first user process
|
#
a318446f |
|
07-Jul-2014 |
TrustworthySystems <gatekeeper@sel4.systems> |
Recommit of arm_hyp branch on release snapshot
|
#
91b7da86 |
|
17-Jul-2014 |
TrusthworthySystems <gatekeeper@sel4.systems> |
Release snapshot
|