xtensa: extract common CPU reset code into separate function
platform_restart implementatations do the same thing to reset CPU. Don't duplicate that code, move it to a function and call it from platform_restart. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
@@ -54,27 +54,7 @@ void platform_restart(void)
|
||||
{
|
||||
/* Flush and reset the mmu, simulate a processor reset, and
|
||||
* jump to the reset vector. */
|
||||
|
||||
|
||||
__asm__ __volatile__ ("movi a2, 15\n\t"
|
||||
"wsr a2, icountlevel\n\t"
|
||||
"movi a2, 0\n\t"
|
||||
"wsr a2, icount\n\t"
|
||||
#if XCHAL_NUM_IBREAK > 0
|
||||
"wsr a2, ibreakenable\n\t"
|
||||
#endif
|
||||
#if XCHAL_HAVE_LOOPS
|
||||
"wsr a2, lcount\n\t"
|
||||
#endif
|
||||
"movi a2, 0x1f\n\t"
|
||||
"wsr a2, ps\n\t"
|
||||
"isync\n\t"
|
||||
"jx %0\n\t"
|
||||
:
|
||||
: "a" (XCHAL_RESET_VECTOR_VADDR)
|
||||
: "a2"
|
||||
);
|
||||
|
||||
cpu_reset();
|
||||
/* control never gets here */
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user