Adds iDMA driver as loadable kernel module#3
Draft
mineiwik wants to merge 5 commits intopulp-platform:cheshirefrom
Draft
Adds iDMA driver as loadable kernel module#3mineiwik wants to merge 5 commits intopulp-platform:cheshirefrom
mineiwik wants to merge 5 commits intopulp-platform:cheshirefrom
Conversation
The purpose of the iDMA proxy driver is to serve as an IOCTL interface to issue a MEMCPY iDMA transfer from user-space. The proxy driver allows three different types of src/dst addressed: - IDMA_KERNEL_BUFFER: the user can mmap a kernel buffer to user-space and read/write data to it. The iDMA transfer addresses are the physical addresses of the (physically contiguous) kernel buffers - IDMA_COPY_BUFFER: Copy user-space buffers to temporarily allocated kernel-space buffers. The iDMA transfer addresses are the physical addresses of the (physically contiguous) kernel buffers - IDMA_USER_DIRECT: Use user-space mapping to get physical addresses of the buffers. User has to guarantee that the buffers are physically contiguous
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR adds two iDMA drivers as either in-tree or out-of-tree loadable kernel modules and three example applications to issue iDMA transfers from user-space.
The drivers have been put into their own
driversdirectory inidma-engineandidma-proxyrespectively. Both drivers can be built by invokingmake clean all deployin the respective directory. Additionally, the three applications located indrivers/idma-proxyare built as well and all binaries (drivers and apps) are copied over to the rootfs. Just make sure theARCHandCROSS_COMPILEenvironment variables are unset or set correctly, depending on your environment.