I have designed a board based on ATSAMV71-XULT design. The differences are:
instead of using SAMV71Q21 I'm using SAME70Q20 and instead of Ethernet PHY KSZ8061 I'm using KSZ8091.
I tried to run uIP example (from softpack 1.4) on IAR IDE and it´s not working.
When I ping the board I got no response (every now and then I got a ping reply from board, but it happens randomly in time and not frequently).
IP Addresses are well set up.
I have already checked hardware with Micrel people and it is OK.
I've been coping with this and reading datasheet and doing different tests for some days.
My configuration is:
BUFFER_SIZE in gmac_tapdev.c is 1536.
RXBMS: Receiver Packet Buffer Memory Size Select has a value of 3.
DRBS: DMA Receive Buffer Size , from the driver is set to BUFFER_SIZE/64.
TXPBMS: Transmitter Packet Buffer Memory Size Select has a value of 1.
When I permanently ping the board I can see that ARP packets are coming in, but the problem is that when the board wants to answer, the packet is not sent out.
If I pause the debug session and see GMAC Transmit Status Register (GMAC_TSR) I notice that there are 3 bits set:
• TXGO: Transmit Go
• TFC: Transmit Frame Corruption Due to AHB Error
• HRESP: HRESP Not OK
After receiving some ping requests, I start seeing in debug terminal a text saying ""E: Send, rc 0x01"
It means that GMACD_Send is failing when trying to transmit data, and getting deeper into it, I found that what is happening is that TX packet Buffer is getting full, and it seems that tail pointer , of description buffer , is not being incremented.
So, for every data transmitted (not really), the data is writen to TX packet Buffer and pointer is incremented to next position. GMAC is not transmitting data from TX Buffer so tail pointer is not being incremented , and finally TX packet buffer is getting full; after that, GMAC_Send starts printing debug information : TRACE_ERROR( "E: Send, rc 0x%x\n\r", gmac_rc ) ;
The tail pointer should be incremented in GMACD_TxCompleteHandler, but in GMACD_Handler i have a breakpoint on (isr & GMAC_IER_TCOMP) and I can see it is never stopping there. So, it means there are no Transmission complete .
Why is that happen? How can I solve that?
Discussions around product based on ARM Cortex M7 core.
1 post • Page 1 of 1
Who is online
Users browsing this forum: No registered users and 2 guests