Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make proofs generic in cacheLineBits #814

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

make proofs generic in cacheLineBits #814

wants to merge 8 commits into from

Commits on Sep 1, 2024

  1. word_lib: shiftr is always less than max word

    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 1, 2024
    Configuration menu
    Copy the full SHA
    32d3eba View commit details
    Browse the repository at this point in the history
  2. haskell: mark cacheLineBits as overwritten in Isabelle

    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 1, 2024
    Configuration menu
    Copy the full SHA
    c376ee9 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2024

  1. arm+arm-hyp+aarch64 machine: cacheLineBits from kernel config

    Use generated CONFIG_L1_CACHE_LINE_SIZE_BITS as source of truth for
    the value of cacheLineBits
    
    The requirements for cacheLineBits are numeric: we need more than 1 and
    less than or equal to ptBits, which is only available as a constant
    after ExecSpec.
    
    1 is excluded, because we want to be able to fold the value of
    cacheLineBits inside C cache operations, and 1 is mentioned as index
    increment. No other numerals conflict in these functions.
    
    The only observed values for cacheLineBits are 5 and 6 on Arm, but
    there is no need to be more restrictive than cacheLineBits_sanity.
    
    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    185995b View commit details
    Browse the repository at this point in the history
  2. x64 machine: remove unused cacheLineBits

    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    b19ef7b View commit details
    Browse the repository at this point in the history
  3. arm+arm-hyp ainvs: remove unfoldings of cacheLineBits

    None of the unfoldings of cacheLineBits turn out to be necessary.
    
    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    2b3fa2e View commit details
    Browse the repository at this point in the history
  4. arm-hyp ainvs+crefine: move masking lemmas for cacheLineBits

    addrFromPPtr_mask and ptrFromPAddr_mask are only needed for masking with
    cacheLineBits in CRefine. Move to CRefine where the rest of the
    cacheLineBits infrastructure is.
    
    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    29f8314 View commit details
    Browse the repository at this point in the history
  5. arm+arm-hyp crefine: make proof generic in cacheLineBits

    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    203aaa7 View commit details
    Browse the repository at this point in the history
  6. aarch64 crefine: make proof generic in cacheLineBits

    On AArch64 we have so far only seen cacheLineBits = 6 in the kernel.
    
    To be future-proof, bring AArch64 proofs into line with AArch32 anyway,
    rename cacheLineSize to cacheLineBits to stay consistent, and make proof
    generic in cacheLineBits.
    
    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    e335f1f View commit details
    Browse the repository at this point in the history