Commit Graph

71 Commits

Author SHA1 Message Date
Alejandro Gomez-Londono 796887d9b1 Removes all trailing whitespaces 2017-07-12 15:13:51 +10:00
Joel Beeren 392d055e99 SELFOUR-748: rename tlb invalidation functions 2017-06-20 14:05:45 +10:00
Miki Tanaka ef6e2dc32c arm-hyp machine spec: get_gic_vcpu_ctrl_eisr1 shoud call get_gic_vcpu_ctrl_eisr1_val (fix) 2017-06-19 14:32:37 +10:00
Alejandro Gomez-Londono 8ace5b721d arm-hyp abstract: (Fix) Correctly defining setCurrentPD 2017-06-19 14:32:32 +10:00
Rafal Kolanski ce02f303ac arm-hyp machine: update physBase for TK1 2017-06-19 14:32:31 +10:00
Rafal Kolanski 6c1715827c arm-hyp machine: update maxIRQ 2017-06-19 14:32:31 +10:00
Rafal Kolanski 75492ee523 arm-hyp machine: update cache lines (32->64) 2017-06-19 14:32:31 +10:00
Gerwin Klein de745cb2e8 haskell: adopt new getActiveIRQ parameter 2017-06-19 14:32:26 +10:00
Gerwin Klein 4ee422a392 aspec: make getActiveIRQ aware of whether we are at entry or preemption
Some interrupts can only occur at kernel entry, but not at kernel preemption
points. In particular interrupts that are caused by user-level code.
2017-06-19 14:32:26 +10:00
Rafal Kolanski f00965b376 arm-hyp haskell/design: tune VGIC lr machine ops to make more sense
Forcing the machine ops to depend on the arguments, and switching from
nat to machine_word since there are no nats in C.
2017-06-19 14:32:25 +10:00
Rafal Kolanski 53a2826e77 arm-hyp design/abstract: clean up and indent MachineOps 2017-06-19 14:32:24 +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 476690e91a arm-hyp machine ops: get_gic_vcpu_ctrl_eisr* 2017-06-19 14:32:24 +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 c32e6552e5 arm-hyp execspec: add irqVGICMaintenane and initInterruptController
with caseconvs, generated files
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 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
Alejandro Gomez-Londono 6fb8f73535 design: Remove files generated by the haskell-translator 2017-05-11 16:26:18 +10:00
Miki Tanaka 98832f8ccd execspec: add hypervisor, HypFaultType in skeletons (ARM), generated files 2017-02-22 15:26:46 +11:00
Gerwin Klein 520921351a provide TCB argument for sanitiseRegister
Other platforms such as arm-hyp will need to look into additional TCB state
such as VCPU in sanitiseRegister. This commit provides the scaffolding for
that.
2017-02-12 12:54:42 +11:00
Joel Beeren 3dafec7d46 backport changes to ARM proofs from X64 work in progress
- replace ARM-specific constants and types with aliases which can be
  instantiated separately for each architecture.
- expand lib with lemmas used in X64 proofs.
- simplify some proofs.

Also-by: Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>
2017-01-27 08:31:07 +11:00
Gerwin Klein 8ac1200329 cleanup: remove accidentally declared const 2017-01-15 17:05:52 +01:00
Alejandro Gomez-Londono ab6b9baebb ExecSpec: Changes to the haskell to better reflect ASpec
* atcbContextGet and atcbContextSet where added (just as in ASpec)

* asUser is now defined in terms of atcbContext{Get,Set}

* arch_tcb is now correctly imported as a datatype not as a type
  synonym

  tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:55 +11:00
Miki Tanaka 99bcebda87 ASpec: arch-specific faults + VMFault -> ArchFault + ReservedIRQ
* fixing name space for arch_tcb and tcb_context

* arch_fault added

* changing name space for arch_tcb

  - as_user, set_mrs, get_mrs, copyRegsToArea, and copyRegsToArea are
    moved to the ARM_HYP directory.  This breaks the proofs in
    refinement, etc., mostly in tcb related files.

* removed a duplicate range check definition

* fixes ARM for arch_tcb

* adding arch_thread_get/set

* add ReserveIRQ

  - initInterruptController is not added yet.

* add arch_fault

  - arch_fault and related functions are added.

