From 3e6e671d1771cbb753c05e021d68febe2804533d Mon Sep 17 00:00:00 2001 From: Paul Szczepanek Date: Fri, 3 Jul 2020 12:21:18 +0100 Subject: [PATCH] make public and random static based on different nrf configs --- .../TARGET_NRF5x/NRFCordioHCIDriver.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/NRFCordioHCIDriver.cpp b/features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/NRFCordioHCIDriver.cpp index ca3c9caad1..0aa9286269 100644 --- a/features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/NRFCordioHCIDriver.cpp +++ b/features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x/NRFCordioHCIDriver.cpp @@ -324,7 +324,15 @@ void NRFCordioHCIDriver::do_initialize() // BD Addr bdAddr_t bd_addr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bd_addr, sizeof(bdAddr_t)); + + /* Load address from nRF configuration. */ + uint64_t address_int = (((uint64_t)NRF_FICR->DEVICEADDR[0]) << 0) | + (((uint64_t)NRF_FICR->DEVICEADDR[1]) << 32); + unsigned int i = 0; + while (i++ < BDA_ADDR_LEN) { + bd_addr[i] = address_int >> (i * 8); + } + LlSetBdAddr((uint8_t *)&bd_addr); LlMathSetSeed((uint32_t *)&bd_addr);