History log of /seL4-camkes-master/projects/capdl/python-capdl-tool/capdl/__init__.py
Revision Date Author Comments
# 53f39c24 21-May-2020 Oliver Scott <Oliver.Scott@data61.csiro.au>

python-capdl-tool: Add smmu v2 support

Add support for generating arm streamid and
contextbank specs.

Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>


# 9f1ba467 17-Jun-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

Convert to SPDX license tags

This includes marking all documentation files CC-BY-SA-4.0.


# a66a1b30 10-Feb-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Add support for Arm GetTrigger and GetTriggerCore

There are additional IRQ control invocations on Arm for specifying the
trigger mode (edge or level) and for specifying the target core. This
adds support to the capDL language to allow specifying IRQs of this
type. Additionally this adds support to the capdl-loader-app for
creating these IRQ handlers and also support in the python-capdl-tool
library for generating Arm specs that have IRQs specifying trigger or
target core attributes.


# dc081bd7 25-Jun-2019 Anna Lyons <anna@gh.st>

python-capdl-tool: fix errors reported by pylint3

Fix errors reported by pylint3 --errors-only on .py files in
python-capdl-tool.


# e7ac7566 15-May-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

python-capdl-tool: expose list of valid archs

Expose the keys of the dictionary representing valid architectures. This
can then be used as part of the arguments to scripts.


# 4050127a 22-Apr-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

trivial: Style recently changed files


# ec1d5b77 23-Mar-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

python-capdl-tool: Add AllocatorState from camkes

Contains allocation data of objects in a CapDL build. There is currently
a pattern of serialising the different capdl allocators
(ObjectAllocator, CSpaceAllocator, AddressSpaceAllocator) between
allocating shared caps and objects which occurs before component
binaries are built, and creating the remaining objects inferred from the
resulting ELF files, which occurs after building. We want to use
AllocatorState from Camkes as a common type to serialise that the
capdl-ld script will use.


# 07d744a8 10-Feb-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

python-capdl-tool: Refactor tests

- make the tests real python unit tests
- convert the bash runner to a python unit test runner
- place all tests under tests/ rather than nested dirs
- rename some artifacts


# 17ea31fa 06-Oct-2018 Kent McLeod <Kent.Mcleod@data61.csiro.au>

python-capdl: Add AddressSpaceAllocator class

Similar to ObjectAllocator and CSpaceAllocator this class is for
tracking allocations as a CapDL spec is constructed. This class is for
tracking the allocation of special backing frames for a single address
space. Symbols that have a greater meaning than anonymous memory such as
IPC buffers, shared memory, guarded symbols, unmapped symbols, DMA pools,
Physical memory mappings, etc should be added to this with structure
with Caps referring to frames that have already been allocated with the
desired attributes. When the final address space is created from the ELF
file, this structure will be passed to the PageCollection object which
will try and use the Caps that have already been created instead of
creating new Frames. This should help applications like Camkes to more
easily manage special frames as they can be entirely handled in the same
location that the symbols are defined with no additional book keeping.


# 1ce8a69c 09-Oct-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

capdl: allow IRQControl to be in loaded cnode

This commit allows the IRQControl capability to be loaded by the capdl
loader into a single cspace (you cannot create copies of this cap, so
trying to put it into two cspaces will fail).

There are no changes to the Haskell, which already supports irq_control.

Changes to python:

- change ObjectType.seL4_IRQControl to ObjectType.IRQHandler. This looks
like an error in the existing code, as the constant was always
interpreted as an IRQHandler not the IRQControl capability.
- add a new ObjectType.seL4_IRQControl
- add a new Object.IRQControl class which resolves to "irq_control".
This matches how other control capabilities are treated in the python,
although they do not actually resolve to Objects (just caps).

Changes to C:

- add a new capdl_to_irq_ctrl data structure which mirrors the
sched_ctrl data structure
- when irq_control is specified in a cnode, move it to that slot


# 1ddbb545 03-Oct-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

python: create and use ObjectRights enum

Add the ObjectRights enum which contains all seL4 rights constants, eg
seL4_CapRights etc.
This allows for easy iteration of all object rights and reduces
import complexity.


# 10e2666c 03-Oct-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

python: create and use ObjectType enum

Move the object type (seL4_.*Object) constants into a new enum, ObjectType.
This allows the types to be iterable and reduces the number of imports,
resulting in less boilerplate.


# 40b62a4a 27-Apr-2018 Japheth Lim <Japheth.Lim@data61.csiro.au>

python-capdl-tool: export base object types

The ContainerObject type is useful to test whether a generic object
contains caps. The new label-mapping camkes template will use this.


# d5ae4e67 04-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix licenses


# c1ecbdb3 03-May-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

python-capdl-tool: drop Object from seL4_SchedControl

SchedControl is just a cap, not an object


# d12d518d 13-Feb-2017 Kofi Doku Atuah <kofidoku.atuah@data61.csiro.au>

CAMKES-560: Add support for new-rt's Reply kernel object.


# dfd25bb2 28-Apr-2016 Stephen Sherratt <Stephen.Sherratt@nicta.com.au>

python-capdl-tool: Support for schedule contexts


# 51780688 12-Apr-2016 Adrian Danis <Adrian.Danis@nicta.com.au>

python-capdl-tool: Define a real architecture definition

This replaces and expands upon the architecture abstractions in util.py.
Previously the architecture just abstracted some sizes of pages and
layouts of a two level paging hierarchy. Now this is generalized both
for arbitrary vspace hierarchies, as well as other architecture
information.

The original interface is left and emulated.


# 7af57231 13-Dec-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

python-capdl: Export `page_sizes`.

The `page_sizes` function needs to be accessible by the 'next' branch of
camkes-tool. This commit has no effect for the 'master' branch of camkes-tool.


# 39a78477 26-Nov-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

python-capdl: Enable Python 3 compatibility settings from `__future__`.

This change enables a variety of Python 3 compatibility settings from
`__future__` when running Python 2. Essentially this forces all existing code
under Python 2 to conform to the Python 3 semantics. This makes bilingual
compatibility easier.


# 5924b144 26-Nov-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

python-capdl: Make all intra-package imports relative.

This progresses compatibility with Python 3 to the point where this package can
be imported. I haven't explored further, but I believe the package still cannot
be used correctly under Python 3. More changes to come.


# 7d6dade6 18-Nov-2015 Stephen Sherratt <Stephen.Sherratt@nicta.com.au>

Moved python-capdl-tool into subdirectory