Skip to content

Does DCSR.mprven affect Abstract Access Memory commands? #1079

Open
@aap-sc

Description

Here is the current description of DCSR.mprven

All operations are executed with machine mode privilege, except that additional Debug Mode CSRs
are accessible and mprv in mstatus may be ignored according to mprven. Full permission checks,
or a relaxed set of permission checks, will apply according to relaxedpriv.

Now here is roi from 3.7.1.3. Access Memory

aamvirtual

0 (physical): Addresses are physical (to the hart they are performed on).
1 (virtual): Addresses are virtual, and translated the way they would be
from M-mode, with MPRV set.

Debug Modules on systems without address translation (i.e. virtual
addresses equal physical) may optionally allow aamvirtual set to 1, which
would produce the same result as that same abstract command with
aamvirtual cleared.

This creates a confusion since it's not quite clear whether DCSR.mprven should affect Abstract Memory Command or not. To me it seems that it should not. Moreover, it looks like DCSR.mprven is intended to be usable for program-buffer-like operations.

It would be nice to somehow clarify this in the specification. For example we could explicitly state if DCSR.mprven affect abstract memory access commands.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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