* arch-parametrising arch-specific extra registers

  - ArchDefaultExtraRegisters is the common interface that refers to the
    arch-specific data (ARMNoExtraRegisters for ARM/ARM_HYP)

* Adding accesors for tcb_context

  - Despite the fact that tcb_context has an arch-specific definition,
    it is reasonable to assume that some form of tcb_context will be
    available in any architecture, thus the need for accesors to handle
    updates.

* as_user updated to use tcb_context accesors

* set_mrs and get_mrs updated to use tcb_context accesors

  - Several function on ArchTcb_A and ArchTcbAcc_A (both theories where
    removed) can be defined in a general context by using the
    tcb_context accesors

  tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:49 +11:00
Miki Tanaka a2d707d17e SELFOUR-553: update rpidrurw in TCBConfigure for simpler Infoflow proofs. 2016-11-18 16:27:26 +11:00
Miki Tanaka f8f88c6952 SELFOUR-553: Change Spec according to C code and fix ASpec and AInvs 2016-11-18 16:19:14 +11:00
Thomas Sewell f32e2ca0f5 SELFOUR-444: Abstract implementation.
Abstract implementation of preemptible retyping.
2016-11-02 11:19:08 +11:00
Xin,Gao 113315d9a6 SELFOUR-421: merge and fix up to ArmConfidentiality proof 2016-09-22 19:21:56 +10:00
Xin,Gao 328846ee1a SELFOUR-421: crefine builds 2016-09-22 19:11:37 +10:00
Matthew Brecknell f9f160ed14 arch_split: replace some fixed word sizes with type aliases
Changed some instances of word32 to machine_word, and "10 word" to irq.
Also introduce a type_synonym for "machine_word_len".
2016-08-03 14:46:23 +10:00
Corey Richardson dd73a2c819
run haskell translator 2016-07-21 15:54:49 +10:00
Corey Richardson e2c55aa544
run haskell translator 2016-07-20 18:16:23 +10:00
Alejandro Gomez-Londono 9c608c62dc arch_split: Schedule_AI [VER-565] 2016-06-02 14:20:06 +10:00
Matthew Brecknell 9ccdbfa21e arch_split: move locale setup to generic theory 2016-05-31 15:14:40 +10:00
Joel Beeren 6a2692abc6 lib: fix theory includes for arch-splitted WordSetup 2016-05-20 12:31:10 +10:00
Gerwin Klein f0faa90f8a lib/spec/proof/tools: fix word change fallout 2016-05-16 21:11:40 +10:00
Daniel Matichuk 7e37215bd2 arch_split: add extend_locale to base import 2016-05-06 18:37:16 +10:00
Daniel Matichuk 9ceed1eb12 arch_split: fix proofs after removing shadow and unqualify commands and adding fix for crunch. Checks up to DPolicy. 2016-05-04 15:14:41 +10:00
Daniel Matichuk 670d1c118d arch_split: added optional definition override for crunch. Reduced qualification commands to minimal required set. 2016-05-04 15:14:41 +10:00
Matthew Brecknell 0c3a12771d arch_split: merge master 2016-04-28 14:36:43 +10:00
Daniel Matichuk 1d20b393c0 arch_split: replaced sublocale with global_naming 2016-04-27 14:32:38 +10:00
Daniel Matichuk 3191c485d5 arch_split: added ARM_A and ARM_H locales 2016-04-20 17:31:45 +10:00
Daniel Matichuk 72337faa7b arch_split: added namespacing to ExecSpec 2016-04-01 15:17:17 +11:00
Daniel Matichuk 144778e8eb arch_split: avoid caching file_defs in translator to make CONTEXT environment function as expected 2016-04-01 15:09:34 +11:00
Sophie Taylor d7fd88727a SELFOUR-420: Verification of maxIRQ check in handle_interrupt. 2016-03-17 11:20:52 +11:00
Matthew Brecknell 8cc95bfb8e arch_split: merge master into arch_split 2016-03-01 11:30:47 +11:00
Daniel Matichuk d107cb6758 arch_split: halfway into KHeap_AI 2016-02-22 17:48:52 +11:00
Matthew Brecknell 84d2889d45 Isabelle2016: merge master into 2016 2016-02-19 16:17:26 +11:00
Daniel Matichuk df8261c121 arch_split: split up Invariants_AI 2016-02-17 16:36:29 +11:00