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

Add DMA demo #100

Merged
merged 19 commits into from
Jul 12, 2024
Merged

Add DMA demo #100

merged 19 commits into from
Jul 12, 2024

Conversation

arturum1
Copy link
Contributor

Add Makefile targets and configuration to build opencryptolinux with a few extra peripherals and demonstrate a data transfer via Direct Memory Access (DMA) in linux.

To run DMA demo, type:
make dma-demo

Add two AXI Stream interfaces, and an iob-dma core.
Demo in baremetal firmware:
1) Use DMA to demo transfer of data from memory to axistream (out).
2) Transfer data from axistream (out) core to axistream (in) core.
3) Use DMA to Transfer data from axistream (in) to memory.
4) Compare original memory data with newly received data.

TODO: Demo in Linux
Add linux drivers for iob-axis and iob-dma cores;
Add dma_demo program to test dma in linux;
Add minicom script to run dma_demo program;

WIP: sz file transfer of dma test is failing.
Drivers do not initialize correctly. Probably due to missing mdev or
device tree.
DMA demo is working but received AXISTREAM (in) values are incorrect.
I assume due to cache issues.
Add linux build targets similar to those of iob-soc-sut repository.
DMA transfers are still not working well. They do work on some runs but
not in others.
It seems to work when the DMA (dynamically allocaed) shared memory address is less than 0x81000000. Maybe some hardware issue with values above 24 bits?
This contains a fix in the axis2axi_out module that should remove the
DMA issue.
Add macro for dma_demo.
To run DMA demo, type:
make dma-demo
@jjts jjts merged commit 0f45e12 into IObundle:master Jul 12, 2024
7 checks passed
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.

None yet

2 participants