Add TI MSP DMA Support for MSPM33 Platform #7
Merged
padmaraghunathan90 merged 6 commits intodev_mspm33from Jan 23, 2026
Merged
Conversation
|
The following west manifest projects have changed revision in this Pull Request:
✅ All manifest checks OK Note: This message is automatically posted and updated by the Manifest GitHub Action. |
ccd4a99 to
5242497
Compare
bb2d4a3 to
f5dd89a
Compare
Collaborator
Author
|
Addressed all the comments given by @Shreyas-Shankar155 and pushed the changes
|
Shreyas-Shankar155
requested changes
Dec 30, 2025
bfcff35 to
368fdd7
Compare
Add DMA driver binding for Texas Instruments MSP Family series Signed-off-by: Aman Lachhiramka <a-lachhiramka@ti.com>
368fdd7 to
98679a1
Compare
Shreyas-Shankar155
approved these changes
Jan 2, 2026
| source ~/zephyrproject/zephyr/zephyr-env.sh | ||
| west build -p always -b lp_mspm33c321a samples/basic/blinky | ||
|
|
||
| - name: Build ADC Sequence example |
Collaborator
There was a problem hiding this comment.
Why is this removed ?
Collaborator
Author
There was a problem hiding this comment.
HSADC has changed a lot during SDK APL release and that's why the sample is not building. So needs to inculcate those changes in the drivers
38feff8 to
d9ca828
Compare
24bc8f0 to
a395ccc
Compare
a395ccc to
98679a1
Compare
Add DMA driver support for Texas Instruments MSP family series Signed-off-by: Aman Lachhiramka <a-lachhiramka@ti.com>
Add DMA nodes to the dtsi for TI MSPM33 Signed-off-by: Aman Lachhiramka <a-lachhiramka@ti.com>
Add DMA test driver support for Texas Instrument's lp_mspm33c321a launchpad Signed-off-by: Aman Lachhiramka <a-lachhiramka@ti.com>
Temporary removing ADC test case due to the changes made in the APL release of SDK for ADC Signed-off-by: Aman Lachhiramka <a-lachhiramka@ti.com>
Signed-off-by: Aman Lachhiramka <a-lachhiramka@ti.com>
98679a1 to
4b5d133
Compare
padmaraghunathan90
approved these changes
Jan 23, 2026
JFMSP
pushed a commit
that referenced
this pull request
Mar 12, 2026
ASM is notoriously harder to maintain than C and requires core specific adaptation which impairs even more the readability of the code. There's a bug in current arch_cpu_atomic_idle asm version: tst x0, #(DAIF_IRQ_BIT) //here Z := (DAIF_IRQ_BIT == 0) beq _irq_disabled //jump to _irq_disabled when Z is set msr daifclr, #(DAIFCLR_IRQ_BIT) _irq_disabled: ret As can be seen, the asm code jumps to _irq_disabled when Z is set, but per aarch64 architecture reference, DAIF_IRQ == 0 means the IRQ is unmasked, I.E enabled. So the asm logic here is wrong. I fixed this bug in C version. This shows the benefit of ASM -> C As for performance concern, except the bug fix above, there's no difference of generated code between ASM and C version. ASM version: <arch_cpu_idle>: d5033f9f dsb sy d503207f wfi d50342ff msr daifclr, #0x2 d65f03c0 ret arch_cpu_atomic_idle>: d50342df msr daifset, #0x2 d5033fdf isb d503205f wfe f279001f tst x0, #0x80 54000040 b.eq 1001d10 <_irq_disabled> // b.none d50342ff msr daifclr, #0x2 _irq_disabled>: d65f03c0 ret C version: <arch_cpu_idle>: d5033f9f dsb sy d503207f wfi d50342ff msr daifclr, #0x2 d65f03c0 ret <arch_cpu_atomic_idle>: d50342df msr daifset, #0x2 d5033fdf isb d503205f wfe 37380040 tbnz w0, #7, 1001d0c <arch_cpu_atomic_idle+0x14> d50342ff msr daifclr, #0x2 d65f03c0 ret And as can be seen, C version use the tbnz instruction to test bit and branch. Unlike TST, TBNZ does not affect the Z, N, C, or V flags in the processor state. So except the bug fix, C version looks a bit better than asm version. Other architectures such as x86, riscv, rx, xtensa, mips and even arm cortex_m also use c version for cpu_idle, it's safe for ASM -> C. Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
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 Direct Memory Access (DMA) support for the Texas Instruments MSP microcontrollers, specifically targeting the MSPM33 series.
Testing
The implementation has been verified with the following tests:
tests/drivers/dma/chan_blen_transfer- Validates basic DMA transfers with different block lengthstests/drivers/dma/loop_transfer- Tests continuous DMA loop transfersAll tests pass on the lp_mspm33c321a target board.
chan_blen_transfer test:
loop_transfer test: