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

Merged
merged 8 commits into from
Sep 24, 2024
Merged

make proofs generic in cacheLineBits #814

merged 8 commits into from
Sep 24, 2024

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

Commits on Sep 24, 2024

  1. haskell: mark cacheLineBits as defined in Isabelle

    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    aec9cff View commit details
    Browse the repository at this point in the history
  2. 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 24, 2024
    Configuration menu
    Copy the full SHA
    85308be View commit details
    Browse the repository at this point in the history
  3. x64 machine: remove unused cacheLineBits

    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    57955b3 View commit details
    Browse the repository at this point in the history
  4. 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 24, 2024
    Configuration menu
    Copy the full SHA
    b4e12a3 View commit details
    Browse the repository at this point in the history
  5. 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 24, 2024
    Configuration menu
    Copy the full SHA
    d88b7d0 View commit details
    Browse the repository at this point in the history
  6. arm+arm-hyp crefine: make proof generic in cacheLineBits

    Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
    lsf37 committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    be1a406 View commit details
    Browse the repository at this point in the history
  7. 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 24, 2024
    Configuration menu
    Copy the full SHA
    9abc160 View commit details
    Browse the repository at this point in the history