Skip to content

PMP Regions Specs can't be used to define the upper memory regionΒ #4333

Open
@ZhekaS

Description

Currently, TORRegionSpec is defined using two *const u8 pointers, start and end, however the end pointer is more like "one-past-end" because it is being written as is (with shifting by 2) to pmpaddr register. It means that this mechanism can't be used when the uppermost region needs to be defined. That is, when end is one past the 0xFFFF_FFFF address on a 32-bit system.
Similar problem exists when we want to have a single NAPOT region to cover the whole memory space (for instance when we want a "default" PMP permission for everything). In that case the region is defined by it's start address and a size expressed as usize. But usize can't express the full size of 32-bit space.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions