From b457b87b8ea31c9dd6faff1ae41ac73fd52f5c80 Mon Sep 17 00:00:00 2001 From: Jerzy Kasenberg Date: Wed, 28 Jun 2023 11:40:12 +0200 Subject: [PATCH] nimble/phy/nrf5x: Update NRF5340 errata 158 Errata specifies only NRF_RADIO registers that should be copied from FICR, code copied all registers from TRIMCNF. Now only NRF_RADIO registers are copied as part of Errata 158 implementation. Signed-off-by: Jerzy Kasenberg --- nimble/drivers/nrf5x/src/ble_phy.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nimble/drivers/nrf5x/src/ble_phy.c b/nimble/drivers/nrf5x/src/ble_phy.c index 84d2ff5e2f..3ba359c8f3 100644 --- a/nimble/drivers/nrf5x/src/ble_phy.c +++ b/nimble/drivers/nrf5x/src/ble_phy.c @@ -1571,7 +1571,9 @@ ble_phy_init(void) /* Errata 158: load trim values after toggling power */ for (uint32_t index = 0; index < 32ul && NRF_FICR_NS->TRIMCNF[index].ADDR != (uint32_t *)0xFFFFFFFFul; index++) { - *((volatile uint32_t *)NRF_FICR_NS->TRIMCNF[index].ADDR) = NRF_FICR_NS->TRIMCNF[index].DATA; + if (((uint32_t)NRF_FICR_NS->TRIMCNF[index].ADDR & 0xFFFFF000ul) == (volatile uint32_t)NRF_RADIO_NS) { + *((volatile uint32_t *)NRF_FICR_NS->TRIMCNF[index].ADDR) = NRF_FICR_NS->TRIMCNF[index].DATA; + } } *(volatile uint32_t *)(NRF_RADIO_NS_BASE + 0x774) =