Commit Graph

1617 Commits

Author SHA1 Message Date
Miki Tanaka 629ea900b7 arm-hyp execspec: caseconvs for VGIC interface etc. 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
Miki Tanaka 8bfc2ac68c execspec/machine: remove redundant file (ARM) 2017-06-17 16:26:11 +10:00
Miki Tanaka 1f8127c6cc arm-hyp (abstract/design/machine): add ARM_HYP directories 2017-06-17 16:26:11 +10:00
Miki Tanaka f7e451b18a arm-hyp haskell: updates for the rebase (remove recycle/selfour-553/VER-623)
* correct asid_high_bits and largePTE/superSectionPDE offsets
* correct copy_global_mappings for ARM_HYP
2017-06-17 16:26:11 +10:00
Miki Tanaka 611d63e4ea arm-hyp haskell: add prepareThreadDelete
this is a function called from finiliseCap to prepare a tcb for deletion
2017-06-17 16:26:11 +10:00
Rafal Kolanski 5898d6c7e3 arm-hyp haskell: get SMMU target to build again 2017-06-17 16:26:11 +10:00
Rafal Kolanski 6356fe57a2 arm-hyp haskell: implement VCPU functionality (except faults)
also includes fixes for haskell-translator (SELFOUR-551/555/557), fix the range of vgicLR
2017-06-17 16:26:11 +10:00
Rafal Kolanski 68a8ebd560 arm-hyp haskell: SELFOUR-551: Swap argument order of [di|a]ssociateVcpuTcb
Covers pull request #299. The rest of the changes are either already in
place or concern IO which is not fully specified yet.
2017-06-17 16:26:11 +10:00
Rafal Kolanski b77476a45e arm-hyp haskell: incorporate SELFOUR-555/557
from pull request #285:
SELFOUR-555: Rename ksCurCPU->armHSCurVCPU
SELFOUR-557: s/isIOSpaceFrame/isIOSpaceFrameCap/

Other changes in pull request have no effect on current Haskell spec.
2017-06-17 16:26:11 +10:00
Rafal Kolanski 2c58b564d9 arm-hyp haskell: VIRQ inject invocation 2017-06-17 16:26:11 +10:00
Rafal Kolanski 32951a9a87 arm-hyp haskell: rephrase VIRQ inject decode after kernel changes 2017-06-17 16:26:11 +10:00
Rafal Kolanski 39f054220c arm-hyp haskell: add VGIC interfaces + decode VCPU inject IRQ 2017-06-17 16:26:11 +10:00
Rafal Kolanski 222c2fdf77 arm-hyp haskell: VCPU register read/write (decode+perform) 2017-06-17 16:26:11 +10:00
Rafal Kolanski 0085b67aea arm-hyp haskell: fix compile for build-arm-hyp-nosmmu
Forgot to disable capVPisIOSpace PageCap property when SMMU disabled.
2017-06-17 16:26:11 +10:00
Rafal Kolanski 9dfcec274a haskell: clean up Makefile, separate build dir per target 2017-06-17 16:26:11 +10:00
Rafal Kolanski bd8c6d2a72 haskell: add mapMaybe and modifyArchState
Utility functions.
2017-06-17 16:26:11 +10:00
Rafal Kolanski 9ea53d6c1f haskell: make build-arm-hyp-nosmmu the default build target 2017-06-17 16:26:11 +10:00
Rafal Kolanski 7125d4843c haskell: rename ARM target in Makefile to build-arm
"build" is ambiguous
2017-06-17 16:26:11 +10:00
Rafal Kolanski fa8fc7de7d haskell: arch-specific faults + split VMFault -> ArchFault
Hypervisor extensions add extra fault types which are entirely
arch-specific. While the concept of a VM fault exists on all platforms,
these faults are also arch-specific.

This change adds an ArchFault datatype and constructor to the generic
Faults and Failures, and moves VMFault into ArchFault for the ARM
platform.

NOTE: fault indices have changed (generic goes before arch) as per
  the changes needed for SELFOUR-413, which is the seL4 C equivalent of
  this commit.
