History log of /seL4-camkes-master/kernel/src/arch/riscv/object/objecttype.c
Revision Date Author Comments
# 04061e11 18-Nov-2019 Yanyan Shen <yanyan.shen@data61.csiro.au>

riscv: Reset FPU owner when deleting a thread

If a thread to be deleted is the current FPU owner, we switch
away from the thread.

Signed-off-by: Yanyan Shen <yanyan.shen@data61.csiro.au>


# 1f93e050 17-Apr-2020 Rafal Kolanski <rafal.kolanski@data61.csiro.au>

riscv: tweak Arch_isFrameType argument name

It was 'type' on all other arches, but 't' on riscv. Being consistent
here means we can have the same proof for all arches.

Signed-off-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>


# 200cd2cb 09-Apr-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

riscv: add ghost state tracking for RISC-V objects

This commit adds ghost state annotations for the creation of pages and
page tables in RISC-V (up to 3-level tables only, because the
verification target currently does not support more.)

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>


# 0548f8d7 02-Apr-2020 Rafal Kolanski <rafal.kolanski@data61.csiro.au>

riscv: use word_t rather than "unsigned int"

For other platforms, word_t is used for passing length and size
parameters and adapts to 32 and 64-bit platforms appropriately.
The riscv platforms stands out by using "unsigned int" unlike the
others.

Reduce usage of "unsigned int" to match the other 64-bit verification
target platform, x86 64-bit.

Signed-off-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>


# 79da0792 01-Mar-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

Convert license tags to SPDX identifiers

This commit also converts our own copyright headers to directly use
SPDX, but leaves all other copyright header intact, only adding the
SPDX ident. As far as possible this commit also merges multiple
Data61 copyright statements/headers into one for consistency.


# c9701e3f 24-Jul-2019 Edward Pierzchalski <ed.pierzchalski@data61.csiro.au>

unify userSize type declarations

Other declarations of `userSize` give it the type `word_t`. Since proofs
use a mangled name that includes the type, giving `userSize` different
types at different locations occasionally breaks proofs.


# 1f6e43ca 15-Apr-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

riscv: make consistent PageTable isMapped checks

A page table cap has at least the following entries:
- capPTMappedASID
- capPTIsMapped
- capPTMappedAddress

These are used to implement a type Option<(ASID, MappedAddress)> where
capPTIsMapped is used to reflect whether the values capPTMappedASID and
capPTMappedAddress are valid or not. Frame caps don't have an IsMapped
equivalent but instead check if capFMappedASID == 0. When a Pagetable
is unmapped capPTIsMapped is cleared, but capPTMappedASID and
capPTMappedAddress are left unchanged. When a frame is unmapped then
capFMappedASID will be set to 0.

It appears that the RISC-V port often uses
cap_page_table_cap_get_capPTMappedASID(cap) != asidInvalid to check
whether a page table cap is mapped. This can lead to incorrect behavior
if a page table has been mapped and then unmapped as the asid will be
left as a valid asid. Each of these changes are changed to instead
consistently check capPTIsMapped. In addition it is required that a when
a PageTable becomes reachable as either a vspace_root, or another entry
in the tree that capPTIsMapped is set.


# 306453e3 18-Mar-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

style: set min-conditional-indent to 0

Given we use braces all the time conditional indents do not make code
cleaner.


# d0930f67 18-Mar-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

style: consistently attach return type

Add attach-return-type to astyle


# 3d10ef0c 18-Mar-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

style: correct parenthesis padding

Use astyle's unpad-paren to unpad all parentheses that are not included
by pad-header, pad-oper, and pad-comma.


# d94eda31 18-Jun-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Respect deviceMemory

Passes the `deviceMemory` flag given to `Arch_createObject` into the frame cap instead of
pretending that all frames are valid kernel object memory.


# ca9de60b 18-Jun-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Do not zero memory in Arch_createObject

It use to be be the responsibility of createObject, and by extension Arch_createObject,
to zero memory if so required. Since the riscv port was originally started the responsiblity
of zering the memory was moved to generic untyped retype handling, however this change
was never propogated to the riscv architecture. As it stands this memory zeroing is
guaranteed to zero memory that was already zeroed, which is just a performance (and proof),
issue and so we want to remove them.


# b4b7f194 18-Jun-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Add extra device frame check

This check is redundant, but provides a simplification for verification.


# f3f86874 18-Jun-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Handle ASID caps in Arch_sameRegionAs


# 82ba5150 18-Jun-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Handle ASID caps in Arch_finaliseCap


# f8f5efc7 18-Jun-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Mask frame cap rights

Correctly updates cap rights for new cap permissions through an updateCapData call


# 1b68590b 11-Apr-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

riscv: use one definition of page bits


# f0bd4437 09-Apr-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

riscv: check all frame types in Arch_isFrameType


# 8ccfef60 05-Apr-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

riscv: finally remove isVTableRoot with last usage

Where and how we use this is context dependent so it is now inlined


# 23d83d6c 04-Apr-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

riscv: remove capFTMapType

it is not used on riscv


# 635a6da4 03-Apr-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Remove incorrectly formatted printf


# ae5df972 03-Apr-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Simplify Arch_decodeInvocation

riscv only has a single kind of arch invocation, that for MMUs.


# b9bf2c05 03-Apr-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Remove unused function


# 5b17cd96 02-Apr-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

riscv: Missing arch cap abstractions

These are needed after rebase


# aafa5942 27-Mar-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

RISCV: Place TODOs in the source


# 83ba0847 20-Feb-2018 Hesham Almatary <hesham.almatary@unsw.edu.au>

[SELFOUR-1156] RISC-V Port

Experimental release that supports both RV32 and RV64