-
Notifications
You must be signed in to change notification settings - Fork 221
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
[DMA 3/8] Remove ChannelCreator types, temporarily disable burst mode #2403
Conversation
Draft for a reason, I want to see where CI breaks. |
3b46cb0
to
93eeb90
Compare
I'm liking the direction of this a lot, I think if we choose to treat channels like peripherals and apply the same config method to drivers (whatever that may be from discussions in #2416) it should work quite nicely I think. |
a8bd163
to
2752db1
Compare
I'm not happy that |
cedeb69
to
210f29b
Compare
My idea is to move burst mode config to Tx/RxBuffer (and consequently, Preparation if I need to, although burst length is still nebulous to me a bit). This allows us more flexibility (burst mode becomes a property of the transaction, essentially), and it allows us to remove in-memory configuration from the DMA channels. |
Did you manage to figure out the bandwidth thing? If there are consequences, then (long term) users need some way to turn it off in some subset of channels and/or transactions. EDIT: For future reference, I found this. |
No, I mean I'd put this into the user's hands, so that they can enable burst transfer of buffers. There is very little clear documentation what burst mode actually means for internal SRAM, so I'd try not to be more clever than necessary.
Only a single transfer can happen at any one time anyway, I think burst mode just prevents the arbiter from giving bus access to a different channel. I assume the DMA takes care of using aligned word access if it can, and I hope it doesn't need burst mode to be enabled for it. |
da573e8
to
747d131
Compare
6240d7f
to
cf7c76d
Compare
c4bd7c3
to
e516a87
Compare
6b5d172
to
03fcf43
Compare
Cannot comment on the line: There is the ChannelCreator struct left in
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, glad to see the creator types go!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thought I already approved - apparently not. Looking forward to the next PRs
Thank you for your contribution!
We appreciate the time and effort you've put into this pull request.
To help us review it efficiently, please ensure you've gone through the following checklist:
Submission Checklist 📝
cargo xtask fmt-packages
command to ensure that all changed code is formatted correctly.CHANGELOG.md
in the proper section.Extra:
Pull Request Details 📖
Description
This PR removes the
ChannelCreator
types, and instead provides the initialized DMA channels immediately. The PR further removes the channel-wide burst mode setting, and pushes the responsibility to the DMA buffer APIs. As a consequence, some peripherals currently don't support burst DMA transfers.