Hi,
As per the commit a8e1620f3c9f2248e90449ecb6dd65d512ff713d by Anthony Merlino ```The extended address is a read-only attribute and thus an attempt to write the extended address should be denied. Instead, the extended address should really be either set by the PHY/radio itself, or provided at board bring-up time to the radio layer. The MAC layer now pulls in the extended address from the radio any time the MAC is reset.``` I am setting the extended address at the board bring-up time before calling mac802154_create(). However, after the mac802154_create() it gets back to IEEE802154_EADDR_UNSPEC. After reviewing, I found out that mac802154_req_reset() calls mac802154_setcoordeaddr(priv, IEEE802154_EADDR_UNSPEC); which ultimately calls mrf24j40_setcoordeaddr to setup my extended address to IEEE802154_EADDR_UNSPEC. The definition of mrf24j40_setcoordeaddr? as mentioned in drivers/wireless/ieee802154/mrf24j40/mrf24j40_getset.c? is as int mrf24j40_setcoordeaddr(FAR struct mrf24j40_radio_s *dev, FAR const uint8_t *eaddr) { int i; for (i = 0; i < 8; i++) { mrf24j40_setreg(dev->spi, MRF24J40_ASSOEADR0 + i, eaddr[i]); dev->addr.eaddr[i] = eaddr[i]; } wlinfo("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\n", eaddr[0], eaddr[1], eaddr[2], eaddr[3], eaddr[4], eaddr[5], eaddr[6], eaddr[7]); return OK; } dev->addr.eaddr must be set by mrf24j40_seteaddr() only. The structure mrf24j40_radio_s is missing struct ieee802154_addr_s coordaddr;? which should be used to hold values of coordinator short and extended address In this way, extended address value will not get modified at time of reset Regards, Rohail Rasool?