if( ( ulPHYLinkStatus & BMSR_LINK_STATUS ) != ( xStatus & BMSR_LINK_STATUS ) )
{
ulPHYLinkStatus = xStatus;
FreeRTOS_printf( ( "prvEMACHandlerTask: PHY LS now %dn", ( ulPHYLinkStatus & BMSR_LINK_STATUS ) != 0 ) );
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
Maybe that this problem occurs only under special conditions, which I have, and maybe that a better
code could be used, but as a fast change the addition helped.
The link off is seen after 15 seconds, and the link on is recognized immediately.
Greetings,
Johannes
Ethernet link-on-status on a Zynq not recognized
Hello,
when testing exceptional conditions with the Ethernet communication on a Zynq I found out a small inconvenience.
The tested condition is: Pull the cable during an existing connection and plug it in after a while.
In ‘NetworkInterface.c’ inside prvEMACHandlerTask() it is recognized after 15 seconds, that the
cable is pulled.
The debug-message “prvEMACHandlerTask: PHY LS now 0” is written and the check-timeout is set to
a short time, 1 second.
When the cable is plugged in again and a packet is received before the ulPHYLinkStatus is read,
the timeout will be set to 15 seconds. And if then within 15 seconds a new packet is received, the
link-status will never be reset again to the correct value.
So I added a small piece of code at the place where a packet was received to solve this nasty situation:
if( xResult > 0 )
{
/* A packet was received. No need to check for the PHY status now,
but set a timer to check it later on. /
vTaskSetTimeOutState( &xPhyTime );
xPhyRemTime = pdMS_TO_TICKS( PHY_LS_HIGH_CHECK_TIME_MS );
xResult = 0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/ If ulPHYLinkStatus was set to off previously, the status has to be checked again.
* Otherwise ulPHYLinkStatus would never be set to on, if a packet is received during timeout.
*/
if( ( ulPHYLinkStatus & BMSR_LINK_STATUS ) == 0 )
{
xStatus = ulReadMDIO( PHY_REG_01_BMSR );
Ethernet link-on-status on a Zynq not recognized
Hi Johannes, I’m sorry to discover that the current release of
portable/NetworkInterface/Zynq/NetworkInterface.c
still have this problem.
Here you find an alternative solution for the problem that you encountered.
Ethernet link-on-status on a Zynq not recognized
Hi Hein,
Thanks for your reply, and sorry, that I didn’t remember your advice
regarding the patch given one year before. 🙂
From: Hein Tibosch
Sent: Monday, January 28, 2019 5:24 PM
To: [freertos:discussion] 382005@discussion.freertos.p.re.sourceforge.net
Subject: [freertos:discussion] Ethernet link-on-status on a Zynq not
recognized
Hi Johannes, I’m sorry to discover that the current release of
portable/NetworkInterface/Zynq/NetworkInterface.c still have this problem.
Here
<https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceforge.netpfree
rtosdiscussion382005threada3d9f566-3Flimit-3D250-233ebe&d=DwMCAg&c=VlVW
iTf6NLcRnQ6UE9A3gtZd8K8tBQlazTgpkF1UI&r=I8W7X9UdiYUoP79S5qYphNd5HgskbTn2C
nU21oOZiE&m=SxdnWzQz41RCaUsUsPraD75CATB1MXw3pD3Qe0jq50&s=yiNF8KswoFUli2Pgzf
n2ZV5WGzMxS6ydj4CT3pfa5A&e=> you find an alternative solution for the
problem that you encountered.
Ethernet link-on-status on a Zynq not recognized <https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceforge.netpfree rtosdiscussion382005thread318174e2c3-3Flimit-3D250-235ca1&d=DwMCAg&c=Vl VWiTf6NLcRnQ6UE9A3gtZd8K8tBQlazTgpkF1UI&r=I8W7X9UdiYUoP79S5qYphNd5HgskbTn 2CnU21oOZiE&m=SxdnWzQz41RCaUsUsPraD75CATB1MXw3pD3Qe0jq50&s=rPpzsZDdRmVr1qR1 144sYekfSMYW5CwwFYYtUptsTU&e=>
Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/freertos/discussion/382005/ <https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceforge.netpfree rtosdiscussion382005&d=DwMCAg&c=VlVWiTf6NLcRnQ6UE9A3gtZd8K8tBQlazTgpkF1 UI&r=I8W7X9UdiYUoP79S5qYphNd5HgskbTn2CnU21oOZiE&m=SxdnWzQz41RCaUsUsPraD75CA TB1MXw3pD3Qe0jq50&s=4PiizdO7488QFmJdefGXMbaAyWnQ2KmaAn8EndJb98&e=> To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/ <https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceforge.netauths ubscriptions&d=DwMCAg&c=VlVWiTf6NLcRnQ6UE9A3gtZd8K8tBQlazTgpkF1UI&r=I8W7X 9UdiYUoP79S5qYphNd5HgskbTn2CnU21oOZiE&m=SxdnWzQz41RCaUsUsPraD75CATB1MXw3_pD 3Qe0jq50&s=zMXmNww2kXjVOBal8bwJ4r-L0hlooAShiEGzCMeG8vY&e=>
Ethernet link-on-status on a Zynq not recognized <https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceforge.netpfree rtosdiscussion382005thread318174e2c3-3Flimit-3D250-235ca1&d=DwMCAg&c=Vl VWiTf6NLcRnQ6UE9A3gtZd8K8tBQlazTgpkF1UI&r=I8W7X9UdiYUoP79S5qYphNd5HgskbTn 2CnU21oOZiE&m=SxdnWzQz41RCaUsUsPraD75CATB1MXw3pD3Qe0jq50&s=rPpzsZDdRmVr1qR1 144sYekfSMYW5CwwFYYtUptsTU&e=>
Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/freertos/discussion/382005/ <https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceforge.netpfree rtosdiscussion382005&d=DwMCAg&c=VlVWiTf6NLcRnQ6UE9A3gtZd8K8tBQlazTgpkF1 UI&r=I8W7X9UdiYUoP79S5qYphNd5HgskbTn2CnU21oOZiE&m=SxdnWzQz41RCaUsUsPraD75CA TB1MXw3pD3Qe0jq50&s=4PiizdO7488QFmJdefGXMbaAyWnQ2KmaAn8EndJb98&e=> To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/ <https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceforge.netauths ubscriptions&d=DwMCAg&c=VlVWiTf6NLcRnQ6UE9A3gtZd8K8tBQlazTgpkF1UI&r=I8W7X 9UdiYUoP79S5qYphNd5HgskbTn2CnU21oOZiE&m=SxdnWzQz41RCaUsUsPraD75CATB1MXw3_pD 3Qe0jq50&s=zMXmNww2kXjVOBal8bwJ4r-L0hlooAShiEGzCMeG8vY&e=>