From ab3d0fa100993022e12ff3eed64cda5e40b4dc57 Mon Sep 17 00:00:00 2001 From: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com> Date: Mon, 6 Jun 2022 12:18:40 -0700 Subject: [PATCH] TM4C: Enable PHY interrupts for link changes (#478) * Bring in changes by @martinaao --- .../NetworkInterface/TM4C/NetworkInterface.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/source/portable/NetworkInterface/TM4C/NetworkInterface.c b/source/portable/NetworkInterface/TM4C/NetworkInterface.c index 9ce2caf2c..a3f37c3a3 100644 --- a/source/portable/NetworkInterface/TM4C/NetworkInterface.c +++ b/source/portable/NetworkInterface/TM4C/NetworkInterface.c @@ -278,8 +278,18 @@ BaseType_t xNetworkInterfaceInitialise( void ) 0 ); - /* Clear any stray PHY interrupts that may be set. */ + /* Clear any stray MISR1 PHY interrupts that may be set. */ ui16Val = MAP_EMACPHYRead( EMAC0_BASE, PHY_PHYS_ADDR, EPHY_MISR1 ); + /* Enable link status change interrupts */ + ui16Val |= + ( EPHY_MISR1_LINKSTATEN | + EPHY_MISR1_SPEEDEN | + EPHY_MISR1_DUPLEXMEN | + EPHY_MISR1_ANCEN + ); + MAP_EMACPHYWrite( EMAC0_BASE, PHY_PHYS_ADDR, EPHY_MISR1, ui16Val ); + + /* Clear any stray MISR2 PHY interrupts that may be set. */ ui16Val = MAP_EMACPHYRead( EMAC0_BASE, PHY_PHYS_ADDR, EPHY_MISR2 ); /* Configure and enable PHY interrupts */ @@ -686,7 +696,7 @@ static void _process_phy_interrupts( void ) value = MAP_EMACPHYRead( EMAC0_BASE, PHY_PHYS_ADDR, EPHY_MISR1 ); status = MAP_EMACPHYRead( EMAC0_BASE, PHY_PHYS_ADDR, EPHY_STS ); - if( value & ( EPHY_MISR1_SPEED | EPHY_MISR1_SPEED | EPHY_MISR1_ANC ) ) + if( value & ( EPHY_MISR1_SPEED | EPHY_MISR1_DUPLEXM | EPHY_MISR1_ANC ) ) { /* If the speed or duplex has changed */