2017-06-17 16:26:11 +10:00
Rafal Kolanski 7dc21c9c71 haskell: fix misguided import for ARM platform 2017-06-17 16:26:11 +10:00
Rafal Kolanski 57d800e9c3 arm-hyp haskell: ARMVCPUSetTCB decode+perform 2017-06-17 16:26:11 +10:00
Rafal Kolanski fb23b8ef21 arm-hyp haskell: make VCPU PSpaceStorable 2017-06-17 16:26:11 +10:00
Rafal Kolanski 8309e0acde arm-hyp haskell: don't regenerate Structures.lhs-boot
Structures.lhs-boot is custom, but there was a general rule that would
clobber it in the Makefile. Override this rule.
2017-06-17 16:26:11 +10:00
Rafal Kolanski c5e59e1028 arm-hyp haskell: basic stubs to support recent haskell changes 2017-06-17 16:26:11 +10:00
Rafal Kolanski d79c167820 arm-hyp haskell: ArchFault stub for ARM_HYP platform. 2017-06-17 16:26:11 +10:00
Rafal Kolanski 75514f6a05 arm-hyp haskell: resolve circular dependency for VCPUs
Done by scattering parts of VCPU all over the place, but in a canonical
fashion.
2017-06-17 16:26:11 +10:00
Rafal Kolanski 25616760bd arm-hyp haskell: more non-progress in trying to resolve circular imports 2017-06-17 16:26:11 +10:00
Rafal Kolanski de74d26bbe arm-hyp haskell: call VCPU functions properly
Completely breaks build due to circular dependency problems we can't yet
solve.
2017-06-17 16:26:11 +10:00
Rafal Kolanski 663790c1ad arm-hyp haskell: add start of VCPU/ARM_HYP
Currently not working.
2017-06-17 16:26:11 +10:00
Rafal Kolanski 884586da3f arm-hyp haskell: addres several FIXMES:
- dropped InvokePageIO in favour of capVPisIOSpace flag on PageCap
- converted some objBits (undefined :: ...) to pteBits and pdeBits
- added invalid IOPDEs and IOPTEs encoded to 0
- added IOPTEs and IOPDEs to PSpaceStorable
- adjusted asidHighBits to drop one on enabling MMU
2017-06-17 16:26:11 +10:00
Rafal Kolanski 298d4ea6fe arm-hyp haskell: changes from meeting 2017-06-17 16:26:11 +10:00
Rafal Kolanski a35ec59857 arm-hyp haskell: add arm-hyp-nossmu target, make sure it compiles 2017-06-17 16:26:11 +10:00
Rafal Kolanski 77af6dc71e arm-hyp haskell: compiles, still missing VCPU and IO/IOSpace
All missing spots are hopefully tagged now, and there is quite a bit to
discuss tagged with "FIXME ARMHYP".
2017-06-17 16:26:11 +10:00
Rafal Kolanski b2a1ff6a6a arm-hyp haskell: VSpace compiles with enabled SMMU (stubbed IO for the moment) 2017-06-17 16:26:11 +10:00
Rafal Kolanski c103dfc31b haskell: allow underscores in module names in mkhsboot
Wasted so much time figuring out this was a problem.
2017-06-17 16:26:11 +10:00
Rafal Kolanski bdc3c846dd haskell: base arm-hyp off of arm-kzm 2017-06-17 16:26:11 +10:00
Rafal Kolanski e080f5c26d haskell: allow adding extra CPP options for a target 2017-06-17 16:26:11 +10:00
Rafal Kolanski f5831941ff haskell: hlint and clean up Setup.hs 2017-06-17 16:26:11 +10:00
Rafal Kolanski 49bf6be16a Haskell: build setup for arm-hyp (arm-tk1 = ARM_HYP + TK1) 2017-06-17 16:26:11 +10:00
Alejandro Gomez-Londono 0a31fa7fe4 Remove spec-check test and scripts 2017-05-12 12:50:55 +10:00
Alejandro Gomez-Londono 41f200d5b3 design: Update Makefiles + tests.xml to auto-generate the design spec
* It runs the haskell-translator as a dependency, eliminating the
      need for "run haskell translator" commits.
2017-05-12 12:50:49 +10:00
Alejandro Gomez-Londono 6fb8f73535 design: Remove files generated by the haskell-translator 2017-05-11 16:26:18 +10:00
Pang Luo da28d94974 VER-717: refactor tpidrurwRegister and fix corresponding proof 2017-05-05 15:17:41 +10:00
Joel Beeren 71e2db88a4 arm: refactor sanitise_register to take a bool instead of a kernel_object
This simplified the sanitise_register logic in CRefine for arm-hyp.
2017-05-03 21:51:57 +10:00
Daniel Matichuk cccb7033b8 lib/apply_debug: show protected subgoals
This overrides the default proof state printing function to also
show any subgoals which have been hidden (protected).

This makes proof states shown during apply_debug more
comprehensible.
2017-04-06 12:11:54 +10:00
Matthew Brecknell 366460e76c autocorres: prepare packaging scripts for release 1.3 2017-04-03 14:46:53 +10:00