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.

Reply via email to