i.MX8M Mini Core0/Core1 Software Reset Issue - Core Hangs

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8M Mini Core0/Core1 Software Reset Issue - Core Hangs

360 Views
sirishaB
Contributor I

 

Hi,

I'm working with the i.MX8M Mini processor and trying to perform a software reset of Core0 and Core1. I have implemented the following approach where I set the reset vector using the SRC General Purpose Register (GPR) and then trigger a core reset using the A53 register. However, after resetting Core0 (or Core1), the core enters a hang state and doesn't resume properly.

Here’s a summary of what I did:

 

 

  • Set Core0 Reset Vector: I wrote the high and low parts of the reset vector to the SRC_GPR1 and SRC_GPR2 registers.

  • Trigger Core0 Reset: I used the SRC_A53RCR0 register to trigger a software reset of Core0.

 

 

void trigger_core0_reset(void) {

    #define SRC_A53RCR0_ADDR 0x30390004   // Address of SRC_A53RCR0

    #define CORE0_RESET (1 << 0)          // Bit 0 for Core0 software reset

 

    volatile uint32_t *src_a53rcr0 = (uint32_t *)SRC_A53RCR0_ADDR;

    *src_a53rcr0 |= CORE0_RESET;  // Trigger Core0 software reset

}

I called the functions with:

 

set_core0_reset_vector(0x7E1000);  // Example reset vector address

trigger_core0_reset();

 

Issue: After resetting Core0, it appears to enter a hang state and does not recover. I also tried this approach for Core1 with the same result — the core hangs after the reset.

I would appreciate any help or insights into why the cores are hanging and what might be missing in my approach.

 

Thank you in advance!

Labels (1)
0 Kudos
Reply
0 Replies