Commit Graph

37 Commits

Author SHA1 Message Date
Gerwin Klein 540bb64383 arm-hyp abstract+design: object_type enum reorder
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-08-14 15:51:34 +02:00
Gerwin Klein aa2eb9ad6d
design: fix ExecSpec for other architectures
Include the new ArchPSpace_H file, which on the other (non-AArch64)
architectures will only contain an empty placeholder function.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-05-26 18:04:48 +10:00
Rafal Kolanski f04a6319cc arm-hyp: rename addressTranslateS1CPR
renamed to: addressTranslateS1

Signed-off-by: Rafal Kolanski <rafal.kolanski@proofcraft.systems>
2022-06-06 10:11:40 +10:00
Rafal Kolanski a422e817a4 machine+design: update for platform constant changes
Signed-off-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2020-11-16 16:52:40 +11:00
Gerwin Klein a45adef66a all: remove theory import path references
In Isabelle2020, when isabelle jedit is started without a session
context, e.g. `isabelle jedit -l ASpec`, theory imports with path
references cause the isabelle process to hang.

Since sessions now declare directories, Isabelle can find those files
without path reference and we therefore remove all such path references
from import statements. With this, `jedit` and `build` should work with
and without explicit session context as before.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-11-02 10:16:17 +10:00
Gerwin Klein 7b9249fe2a riscv design: port new asserts into design spec
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-06-08 20:41:09 +08:00
Gerwin Klein a424d55e3e licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Rafal Kolanski f9ea44ef89 arm-hyp: update spec+proofs for multi-VM support
Highlights:
- new reserved IRQ and associated handler: VPPIEvent
- VPPI events are virtual interrupts we can forward to VMs; currently there is
  only one event: virtual timer interrupt
- VGICMaintenance and VPPIEvent can both receive late interrupts from hardware,
  which are now discarded instead of being delivered to current thread
- given only one possible VPPI event, simplifier tends to mop up more than it
  should, making some proofs fragile w.r.t. adding a new VPPI event
- the order of some lemmas/specs needed shuffling, as now VCPU code needs some
  interrupt code, which uses VCPU code
2020-02-19 10:52:07 +11:00
Amirreza Zarrabi 0116126a3c design: add support to thread id registers 2019-06-28 11:20:22 +10:00
Gerwin Klein c34840d09b global: isabelle update_cartouches 2019-06-14 11:41:21 +10:00
Mitchell Buckley 8173a37c2d Updated specs and proofs for SELFOUR-1491: control IRQ triggering on ARM. 2018-09-19 16:18:09 +10:00
Gerwin Klein 011e08458e Isabelle2018: new comment syntax
(result of "isabelle update_comments <dirs>")
2018-08-20 09:06:35 +10:00
Gerwin Klein b5cdf4703f globally use session-qualified imports; add Lib session
Session-qualified imports will be required for Isabelle2018 and help clarify
the structure of sessions in the build tree.

This commit mainly adds a new set of sessions for lib/, including a Lib
session that includes most theories in lib/ and a few separate sessions for
parts that have dependencies beyond CParser or are separate AFP sessions.
The group "lib" collects all lib/ sessions.

As a consequence, other theories should use lib/ theories by session name,
not by path, which in turns means spec and proof sessions should also refer
to each other by session name, not path, to avoid duplicate theory errors in
theory merges later.
2018-08-20 09:06:34 +10:00
Rafal Kolanski 4a3d7a958c arm-hyp: update proofs for SELFOUR-584: running multiple VMs on ARM
As requested by verification, hypervisor registers are now an
enumeration-indexed array rather than individual fields. This cleans up
some of the proof. Additionally, we sweep some non-complexity under the
machine op rug: vcpu_hw_write/read_reg_ccorres is as deep as we go,
rather than specifying every operation and proving that
vcpu_hw_write seL4_VCPUReg_REG calls set_REG for every REG

