#
745291ce |
|
27-Nov-2020 |
Gerwin Klein <gerwin.klein@data61.csiro.au> |
Convert to SPDX license tags Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
|
#
f9a39c84 |
|
22-Jan-2020 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Created 'vcpu_start' interface This commit introduces a new interface function, 'vcpu_start', that can be invoked to configure and start a newly created vcpu object. This change refactors over the private 'vcpu_resume' interface. The key impact over this change is the user will now need to invoke 'vcpu_start' for each vcpu rather then relying on 'vm_run' to do so. This adds the needed flexibility for operations such a deferring the starting of a vcpu e.g. until necessary psci/pm operations are performed.
|
#
73c08dc7 |
|
22-Jan-2020 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Use badge on arm vm exits to id vcpu Updated the arm vm_run implementation to use the badge from an exit to identify the vcpu the exit corresponds with. This following changes that introduced the badging of the VMM endpoint for each VCPU created. Co-authored-by: Anna Lyons <anna@gh.st>
|
#
78716172 |
|
10-Dec-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed tcb field 'is_supended' Since all the tcbs we manage are relative to a vcpu, we don't need to manage the state of the tcb since its implied from the vcpu state 'vcpu_online'
|
#
0ae7cce1 |
|
03-Dec-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Handle seL4_Fault_VPPIEvent on arm The kernel now reservs PPI events and forwards them to user level through a new vcpu fault type, seL4_Fault_VPPIEvent. We extend the vcpu handlers for this new fault type that subsequently injects the PPI into the VCPU.
|
#
c69cd028 |
|
13-Dec-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
trivial: Style changed files
|
#
b7c9a52e |
|
08-Dec-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: WFx fault handling to vmmplatsupport Moved the handling of WFx faults to sel4vmmplatsupport. Prior libsel4vm would overwrite any programmed handlers for the WFx fault. This gives the user more flexibility to program WFx fault behavour.
|
#
2942720e |
|
08-Dec-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Changed wfi fault to general vcpu fault Generalised the function 'new_wfi_fault' such that it can be used for other vcpu faults. This additionally removes the 'is_wfi' field since we record the hsr value in the fault object.
|
#
8766c802 |
|
14-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Moved software breakpoint emulation Moved the software breakpoint emulation into the vcpu exception emulation in libsel4vmmplatsupport
|
#
6b94edb7 |
|
14-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Moved trace/debug sysreg emulation Moved the trace/debug system register emulation into the vcpu exception emulation in libsel4vmmplatsupport
|
#
75d24848 |
|
13-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Added arm unhandled vcpu fault callback Added the ability to register a callback for vcpu faults we cant handle. This gives the user the opportunity to inject any emulation for specific vcpu faults before aborting.
|
#
6ba3709f |
|
13-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Updated arm unhandled VCPU fault print Updated the ARM VCPU unhandled fault print with more useful debug information e.g. HSR Exception class
|
#
c4fc88eb |
|
13-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Added common HSR decode definitions Created a new common arm include "processor.h" that has constant defines and macros for decoding HSR values. This is common across both aarch64 and arm_hyp. Updated arm sources to use these new include (where revelant).
|
#
188298fe |
|
13-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed duplicated WFI HSR value Removed a duplicated HSR WFI constant value. Updated the arm vm vcpu fault handler to use the definition in the processor.h include.
|
#
99efa98a |
|
17-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Fixed 'vm_run' bug due to invalid state The condition to enter the arm vm_run loop was never met due to the 'ret' variable being incorrectly initialised. This is was clearly implemented incorrectly and lead to inconsistent behaviour on different platforms. Fixed the issue by ensuring the value of the 'ret' variable is initialised.
|
#
007de985 |
|
09-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Made arm fault interface private The arm fault interface is only used internally as external source uses the vcpu fault interface instead. Moved and consolidated the fault interface into the internal arm sources.
|
#
aa782bfb |
|
01-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Consolidate notification/fault endpoint Both arm and x86 source take in the hosts own endpoint such that it can wait on it for notifications and events. Removed the passing of the endpoint as an arch specfic boot parameter as its now passed through the common vm_init function.
|
#
94113f06 |
|
17-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Moved VM tcb object into vcpu object There is a strong association between a VCPU and the TCB it is binded to. Thus the TCB object should exist in the context of the VCPU it is associated with. In addition this makes the VM library open to possible SMP extensions. This commit updates the initialisation of the TCB object when creating a VCPU and the means of accessing TCB objects.
|
#
51ca6a20 |
|
05-Oct-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
libsel4vm: Pass seL4_MessageInfo_t via callback Callback handlers need to extract additional information out of the message info other than just the label, such as the length.
|
#
e14a1c2e |
|
09-Sep-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Notification callback interface Added a new interface to register a callback for notification callbacks. This changes the plat callback interface, moving the callback out of the datastructure into a more general location. Updated the vm_run architecture implementations to reflect this change.
|
#
d7437c3d |
|
15-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Enabled vm_run to exit to caller Introduced vm exit constants that can be used to return to the library caller (vmm) for handling specific vm exits. Updated the exit handling functions and vm run loop to handle cases where it may exit and return an exit reason to the vmm. This is an initial change that will allow the vm to reduce policy and refactor out various drivers from the library such that it can be handled and managed by the vmm.
|
#
54fc9dfe |
|
14-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Refactored arm vm event handler Refactored the arm vm event/exit handler. This refactors the vm exit handler code into a series of individual handlers for the various vm exit cases. The overall intention with these changes is to make the vm exit handler more modular and to reduce the complexity of the vm_run function.
|
#
d25a190c |
|
13-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: VM run interface Refactored the run invocation into 'vm_run'. This updates the x86 and arm source to implement their runtime event loops when the 'vm_run' interface is used. The intented functionality of vm run is such that it will start the vm catching vm exits. This will either handle the exits internally or forward it to the user.
|