[Fix] Support MMIO read/write to non 8-byte aligned address #161
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When calling
fpgaWriteMMIO64
which an offset and size that spans multiple control registers, only the write to the first control register will pass through, and the write that goes into the next control register will get dropped. This change makes sure that if the input offset and size is not aligned to control register base address offset, the upper half of the first control register will be written byfpgaWriteMMIO32
so that the next write will start at control register base address offset.Collateral (docs, reports, design examples, case IDs):
None
Tests added:
None
Tests run:
Tested with oneAPI SYCL design that reproduces the issue, the run passed with the fix.