Commit Graph

37 Commits

Author SHA1 Message Date
Gerwin Klein 42c4e78e9f
cspec: provide mechanism for adding dts overlays (#591)
Add mechanism for adding overlay.dts files to the l4v build for all
architectures apart from X64 (which does not use dts files).

For example, place a file `overlays/ARM/overlay.dts` into the tree and
the build will pick it up as custom overlay file with the correct proof
session dependencies.

If no file is provided, an empty default overlay file is used.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-03-07 14:35:53 +11:00
Matthew Brecknell 4607098ded ci: Add a script to export kernel build artifacts
This can be used by l4v proof runs in GitHub CI to save kernel build outputs
for later use by binary verification.

Signed-off-by: Matthew Brecknell <matt@kry10.com>
2023-03-04 08:38:33 +11:00
Rafal Kolanski 512fa574db gitignore: add AARCH64 design spec (generated)
Signed-off-by: Rafal Kolanski <rafal.kolanski@proofcraft.systems>
2022-04-20 09:16:19 +10:00
Gerwin Klein 24c0c5c390 spec+proof: use generated config constants
This includes replacing previous ASpec names for such constants with
the names used in Haskell/ExecSpec to avoid duplication. This also
makes some of the proofs slightly more generic.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-12-23 14:54:13 +11:00
Gerwin Klein 3b616f535a cspec: separately generate C config headers
This is in preparation for later turning these config headers into
Isabelle definitions.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-12-23 14:54:13 +11:00
Gerwin Klein a424d55e3e licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Rafal Kolanski 95859fd47c license+gitignore: ignore stack.yaml.lock
Contrary to its name, this is not a lock file, contains versions used
to build things, and does not go away. I have been informed this is the
industry standard.
2019-07-31 16:56:29 +10:00
Gerwin Klein 05925b889d riscv design: initial RISCV64 setup 2018-06-27 10:06:47 +02:00
Adrian Danis 8273ca818d cspec: Remove redundancy in build rules and theory files for c-kernel builds
Removes files that were duplicated in cspec/$L4V_ARCH directories to exist directly in
the cspec directory and contain $L4V_ARCH switches where needed. This allows for a single
Makefile for building the C kernel and the KernelInc_C theory, which is different between
architectures, to still exist per L4V_ARCH.

As the build location of the C kernel, and the resulting kernel_all.c_pp artifact, is
moved this change needs to be reflected in all the theory files that refer to it.
2017-09-21 13:23:04 +10:00
Adrian Danis ba94117969 cspec: Use CMake for building the C kernel
The seL4 kernel now supports a CMake based build in addition to the original Make based
one. This changes the Makefile that previously included the kernel Makefile to instead
have rules for instantiating a sub CMake build

As the location of built files have changed the KernelInc_C theory also needs to be updated
to point to the new locations for the generated artifacts.
2017-09-21 13:23:04 +10:00
Joel Beeren 82863978bd Merge branch 'master' into x64 2017-08-09 17:10:06 +10:00
Matthew Brecknell f4a220e587 x64: remove generated exec spec 2017-08-09 17:02:49 +10:00
Alejandro Gomez-Londono dba1b08caa c-parser: Removes automatically generated lexer and parser files 2017-07-27 11:19:19 +10:00
Matthew Brecknell a719cb3e47 trivial: ignore haskell-translator outputs in spec/machine
tags: [NO_PROOF]
2017-06-22 11:43:44 +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
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
Rafal Kolanski 9d4aa7f40f gitignore: new cspec locations (per-arch) 2017-03-31 16:13:41 +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 c1cb43e83f trivial: ignore generated files 2017-01-13 14:04:15 +01:00
Joel Beeren b3e6e4f2e5 l4v: add jEdit autosave files to .gitignore
[NO_PROOF]
2016-11-25 14:42:21 +11:00
Matthew Brecknell 945ee811c3 CParser multi_arch_refactor: build standalone parser in dir named after arch
Architecture names follow L4V_ARCH-style naming conventions ('ARM', 'FAKE64').
However, the standalone parser does not make use of the L4V_ARCH environment
variable.

The standalone-parser Makefile builds all architectures at once, producing
binaries at 'ARM/c-parser', 'FAKE64/c-parser', and similarly for the tokenizer.

There are also wrapper scripts 'c-parser' and 'tokenizer' in the
standalone-parser directory, which take an architecture on the command line.

The make_munge.sh script calls the appropriate binary parser directly.
2016-09-02 23:38:40 +10:00
Matthew Brecknell 886fe0ef12 CParser multi_arch_refactor: fix tokenizer build 2016-09-01 12:35:33 +10:00
Michael Norrish 936caa2e4f c-parser: multi_arch_refactor: merge with master
factorial regression test does not succeed.
2016-08-15 11:30:24 +10:00
Michael Norrish 7da160d23b Create standalone parser per architecture
Also include a wrapper that calls any of them in a completely
straightforward way.
2016-08-13 17:24:49 +10:00
Matthew Brecknell 33a7c4becb merge master into arch_split 2016-06-27 17:19:39 +10:00
Daniel Matichuk df8e65fbb9 autolevity: initial commit with test run on AInvs 2016-06-23 14:02:40 +10:00
Matthew Brecknell 4ba41b4a08 haskell-spec: ignore documentation outputs 2016-06-08 21:37:43 +10:00
Alejandro Gomez-Londono e1ae9e94dd arch_split: Detype_AI [VER-557] 2016-05-31 15:17:04 +10:00
Thomas Sewell 9c563f01ca L4V support for using skip cache.
Ignore the cache files. Also, add a flag which has run_tests.sh
build the skip cache.
2016-02-10 15:39:47 +11:00
Gerwin Klein be0ebaa139 ignore generated autoconf.h 2015-11-20 16:02:14 +11:00
Gerwin Klein b880019ea1 ignore more 2015-05-22 15:48:52 +10:00
Gerwin Klein 297fbebfef ignore generated file 2015-05-22 10:22:48 +10:00
Michael Norrish 0d0f571d01 Git-Ignore c-parser's tokenizer tool 2015-04-10 14:06:03 +10:00
Gerwin Klein 35f237f266 ignore backup files 2014-11-06 18:48:36 +11:00
David Greenaway e0b7e21d56 attribute tracing: Mechanism to work out changes in simpsets across revisions.
The idea of this file is to allow users to determine how the simpset,
cong set, intro set, wp sets, etc. have changed from an old version of
the repository to a new version.

The process is as follows:

  1. A user runs "save_attributes" on an old, working version of the
     theory.

  2. This tool will write out a ".foo.attrib_trace" file for each
     theory processed.

  3. The user modifies imports statements as required, possibly
     breaking the proof.

  4. The user can now run "diff_attributes" to determine what
     commands they should run to restore the simpset / congset /etc
     to something closer to the old version.

The tool is not complete, in that it won't always suggest the full set
of "simp add", "simp del", etc commands. Nor does it know that a rule
added to the simpset is causing a problem. It merely lists
a hopefully-sensible set of differences.
2014-10-13 11:05:31 +11:00
Gerwin Klein 4a62bf5bfd ignore generated files 2014-07-28 11:35:31 +02:00
Gerwin Klein 84595f4233 release cleanup 2014-07-17 18:22:50 +02:00