30
30
#include " ll_defs.h"
31
31
#include " fake_lhci_drv.h"
32
32
#include " pal_bb.h"
33
+ #include " pal_cfg.h"
33
34
#include " lhci_api.h"
34
35
#include " wsf_assert.h"
35
36
#include " wsf_buf.h"
@@ -290,7 +291,7 @@ void NRFCordioHCIDriver::do_initialize()
290
291
291
292
// BD Addr
292
293
bdAddr_t bd_addr;
293
- PlatformLoadBdAddress ( bd_addr);
294
+ PalCfgLoadData (PAL_CFG_ID_BD_ADDR, bd_addr, sizeof (bdAddr_t) );
294
295
LlSetBdAddr ((uint8_t *)&bd_addr);
295
296
LlMathSetSeed ((uint32_t *)&bd_addr);
296
297
@@ -316,19 +317,13 @@ void NRFCordioHCIDriver::start_reset_sequence()
316
317
317
318
bool NRFCordioHCIDriver::get_random_static_address (ble::address_t & address)
318
319
{
319
- /* Load address from nRF configuration. */
320
- uint64_t devAddr = (((uint64_t )NRF_FICR->DEVICEADDR [0 ]) << 0 ) |
321
- (((uint64_t )NRF_FICR->DEVICEADDR [1 ]) << 32 );
320
+ PalCfgLoadData (PAL_CFG_ID_BD_ADDR, address.data (), sizeof (bdAddr_t));
322
321
323
- for (size_t i = 0 ; i < address.size (); ++i) {
324
- address[i] = devAddr >> (i * 8 );
325
- }
322
+ MBED_ASSERT ((address[5 ] & 0xC0 ) == 0xC0 );
326
323
327
- address[5 ] |= 0xC0 ; /* cf. "Static Address" (Vol C, Part 3, section 10.8.1) */
328
324
return true ;
329
325
}
330
326
331
-
332
327
ble::vendor::cordio::CordioHCIDriver& ble_cordio_get_hci_driver () {
333
328
static NRFCordioHCITransportDriver transport_driver;
334
329
@@ -338,20 +333,3 @@ ble::vendor::cordio::CordioHCIDriver& ble_cordio_get_hci_driver() {
338
333
339
334
return hci_driver;
340
335
}
341
-
342
- // Nordic implementation
343
- void PlatformLoadBdAddress (uint8_t *pDevAddr)
344
- {
345
- unsigned int devAddrLen = 6 ;
346
-
347
- /* Load address from nRF configuration. */
348
- uint64_t devAddr = (((uint64_t )NRF_FICR->DEVICEID [0 ]) << 0 ) |
349
- (((uint64_t )NRF_FICR->DEVICEID [1 ]) << 32 );
350
-
351
- unsigned int i = 0 ;
352
- while (i < devAddrLen)
353
- {
354
- pDevAddr[i] = devAddr >> (i * 8 );
355
- i++;
356
- }
357
- }
0 commit comments