This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git


The following commit(s) were added to refs/heads/master by this push:
     new c6106c64f hw/ipc_nrf5340: Apply Errata 161 workaround
c6106c64f is described below

commit c6106c64fb9493e8aabb83abb2247ad36e3288a5
Author: Jerzy Kasenberg <[email protected]>
AuthorDate: Mon Jun 26 10:12:54 2023 +0200

    hw/ipc_nrf5340: Apply Errata 161 workaround
    
    Symptoms
    Network core peripherals or CPU behave erratically after
    Force-OFF release.
    
    Conditions
    Network core is in System ON IDLE state when it is entering
    Force-OFF or the device enters System OFF mode.
    
    Consequences
    Network core peripherals and CPU are not reset. CPU does not
    restart from the reset vector, and peripherals can behave erratically.
    
    This adds code suggested by Nordic Errata 161 when network core reset
    is released.
    
    Signed-off-by: Jerzy Kasenberg <[email protected]>
---
 hw/drivers/ipc_nrf5340/src/ipc_nrf5340.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/hw/drivers/ipc_nrf5340/src/ipc_nrf5340.c 
b/hw/drivers/ipc_nrf5340/src/ipc_nrf5340.c
index c04d32e73..906ad31a5 100644
--- a/hw/drivers/ipc_nrf5340/src/ipc_nrf5340.c
+++ b/hw/drivers/ipc_nrf5340/src/ipc_nrf5340.c
@@ -327,7 +327,14 @@ ipc_nrf5340_init(void)
     }
 
     /* Start Network Core */
+    /* Workaround for Errata 161: "RESET: Core is not fully reset after 
Force-OFF" */
+    *(volatile uint32_t *) ((uint32_t)NRF_RESET + 0x618ul) = 1ul;
     NRF_RESET->NETWORK.FORCEOFF = RESET_NETWORK_FORCEOFF_FORCEOFF_Release;
+    os_cputime_delay_usecs(5);
+    NRF_RESET->NETWORK.FORCEOFF = RESET_NETWORK_FORCEOFF_FORCEOFF_Hold;
+    os_cputime_delay_usecs(1);
+    NRF_RESET->NETWORK.FORCEOFF = RESET_NETWORK_FORCEOFF_FORCEOFF_Release;
+    *(volatile uint32_t *) ((uint32_t)NRF_RESET + 0x618ul) = 0;
 
     /*
      * Waits for NET core to start and init it's side of IPC.

Reply via email to