You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The problem is this line of code in stm32h7xx_hal_eth.c i think. tailidx = (descidx + 1U) % ETH_RX_DESC_CNT;
The descriptor list is organized as a ring buffer, e.g. desc[0], desc[1], desc[2], desc[3], desc[4], desc[5]
The tail pointer must set "behind" the current descriptor, not in front of it. E.g. current descriptor index = 2, tail pointer must be set to 1, and not 3!
RBU occurs when ETH_DMACRXDTPR = ETH_DMACCARXDR
You can try this fix maybe.
You can also check this comment. Are you sure you save the index here?
The text was updated successfully, but these errors were encountered:
Thank you for your report. This bug has been fixed in commit ceda3ce by correcting the calculation of the tail pointer so that it points to the last updated descriptor.
The problem is this line of code in stm32h7xx_hal_eth.c i think.
tailidx = (descidx + 1U) % ETH_RX_DESC_CNT;
The descriptor list is organized as a ring buffer, e.g. desc[0], desc[1], desc[2], desc[3], desc[4], desc[5]
The tail pointer must set "behind" the current descriptor, not in front of it. E.g. current descriptor index = 2, tail pointer must be set to 1, and not 3!
RBU occurs when ETH_DMACRXDTPR = ETH_DMACCARXDR
You can try this fix maybe.
You can also check this comment. Are you sure you save the index here?
The text was updated successfully, but these errors were encountered: