Skip to content

Commit b8be35e

Browse files
piotrkoziarrlubos
authored andcommitted
[nrf fromlist] drivers: ieee802154_nrf5: Use BLE.ADDR instead of FICR to create EUI64.
Upstream PR: zephyrproject-rtos/zephyr#73156 Use BLE.ADDR to create unique (to some extent) EUI64 on nRF54H20 in some cases inside the IEEE 802.15.4 driver. The amount of EUI64-s available in such a way is very limited (~16 million). However, currently there does not seem to be another feasible way to get device identifiers on nRF54H20 (such are kept in SICR, to which the radio core has no access). Signed-off-by: Piotr Koziar <piotr.koziar@nordicsemi.no>
1 parent e41c78c commit b8be35e

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

drivers/ieee802154/ieee802154_nrf5.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,11 @@ static void nrf5_get_eui64(uint8_t *mac)
126126
mac[index++] = (IEEE802154_NRF5_VENDOR_OUI >> 8) & 0xff;
127127
mac[index++] = IEEE802154_NRF5_VENDOR_OUI & 0xff;
128128

129-
#if defined(CONFIG_TRUSTED_EXECUTION_NONSECURE) && defined(NRF_FICR_S)
129+
#if defined(NRF54H_SERIES)
130+
/* Can't access SICR with device id on a radio core. Use BLE.ADDR. */
131+
deviceid[0] = NRF_FICR->BLE.ADDR[0];
132+
deviceid[1] = NRF_FICR->BLE.ADDR[1];
133+
#elif defined(CONFIG_TRUSTED_EXECUTION_NONSECURE) && defined(NRF_FICR_S)
130134
soc_secure_read_deviceid(deviceid);
131135
#else
132136
deviceid[0] = nrf_ficr_deviceid_get(NRF_FICR, 0);

0 commit comments

Comments
 (0)