This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 59352d0ed570f75ff7453eac7f89f3651243f1e1
Author: raiden00pl <[email protected]>
AuthorDate: Fri Oct 16 11:06:08 2026 +0200

    arch/arm/nrf52: do not overwrite own address with the coordinator address
    
    Setting the coordinator short or extended address wrote the device's
    own address, so after association the radio filtered out the frames
    sent to this device. Store the coordinator address separately.
    
    Assisted-by: Claude Code
    Signed-off-by: raiden00pl <[email protected]>
---
 arch/arm/src/nrf52/nrf52_ieee802154.c      | 4 ++--
 arch/arm/src/nrf52/nrf52_ieee802154_priv.h | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/arm/src/nrf52/nrf52_ieee802154.c 
b/arch/arm/src/nrf52/nrf52_ieee802154.c
index 50c7d34c144..eae9898d324 100644
--- a/arch/arm/src/nrf52/nrf52_ieee802154.c
+++ b/arch/arm/src/nrf52/nrf52_ieee802154.c
@@ -219,7 +219,7 @@ static int nrf52_radioi8_seteaddr(struct 
nrf52_radioi8_dev_s *dev,
 static int nrf52_radioi8_setcoordsaddr(struct nrf52_radioi8_dev_s *dev,
                                        const uint8_t *saddr)
 {
-  IEEE802154_SADDRCOPY(dev->state.addr.saddr, saddr);
+  IEEE802154_SADDRCOPY(dev->state.coordaddr.saddr, saddr);
 
   wlinfo("setcoordsaddr: %02X:%02X\n", saddr[0], saddr[1]);
   return OK;
@@ -247,7 +247,7 @@ static int nrf52_radioi8_setcoordeaddr(struct 
nrf52_radioi8_dev_s *dev,
 
   for (i = 0; i < 8; i++)
     {
-      dev->state.addr.eaddr[i] = eaddr[i];
+      dev->state.coordaddr.eaddr[i] = eaddr[i];
     }
 
   return OK;
diff --git a/arch/arm/src/nrf52/nrf52_ieee802154_priv.h 
b/arch/arm/src/nrf52/nrf52_ieee802154_priv.h
index 16b21bfcbb0..92734586c37 100644
--- a/arch/arm/src/nrf52/nrf52_ieee802154_priv.h
+++ b/arch/arm/src/nrf52/nrf52_ieee802154_priv.h
@@ -78,8 +78,9 @@ struct nrf52_radioi8_state_s
 {
   /* MAC Attributes */
 
-  struct ieee802154_addr_s addr; /* Address */
-  struct ieee802154_cca_s  cca;  /* Clear channel assessement method */
+  struct ieee802154_addr_s addr;      /* Address */
+  struct ieee802154_addr_s coordaddr; /* Coordinator address */
+  struct ieee802154_cca_s  cca;       /* Clear channel assessement method */
 
   /* TX CSMA */
 

Reply via email to