mirror of
https://github.com/apache/nuttx.git
synced 2026-10-10 15:50:23 +00:00
VIRT_ADDR() converted the DMA buffer addresses to KSEG1, while the buffers come from g_buffers, which is linked in KSEG0 when the data memory is cached. Buffers then ended up in the free list under both aliases. Use the segment g_buffers is linked in instead. A buffer handed to an RX descriptor may still have dirty D-Cache lines, at least the free list link written into it. If such a line is evicted while the DMA writes the frame, it overwrites part of the frame. Discard the buffer from the D-Cache before giving it to the DMA. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Daniel P. Carvalho <danieloak@gmail.com> |
||
|---|---|---|
| .. | ||
| include | ||
| src | ||
| Kconfig | ||