iMX8M Mini enters Deep hibernation

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

iMX8M Mini enters Deep hibernation

352 Views
jack_huang1
Contributor III

Dears;

          I am debugging IMX8M Mini solution, using android NXP_IMX-Android-11.0.02.4.0 SDK version, currently found in the debugging process: If you cannot enter hibernation by pressing the power key, it will be stuck in the suspend function of GPU (the following code), resulting in the entire hibernation process failing to be executed. Please help confirm the reason? Also, please ask: IMX8MM or IMX8MN

Are there any restrictions when hibernating? Thank you!

The code for the GPU part is as follows:

vendor/nxp-opensource/kernel_imx/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c

/* Power off the GPU. */

status = gckGALDEVICE_Suspend(device, gcvPOWER_OFF);

#if gcdENABLE_VG

if (i == gcvCORE_VG)

{

gcmkONERROR(gckVGHARDWARE_QueryPowerManagementState(vgHardware,

&currentState));

}

else

#endif

{

gcmkONERROR(gckHARDWARE_QueryPowerState(hardware, &currentState));

}

/* Store state. */

Device->statesStored[i] = currentState;

#if gcdENABLE_VG

if (i == gcvCORE_VG)

{

gcmkONERROR(gckVGHARDWARE_SetPowerState(vgHardware, State));

}

else

#endif

{

gcmkONERROR(gckHARDWARE_SetPowerState(hardware, State));

}

 

0 Kudos
Reply
1 Reply

301 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hi @jack_huang1,

I hope you are doing well.
 
When GPU power domain on/off operation leads to unexpected behavior:
Description:
GPU modules include two types of reset signals:
1. Hardware reset for GPUMIX which can be asserted during the power-off state.
2. Software reset for GPU2D and GPU3D. The software reset signal cannot be asserted during the GPU2D or GPU3D power-off state.
- When only the GPU2D or the GPU3D is powered off and then powered on, it is possible for the GPU2D or GPU3D to enter into an unknown status due to the missed reset.
- This may cause unexpected GPU2D or GPU3D interrupts to be received. The typical failure symptom is that the system fails to suspend and resume because of the unexpected GPU interrupt.
Workaround:
To power the GPU2D and the GPU3D on and off simultaneously, use following the sequence:
1. Assert the entire GPUMIX reset by setting the GPU_RESET bit of the SRC_GPU_RCR register.
2. Power on GPU2D and GPU3D.
3. De-assert the entire GPUMIX reset by clearing the GPU_RESET bit of the SRC_GPU_RCR register.
 
Thanks and Regards,
Sanket Parekh
0 Kudos
Reply