From 0c7c3f17e5fbb26804e2acd3a1b53ed7c1c76883 Mon Sep 17 00:00:00 2001 From: geeksville Date: Thu, 23 Apr 2020 18:06:46 -0700 Subject: [PATCH] fix nrf52 macaddr byte order --- src/bare/main-nrf52.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bare/main-nrf52.cpp b/src/bare/main-nrf52.cpp index 89180950e..f825097ac 100644 --- a/src/bare/main-nrf52.cpp +++ b/src/bare/main-nrf52.cpp @@ -30,8 +30,13 @@ void getMacAddr(uint8_t *dmac) assert(res == NRF_SUCCESS); memcpy(dmac, addr.addr, 6); #else - // FIXME - byte order might be wrong and high bits might be wrong - memcpy(dmac, (const void *)NRF_FICR->DEVICEADDR, 6); + const uint8_t *src = (const uint8_t *)NRF_FICR->DEVICEADDR; + dmac[5] = src[0]; + dmac[4] = src[1]; + dmac[3] = src[2]; + dmac[2] = src[3]; + dmac[1] = src[4]; + dmac[0] = src[5] | 0xc0; // MSB high two bits get set elsewhere in the bluetooth stack #endif }