Skip to content

Commit 1e0ca95

Browse files
polldofacchinm
authored andcommitted
portentaH7: Change BLE public address
1 parent 57fc4bf commit 1e0ca95

File tree

1 file changed

+11
-0
lines changed
  • connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX

1 file changed

+11
-0
lines changed

connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/HCIDriver.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,13 +387,24 @@ class HCIDriver : public CordioHCIDriver {
387387
#endif /* BT_UART_NO_3M_SUPPORT */
388388
}
389389

390+
void inject_bdaddr(uint8_t* pBuf)
391+
{
392+
if (service_pack_ptr + service_pack_index == brcm_patchram_buf) {
393+
uint8_t bdAddr[6] = { 0xFF, 0xFF, 0xFF, 0x0A, 0x61, 0xA8 };
394+
uint32_t uniqueId = HAL_GetUIDw0() ^ HAL_GetUIDw1() ^ HAL_GetUIDw2();
395+
memcpy(bdAddr, &uniqueId, 3);
396+
memcpy(&pBuf[33], bdAddr, sizeof(bdAddr));
397+
}
398+
}
399+
390400
void send_service_pack_command(void)
391401
{
392402
uint16_t cmd_len = service_pack_ptr[service_pack_index + 2];
393403
uint16_t cmd_opcode = (service_pack_ptr[service_pack_index + 1] << 8) | service_pack_ptr[service_pack_index + 0];
394404
uint8_t *pBuf = hciCmdAlloc(cmd_opcode, cmd_len);
395405
if (pBuf) {
396406
memcpy(pBuf + HCI_CMD_HDR_LEN, service_pack_ptr + service_pack_index + HCI_CMD_HDR_LEN, cmd_len);
407+
inject_bdaddr(pBuf);
397408
hciCmdSend(pBuf);
398409
} else {
399410
}

0 commit comments

Comments
 (0)