Hello, I'm writing an ethernet driver for a small embedded os called Xinu on the Orange Pi (allwinner H3) and am running into an issue. I have set up my RX ring and enabled the interrupts, and sometimes a few packets will get received correctly, but after at most a few correct packets, I will start receiving an RX_BUF_UA_INT interrupt. The hardware documentation says this means "the RX DMA can't acquire the next RX descriptor".
*Question: What would cause the DMA to be unable to acquire an RX descriptor?* For context, my OS does not use any sort of virtual memory, so addresses are directly mapped. My RX ring is a DMA-aligned, circular array of descriptors in the descriptor format specified by the datasheet, and I have set rx_dma_desc_list (address 0x34 in the EMAC CSR) to that descriptor list. Any insight would be greatly appreciated. Thanks! -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/842d79a8-752b-4815-9210-e325df4fd47an%40googlegroups.com.
