Add documentation to dma_channel_abort regarding errata RP2040-E13 #816

Merged
kilograham merged 4 commits from dma_abort_docs into develop 2022-05-11 19:24:43 -05:00
kilograham commented 2022-05-09 15:36:44 -05:00 (Migrated from github.com)

See https://github.com/raspberrypi/pico-feedback/issues/224

Note this is a documentation only fix, as dma_channel_abort does not have enough information to efficiently workaround the issue on the callers behalf.

See https://github.com/raspberrypi/pico-feedback/issues/224 Note this is a documentation only fix, as `dma_channel_abort` does not have enough information to efficiently workaround the issue on the callers behalf.
lurch (Migrated from github.com) reviewed 2022-05-09 16:07:36 -05:00
@ -473,6 +473,32 @@ static inline void dma_channel_start(uint channel) {
*
lurch (Migrated from github.com) commented 2022-05-09 16:07:35 -05:00

"an channel completion" -> "a channel completion"

"an channel completion" -> "a channel completion"
Wren6991 commented 2022-05-10 04:21:48 -05:00 (Migrated from github.com)

I fixed the typo pointed out by @lurch. I also made another change, which might be more contentious, so feel free to back out: poll BUSY rather than ABORT to check for ABORT completion, to guarantee the channel is returned to a quiescent state before the function exits. ABORT clears prematurely due to the erratum (in fact this is the erratum).

The difference in timing is the time taken for the in-flight transfers to drain from the bus FIFOs, which should be a few cycles.

I fixed the typo pointed out by @lurch. I also made another change, which might be more contentious, so feel free to back out: poll BUSY rather than ABORT to check for ABORT completion, to guarantee the channel is returned to a quiescent state before the function exits. ABORT clears prematurely due to the erratum (in fact this *is* the erratum). The difference in timing is the time taken for the in-flight transfers to drain from the bus FIFOs, which should be a few cycles.
Wren6991 (Migrated from github.com) reviewed 2022-05-10 04:22:29 -05:00
Wren6991 (Migrated from github.com) left a comment
No description provided.
Approval for the docs updates, @kilograham please merge if you are happy with the ABORT -> BUSY polling change
kilograham commented 2022-05-10 16:26:55 -05:00 (Migrated from github.com)

Does the ABORT->BUSY change have an effect on what happens if the channel is disabled?

Does the ABORT->BUSY change have an effect on what happens if the channel is disabled?
Wren6991 commented 2022-05-11 04:08:19 -05:00 (Migrated from github.com)

No. BUSY clears once the in-flight and not-yet-issued transfer counts both reach 0. The not-yet-issued count is cleared by the ABORT, and EN=0 does not prevent in-flight transfers from completing.

No. BUSY clears once the in-flight and not-yet-issued transfer counts both reach 0. The not-yet-issued count is cleared by the ABORT, and EN=0 does not prevent in-flight transfers from completing.
bruelltuete (Migrated from github.com) reviewed 2022-05-11 15:57:31 -05:00
@ -473,6 +473,32 @@ static inline void dma_channel_start(uint channel) {
*
bruelltuete (Migrated from github.com) commented 2022-05-11 15:57:31 -05:00

Another typo: "to" is twice.

Another typo: "to" is twice.
kilograham commented 2022-05-11 19:25:05 -05:00 (Migrated from github.com)

Note I force merged this as the only change after approval was a type in a comment

Note I force merged this as the only change after approval was a type in a comment
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-raspberrypi/pico-sdk!816
No description provided.