#
512a0200 |
|
19-Mar-2020 |
Qian Ge <qian.ge@data61.csiro.au> |
replacing all ifndef with pargma once All the kernel header files now use pargma once rather than the ifndef, as the pre-processed C files do not change while header files are protected with pargma once. This will also solve any naming issues caused by ifndef.
|
#
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.
|
#
2dd4a59a |
|
09-Feb-2020 |
Luca(Wei) Chen <Wei@cvluca.com> |
fastpath: force inline fastpath_restore This inline function doesn't get inlined with -O3. It affects the cold cache performance, so use always_inline attribute to tell compiler always get it inlined.
|
#
0e62bc3a |
|
01-Dec-2019 |
Victor Phan <Victor.Phan@data61.csiro.au> |
Move vcpu_switch into Arch_switchToThread Currently the vcpu_switch function is called in the setVMRoot function after possible early returns. In order to make sure the vcpu is always switched, the call is moved into Arch_switchToThread before the call to setVMRoot.
|
#
554f812d |
|
08-Nov-2016 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
mcs: scheduling context donation over ipc After this commit, threads blocked on an endpoint can recieve a scheduling context from the thread that wakes the blocked thread.
|
#
8af1aa77 |
|
16-Jul-2019 |
Anna Lyons <anna@gh.st> |
aarch64: abstract vspace_root in vspace code 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
|
#
5646f774 |
|
20-Mar-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
RFC-3: Update user context for ARM with thread IDs Switched appropriate naming conventions. Was using the aarch64, have switched to aarch64 names. TIPDRURW -> tpidr_el0 TPIDRURO -> tpidrro_el0 TPIDRPRW -> tpidr_el1 Switch TLS register on aarch32 from TPIDURO (tpidrro_el0) to tpidr_ro so that it can be written to from user-land. Thread ID registers tpidr_el0 have been added to the user context for aarch32 and aarch64. Only the thread ID that is writeable from EL0 is saved in the TCB and saved/restored on context switch. Thread IDs that are only changed within a VM (the read-only thread ID for exception level 0 and the thread ID for exception level 1) are stored in the VCPU and saved and stored as part of VM enable/disable. Thread IDs that are only changed with VMs have been separated out into hypervisor code.
|
#
a0ae9f76 |
|
13-May-2019 |
Yanyan Shen <yanyan.shen@data61.csiro.au> |
armv8: Save/restore TPIDRRO_EL0 for VCPUs TPIDRRO_EL0 is used as IPC Buffer for seL4-native threads. The register should be saved and restored for VCPUs.
|
#
7fc45c4e |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: set code width to 120
|
#
d0930f67 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: consistently attach return type Add attach-return-type to astyle
|
#
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.
|
#
d56175ec |
|
19-Dec-2018 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
aarch64: Add missing include for fastpath.h vcpu_switch gets preprocessed away on non hyp configurations, but arch/object/vcpu.h needs to be included for this.
|
#
cd26d7d0 |
|
17-Dec-2018 |
Kofi Doku Atuah <kofidoku.atuah@data61.csiro.au> |
Aarch64 HYP Fastpath: Call vcpu_switch when switching from Guest to native threads Previously the kernel did not call vcpu_switch on the fastpath since the fastpath avoids calling setVMRoot, so when sending an IPC message from a guest thread to a native thread, if the IPC was small enough to go on the fastpath the kernel would fail to disable the HYP traps and would treat the native thread like a guest thread.
|
#
4a67506c |
|
22-Mar-2018 |
Yanyan Shen <yanyan.shen@data61.csiro.au> |
armv8: Add EL2 support for kernel exit code
|
#
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
|
#
00a05777 |
|
25-Oct-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
Benchmark: account for thread utils on 64-bit archs' fastpath
|
#
57fa0e0f |
|
07-Aug-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
Share linker.h between architectures
|
#
ae9fe9b5 |
|
07-Aug-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
aarch64: Use tpidrro_el0 for IPC buffer instead of tpidr_el0 Changing the register used for the IPC buffer is useful as the standard TLS model for aarch64 is to use tpidr_el0 for the thread pointer, which we are presently using for the IPC buffer. This therefore paves the way for implementing proper TLS support on aarch64. Since we are not using tpidr_el0 for the IPC buffer we need to save/restore (or at least clear) this register on thread switch to prevent it being a user channel. Saving and restoring of it is achieved by ensuring CONFIG_IPC_BUF_TPIDRURW is not set, which as we are no longer using this strategy this will be the case. To that end as aarch64 only has one IPC buffer strategy this commit makes the choice of IPC buffer strategy dependeont on aarch32.
|
#
40c61e5c |
|
18-Jun-2017 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
Fix licenses (the rest)
|
#
e8d3672c |
|
01-Mar-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
SELFOUR-745: ARM/SMP - Add lock/unlock code to kernel entry/exit points
|
#
8610061a |
|
23-Feb-2017 |
amrzar <azarrabi@nicta.com.au> |
aarch64: FPU lazy context switch
|
#
eccaae51 |
|
20-Feb-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
s/D61/DATA61/ in license headers for consistency
|
#
0b2fe8d6 |
|
17-Jan-2017 |
amrzar <azarrabi@nicta.com.au> |
aarch64: Initial implementation
|
#
fac16fe8 |
|
11-Jan-2017 |
amrzar <azarrabi@nicta.com.au> |
aarch64: add preliminary folders and Makefiles
|