I took this opportunity to clean up some arm-hyp definitions and proofs,
so some whitespace cleanup got tangled in.
2018-06-15 18:48:47 +10:00
Pang Luo 6b9912c47a manually adjust non-obvious cases of tab to space replacement 2017-10-20 14:22:36 +11:00
Matthew Brecknell 184d6b70b7 remove most tab characters 2017-10-20 14:22:36 +11:00
Joel Beeren 7602a6c350 design: integrate all architectures 2017-08-09 17:02:49 +10:00
Miki Tanaka 9f3924d1ea design spec: adjust skeleton files for unified haskell files 2017-07-03 10:31:34 +10:00
Joel Beeren 392d055e99 SELFOUR-748: rename tlb invalidation functions 2017-06-20 14:05:45 +10:00
Rafal Kolanski 3468f2d4d4 arm-hyp design: use translator for pageBase body
Type declaration remains harcoded due to lack of "word-like" type class.
2017-06-19 14:32:44 +10:00
Gerwin Klein da1aaa5014 arm-hyp design: update skeleton to include new Haskell functions 2017-06-19 14:32:41 +10:00
Gerwin Klein 7bb68406d6 arm-hyp design/skel: define pageBase manually
pageBase is now generic in Haskell, but since PAddr, VPtr etc all map to word
in Isabelle, the generic type declaration would lead to an error.

Only necessary in ARM_HYP, but could be done in ARM as well if necessary.
2017-06-19 14:32:38 +10:00
Alejandro Gomez-Londono 15536ef9fa arm-hyp design : (Fix) Correctly defining setCurrentPD 2017-06-19 14:32:32 +10:00
Miki Tanaka 96bcd85299 arm-hyp execspec: change skeleton to manually define makeVCPUObject
to allow vgicLR to be initialised as a total function
2017-06-19 14:32:30 +10:00
Alejandro Gomez-Londono be3d9e7209 arm-hyp haskell: Renaming constants/records to follow abstract/haskell convention
* Renaming of some records to follow abstract/haskell convention
  * Some duplicated constants were removed and placed in a shared
    location (machine/ARM_HYP/MachineTypes.thy)
2017-06-19 14:32:27 +10:00
Rafal Kolanski 54999477b8 arm-hyp design: let ArchThread_H see ArchHypervisor_H 2017-06-19 14:32:26 +10:00
Miki Tanaka 4e0c1d1711 arm-hyp execspec: fix createObjects/createObject (in ArchIntermediate_H) 2017-06-19 14:32:25 +10:00
Rafal Kolanski 3b12ece77a arm-hyp abstract/design: add VCPU banked register machine ops 2017-06-19 14:32:24 +10:00
Rafal Kolanski 5181434b31 arm-hyp design: VCPUFault and VGICMaintenance 2017-06-19 14:32:24 +10:00
Miki Tanaka 9123c3635e arm-hyp: changes after rebase (on top of d08ee04e2f) 2017-06-19 14:32:22 +10:00
Miki Tanaka bb9d8df8e8 arm-hyp execspec/machine: callbacks and variuos vcpu functions
- defined callback axiomatisations
2017-06-19 14:32:19 +10:00
Miki Tanaka c079f39e3b arm-hyp execspec: pdates for VER-623
with correct copy_global_mappings for ARM_HYP
2017-06-19 14:32:19 +10:00
Miki Tanaka c32e6552e5 arm-hyp execspec: add irqVGICMaintenane and initInterruptController
with caseconvs, generated files
2017-06-19 14:32:19 +10:00
Miki Tanaka 00f1393c5b arm-hyp execspec: add caseconvs, fixes in haskell + VCPU_H 2017-06-19 14:32:19 +10:00
Miki Tanaka 0ee19108b5 arm-hyp execspec: VCPU skeleton file, new constructs (arch_tcb, arch_fault, Hypervisor) for ARM_HYP 2017-06-19 14:32:19 +10:00
Miki Tanaka 0741f0d533 arm-hyp execspec/machine: fixing import paths and namespace for multiple architecture 2017-06-19 14:32:19 +10:00
Miki Tanaka 81663c978d arm-hyp execspec: add skel/ARM_HYP, m-skel/ARM_HYP, make haskell-translator work for ARM_HYP
(copied from ARM)
Per-plaform CPP configuration for spec-check and make-spec.

The configuration is still duplicated between the two scripts, but now
the translation/check for ARM_HYP will use correct CPP settings.
2017-06-19 14:31:56 +10:00