AnsweredAssumed Answered

Where does machine_restart map in the IMX8M kernel sources?

Question asked by John Obendorfer on Sep 27, 2019
Latest reply on Oct 4, 2019 by Radhika Somaiya

I'm using the Sumo release on an IMX8MQ.  Could any one please point me to the imx8m-specific function called by machine_restart()? 

 

I thought it was mxc_reset() in arch/arm/mach-imx/system.c, but inserting a #error in that function doesn't break the build.  That's a pity, because mxc_reset()  does exactly what I want: force WDOG1 to fire the system reset signal.

 

The machine_restart() in arch/arm64/kernel/process.c references two "possible suspects":

1. the pointer arm_pm_restart

2. the function do_kernel_restart()

 

arm_pm_restart appears to be set in the xen/enlighten.c, but that quickly led to the deferencing of a jump table that I haven't been able to find yet.

 

On the other hand, do_kernel_restart() appears to walk a list of registered reset handlers, none of which look  like they would reset the platform.

 

Any light that anyone could throw on this would be much appreciated!

 

Thanks & Regards,

 

John Obendorfer

Sr Software Engineer

Cognex

Outcomes