UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Newbie krush
Newbie
5,737 Views
Registered: ‎03-22-2016

Ethernet problem in ZYNQ bare-metal application for both cores (based on XAPP1079)

I have created a two cores bare metal project based on XAPP1079. Without Ethernet works the project fine. After addition of the Ethernet (i have used an example project from SDK as source code) it works about minute and then goes into "DataAbortHandler" on xemacpsif_resetrx_on_no_rxdata(echo_netif); event, because the echo_netif pointer is null.

void
timer_callback(XScuTimer * TimerInstance)
{
    /* we need to call tcp_fasttmr & tcp_slowtmr at intervals specified
     * by lwIP. It is not important that the timing is absoluetly accurate.
     */
#ifndef USE_SOFTETH_ON_ZYNQ
    ResetRxCntr++;
#endif
    /* For providing an SW alternative for the SI #692601. Under heavy
     * Rx traffic if at some point the Rx path becomes unresponsive, the
     * following API call will ensures a SW reset of the Rx path. The
     * API xemacpsif_resetrx_on_no_rxdata is called every 100 milliseconds.
     * This ensures that if the above HW bug is hit, in the worst case,
     * the Rx path cannot become unresponsive for more than 100
     * milliseconds.
     */

#ifndef USE_SOFTETH_ON_ZYNQ
    if (ResetRxCntr >= RESET_RX_CNTR_LIMIT) {
        xemacpsif_resetrx_on_no_rxdata(echo_netif);
        ResetRxCntr = 0;
    }
#endif

    XScuTimer_ClearInterruptStatus(TimerInstance);
}

 

Could someone explain me why it happens?

Tags (3)
0 Kudos
1 Reply
Contributor
Contributor
424 Views
Registered: ‎01-18-2018

Re: Ethernet problem in ZYNQ bare-metal application for both cores (based on XAPP1079)

Hi @krush

although it is quite old, it might serve to somebody.

 

In the example, echo_netif and server_netif structure are declared, yet only server_netif is configured.

To avoid the issue just replace echo_netif with server_netif. It will do the trick.

Luca

0 Kudos