1 /* SPDX-License-Identifier: GPL-2.0-or-later */
4 * input %esp: return address (not pointer to return address!)
5 * clobber the content of eax, ecx, edx
8 #include <cpu/x86/mtrr.h>
15 /* Use the MTRR default type MSR as a proxy for detecting INIT#.
16 * Reset the system if any known bits are set in that MSR. That is
17 * an indication of the CPU not being properly reset. */
19 check_for_clean_reset:
20 movl $MTRR_DEF_TYPE_MSR, %ecx
22 andl $(MTRR_DEF_TYPE_EN | MTRR_DEF_TYPE_FIX_EN), %eax
26 /* perform warm reset */
31 /* Should not reach this*/