From 8ddaf84516e52c72b71336e44d7c1f8952b63f90 Mon Sep 17 00:00:00 2001 From: paul-szczepanek-arm <33840200+paul-szczepanek-arm@users.noreply.github.com> Date: Mon, 11 Mar 2019 14:02:32 +0000 Subject: [PATCH] use pal version of load bd address --- .../TARGET_NRF5x/NRFCordioHCIDriver.cpp | 30 +++---------------- 1 file changed, 4 insertions(+), 26 deletions(-) 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 48f35bcade..076198e0d0 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 @@ -30,6 +30,7 @@ #include "ll_defs.h" #include "fake_lhci_drv.h" #include "pal_bb.h" +#include "pal_cfg.h" #include "lhci_api.h" #include "wsf_assert.h" #include "wsf_buf.h" @@ -290,7 +291,7 @@ void NRFCordioHCIDriver::do_initialize() // BD Addr bdAddr_t bd_addr; - PlatformLoadBdAddress(bd_addr); + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bd_addr, sizeof(bdAddr_t)); LlSetBdAddr((uint8_t *)&bd_addr); LlMathSetSeed((uint32_t *)&bd_addr); @@ -316,19 +317,13 @@ void NRFCordioHCIDriver::start_reset_sequence() bool NRFCordioHCIDriver::get_random_static_address(ble::address_t& address) { - /* Load address from nRF configuration. */ - uint64_t devAddr = (((uint64_t)NRF_FICR->DEVICEADDR[0]) << 0) | - (((uint64_t)NRF_FICR->DEVICEADDR[1]) << 32); + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, address.data(), sizeof(bdAddr_t)); - for (size_t i = 0; i < address.size(); ++i) { - address[i] = devAddr >> (i * 8); - } + MBED_ASSERT((address[5] & 0xC0) == 0xC0); - address[5] |= 0xC0; /* cf. "Static Address" (Vol C, Part 3, section 10.8.1) */ return true; } - ble::vendor::cordio::CordioHCIDriver& ble_cordio_get_hci_driver() { static NRFCordioHCITransportDriver transport_driver; @@ -338,20 +333,3 @@ ble::vendor::cordio::CordioHCIDriver& ble_cordio_get_hci_driver() { return hci_driver; } - -// Nordic implementation -void PlatformLoadBdAddress(uint8_t *pDevAddr) -{ - unsigned int devAddrLen = 6; - - /* Load address from nRF configuration. */ - uint64_t devAddr = (((uint64_t)NRF_FICR->DEVICEID[0]) << 0) | - (((uint64_t)NRF_FICR->DEVICEID[1]) << 32); - - unsigned int i = 0; - while (i < devAddrLen) - { - pDevAddr[i] = devAddr >> (i * 8); - i++; - } -}