This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new a4315fbb452 arch/arm/src: Fix Ethernet RUNNING status regression in
IMXRT and STM32(F7/H7).
a4315fbb452 is described below
commit a4315fbb452c4a10aaa689021c3b8b28853b490d
Author: aviralgarg05 <[email protected]>
AuthorDate: Sun Jan 25 14:13:03 2026 +0530
arch/arm/src: Fix Ethernet RUNNING status regression in IMXRT and
STM32(F7/H7).
Add missing netdev_carrier_on() and netdev_carrier_off() calls to
imxrt_enet.c, stm32f7/stm32_ethernet.c, stm32h7/stm32_ethernet.c,
and stm32/stm32_eth.c. This ensures the interfaces correctly report
IFF_RUNNING status, as required by recent networking stack changes.
Verification:
- imxrt_enet.c pass ./tools/checkpatch.sh.
- stm32f7/stm32_ethernet.c pass ./tools/checkpatch.sh.
- stm32h7/stm32_ethernet.c pass ./tools/checkpatch.sh.
- stm32/stm32_eth.c pass ./tools/checkpatch.sh.
- Manual compilation verification for IMXRT1060 driver.
- Addresses CI failures in arm-13 job (STM32H7).
Signed-off-by: Aviral Garg <[email protected]>
---
arch/arm/src/imxrt/imxrt_enet.c | 2 ++
arch/arm/src/stm32/stm32_eth.c | 2 ++
arch/arm/src/stm32f7/stm32_ethernet.c | 2 ++
arch/arm/src/stm32h7/stm32_ethernet.c | 2 ++
4 files changed, 8 insertions(+)
diff --git a/arch/arm/src/imxrt/imxrt_enet.c b/arch/arm/src/imxrt/imxrt_enet.c
index 9b6656ea453..160a7ac0ada 100644
--- a/arch/arm/src/imxrt/imxrt_enet.c
+++ b/arch/arm/src/imxrt/imxrt_enet.c
@@ -1508,6 +1508,7 @@ static int imxrt_ifup_action(struct net_driver_s *dev,
bool resetphy)
imxrt_enet_modifyreg32(priv, IMXRT_ENET_EIMR_OFFSET, TX_INTERRUPTS,
priv->ints);
+ netdev_carrier_on(dev);
return OK;
}
@@ -1595,6 +1596,7 @@ static int imxrt_ifdown(struct net_driver_s *dev)
/* Mark the device "down" */
priv->bifup = false;
+ netdev_carrier_off(dev);
leave_critical_section(flags);
return OK;
}
diff --git a/arch/arm/src/stm32/stm32_eth.c b/arch/arm/src/stm32/stm32_eth.c
index 8d71b317f4c..5a7501134f3 100644
--- a/arch/arm/src/stm32/stm32_eth.c
+++ b/arch/arm/src/stm32/stm32_eth.c
@@ -2286,6 +2286,7 @@ static int stm32_ifup(struct net_driver_s *dev)
up_enable_irq(STM32_IRQ_ETH);
stm32_checksetup();
+ netdev_carrier_on(dev);
return OK;
}
@@ -2351,6 +2352,7 @@ static int stm32_ifdown(struct net_driver_s *dev)
/* Mark the device "down" */
priv->ifup = false;
+ netdev_carrier_off(dev);
leave_critical_section(flags);
return ret;
}
diff --git a/arch/arm/src/stm32f7/stm32_ethernet.c
b/arch/arm/src/stm32f7/stm32_ethernet.c
index 174c3a9c958..c76828e3999 100644
--- a/arch/arm/src/stm32f7/stm32_ethernet.c
+++ b/arch/arm/src/stm32f7/stm32_ethernet.c
@@ -2327,6 +2327,7 @@ static int stm32_ifup(struct net_driver_s *dev)
up_enable_irq(STM32_IRQ_ETH);
stm32_checksetup();
+ netdev_carrier_on(dev);
return OK;
}
@@ -2372,6 +2373,7 @@ static int stm32_ifdown(struct net_driver_s *dev)
/* Mark the device "down" */
priv->ifup = false;
+ netdev_carrier_off(dev);
leave_critical_section(flags);
return OK;
}
diff --git a/arch/arm/src/stm32h7/stm32_ethernet.c
b/arch/arm/src/stm32h7/stm32_ethernet.c
index e90fb5c5716..9e862513456 100644
--- a/arch/arm/src/stm32h7/stm32_ethernet.c
+++ b/arch/arm/src/stm32h7/stm32_ethernet.c
@@ -2499,6 +2499,7 @@ static int stm32_ifup(struct net_driver_s *dev)
up_enable_irq(STM32_IRQ_ETH);
stm32_checksetup();
+ netdev_carrier_on(dev);
return OK;
}
@@ -2544,6 +2545,7 @@ static int stm32_ifdown(struct net_driver_s *dev)
/* Mark the device "down" */
priv->ifup = false;
+ netdev_carrier_off(dev);
leave_critical_section(flags);
return OK;
}