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

[fix] Realign addresses to 64-bit #145

Merged
merged 2 commits into from
Nov 2, 2022
Merged

[fix] Realign addresses to 64-bit #145

merged 2 commits into from
Nov 2, 2022

Conversation

creinwar
Copy link
Contributor

@creinwar creinwar commented Nov 1, 2022

The read/write logic in dm_mem.sv only looks at the request address and does not take the byte strobes into account which causes problems when trying to write the Halted, Going, Resuming and Exception locations from a bus that is larger than 32 bit as that would require misaligned requests.
This PR addresses this by realigning the relevant addresses to 64 bits, which makes the DM work for 32 and 64-bit harts.

@bluewww
Copy link
Collaborator

bluewww commented Nov 2, 2022

I'll double check otherwise looks good. Could you also please update the documentation (it describes the debug module addresses).

@bluewww bluewww self-requested a review November 2, 2022 01:16
Copy link
Collaborator

@bluewww bluewww left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@bluewww bluewww merged commit 55114f8 into master Nov 2, 2022
@bluewww bluewww deleted the fix/64-bit-alignment branch November 2, 2022 14:38
niwis added a commit to pulp-platform/cheshire that referenced this pull request Dec 5, 2024
This fixes two errors in the debug module addresses passed to CVA6:

1. `HaltAddress` and `ExceptionAddress` are assumed to be relative to
`DmBaseAddress`, see
https://github.com/pulp-platform/cva6/blob/99ae53bde1a94b90c1d9bbbe7fe272a9336200a6/core/frontend/frontend.sv#L380
and
https://github.com/pulp-platform/cva6/blob/99ae53bde1a94b90c1d9bbbe7fe272a9336200a6/core/csr_regfile.sv#L2295.
Coincidentally, this currently does not cause any issues since `AmDbg = '0`,

2. `ExceptionAddress` was changed from `0x808` to `0x810` in
pulp-platform/riscv-dbg#145, which is included
in the debug module version used in Cheshire. This means that exceptions
in debug mode currently cause CVA6 to jump to `resume` and return from
debug mode instead of handling the exception, which breaks several
openocd commands that use exceptions to discover CSR availabilities.

Signed-off-by: Nils Wistoff <[email protected]>
niwis added a commit to pulp-platform/cheshire that referenced this pull request Dec 5, 2024
This fixes two errors in the debug module addresses passed to CVA6:

1. `HaltAddress` and `ExceptionAddress` are assumed to be relative to
`DmBaseAddress`, see
https://github.com/pulp-platform/cva6/blob/99ae53bde1a94b90c1d9bbbe7fe272a9336200a6/core/frontend/frontend.sv#L380
and
https://github.com/pulp-platform/cva6/blob/99ae53bde1a94b90c1d9bbbe7fe272a9336200a6/core/csr_regfile.sv#L2295.
Coincidentally, this currently does not cause any issues since `AmDbg = '0`,

2. `ExceptionAddress` was changed from `0x808` to `0x810` in
pulp-platform/riscv-dbg#145, which is included
in the debug module version used in Cheshire. This means that exceptions
in debug mode currently cause CVA6 to jump to `resume` and return from
debug mode instead of handling the exception, which breaks several
openocd commands that use exceptions to discover CSR availabilities.

Signed-off-by: Nils Wistoff <[email protected]>
paulsc96 pushed a commit to pulp-platform/cheshire that referenced this pull request Dec 5, 2024
This fixes two errors in the debug module addresses passed to CVA6:

1. `HaltAddress` and `ExceptionAddress` are assumed to be relative to
`DmBaseAddress`, see
https://github.com/pulp-platform/cva6/blob/99ae53bde1a94b90c1d9bbbe7fe272a9336200a6/core/frontend/frontend.sv#L380
and
https://github.com/pulp-platform/cva6/blob/99ae53bde1a94b90c1d9bbbe7fe272a9336200a6/core/csr_regfile.sv#L2295.
Coincidentally, this currently does not cause any issues since `AmDbg = '0`,

2. `ExceptionAddress` was changed from `0x808` to `0x810` in
pulp-platform/riscv-dbg#145, which is included
in the debug module version used in Cheshire. This means that exceptions
in debug mode currently cause CVA6 to jump to `resume` and return from
debug mode instead of handling the exception, which breaks several
openocd commands that use exceptions to discover CSR availabilities.

Signed-off-by: Nils Wistoff <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[dm_mem] Addressing does not take strobes into account
2 participants