Skip to content

Conversation

@DirkStober
Copy link

Changes to be committed:
modified: src/pynq_api.c

Fixed the offset for MMIO to an axi interface with smaller alignment than page size.

If you use a range in the axi-slave smaller than the page size (4kB) and start the address not-aligned to the page size the memory is mapped correctly but the virtual offset is not added when accessing the buffer.

Example:
Create AXI-GPIO with range 128 and Master Base Address 0x4120_0080 will lead to PYNQ_writeMMIO() writing to the register 0x4120_0000 if it exists.

Adding the virtual offset when accessing the buffer fixes this.

Changes to be committed:
	modified:   src/pynq_api.c

Fixed the offset for MMIO to an axi interface with smaller alignment
than page size.

If you use a range in the axi-slave smaller than the page size (4kB) and
start the address not-aligned to the page size the memory is mapped
correctly but the virtual offset is not added when accessing the buffer.

Example:
Create AXI-GPIO with range 128 and Master Base Address 0x4120_0080 will
lead to PYNQ_writeMMIO() writing to the register 0x4120_0000 if it
exists.

Adding the virtual offset when accessing the buffer fixes this.
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.

1 participant