History log of /seL4-camkes-master/projects/seL4_projects_libs/libsel4vm/src/arch/arm/boot.c
Revision Date Author Comments
# 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>


# a0c98c87 19-Feb-2020 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

Style: Updated style of modified files

Updated the style of various source files recently updated.


# 7cd8dce4 23-Jan-2020 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Init src & dst cspacepath in arm boot

Trivial update that gives default values to the cspacepath dst and
src variables to avoid potential invalid states.


# 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.


# 6e9944e4 10-Dec-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Program VCPU Affinity on creation

We set the affinity of our created vcpu TCB's to correspond with
the core it represents. In addition we modify the BOOT_VCPU's
Virtualization Multiprocessor ID Register to indicate we are using
ARMv7 Multiprocessing Extension functionality and the performance
of our logical cores at the lowest affinity level is
interdependent.

Co-authored-by: Anna Lyons <anna@gh.st>


# 8bf6c2c6 09-Dec-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Remove subtract from vcpu tcb priority

This is no longer necessary as the VCPU TCB priority is now passed
in explicitly to the vcpu creation function and now longer based
on the VM priority value originally passed into 'vm_init'.


# 5a54403f 09-Dec-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: arm endpoint badging into vcpu create

Moved the arm endpoint badging and fault IPC cspace copy from
the 'vm_init_arch' function into the 'vm_create_vcpu_arch'. This
allows for the creation of multiple VCPU's that each have their
own badge.

Co-authored-by: Anna Lyons <anna@gh.st>


# c69cd028 13-Dec-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

trivial: Style changed files


# 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.


# 79db7c4f 09-Nov-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Removed unused arm interfaces and defs

Cleaned up various miscellaneous interfaces and definitions that
no longer exist, have been removed or refactored. These items are
no longer used.


# 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.


# f1bcc013 01-Nov-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Removed vpcu_init cookie parameter

This parameter has never been needed or used hence we can remove
it.


# 29b7a4f3 01-Nov-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Removed vm_init cookie for arch params

Removed architecture specific vm initialisation params as both
architecture sources no longer need to pass in specific
parameters. This additionally means we can delete the 'cookie'
parameter since its no longer used.


# 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.


# b98f1963 17-Oct-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Refactored and moved arm reboot hooks

Moved out the ARM reboot hooks interface into sel4vmmplatsupport.
This is rather a utility a VMM should use if it wishes to create
reboot callbacks around a VM it manages. This commit larges
refactors the code into an independent interface in
sel4vmmplatsupport and updates usages of reboot hooks.


# 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.


# 1c0950ac 17-Oct-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Moved vm's cspace out of vm tcb object

Moved the VM's cspace out of the VM's tcb management object. These
objects aren't strictly associated and thus the cspace management
object has been moved to sit independently.


# da62f868 09-Oct-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Removed unused library dependencies

Removed linking against libsel4vmmcore and libsel4pci as code
that used it has since been refactored out of the library.


# 24a25c75 17-Sep-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Remove ioports and pci from arm vm

Remove the references to the pci and ioports objects from the
arm vm object. This is left to the VMM to initialise and manage.


# 76c634cf 13-May-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Moved VM_BADGE definition into library

Moved the VM_BADGE constant into the VM library as opposed the
VMM passing it in. This prepares for changes where the arm vm will
initialise and manage the fault endpoint (as opposed to the VMM).


# ed2b25d5 10-May-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Made guest_vspace interface private

Refactored the guest_vspace source to be private. This in
particular makes 'vm_init_guest_vspace' a private function
(named 'vm_get_guest_vspace' prior).


# ce238e1e 05-May-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Updated arm to use new vspace interface

Updated the sel4-arm-vmm source to use new guest vspace interface.


# 6cd6b022 07-May-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Dropped 'vm_' prefix in vm_vcpu struct

The 'vm_' prefix is reduntant since it exists in the vm_vcpu
struct context.


# db0c177d 07-May-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Renamed vm_pd field to vm_vspace_root

Renamed vm_pd field to vm_vspace_root as the top level data
structure is not necessarily a page directory.


# 27ac3d49 07-May-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: vm_init_arm_t to vm_init_arm_config_t

Added '_config' suffix to data-structure name in-order to make it
clearer that it is used as additional config params for vm_init.


# 7867c421 06-May-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: Made arch_init functions private

Refactored the architecture specific init/boot functions into a
private interface. These are no needed in the public boot.h
interface.


# 668be99f 30-Apr-2019 Alison Felizzi <Alison.Felizzi@data61.csiro.au>

libsel4vm: vm data-structure initialisation

Refactored the x86 and arm initialisation of the guest vm
data-structure. This brings the initialisation of the
vm data structure under the one interface 'sel4vm/boot.h'.