mb/google/brya/var/orisa: Update Type C DisplayPort HPD Configuration
[coreboot2.git] / src / cpu / x86 / early_reset.S
blob07e63f42ded45aed8505a537efaa067ee9a1a831
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 /*
4  * input %esp: return address (not pointer to return address!)
5  * clobber the content of eax, ecx, edx
6  */
8 #include <cpu/x86/mtrr.h>
10 .code32
11 .section .text
12 .global check_mtrr
14 check_mtrr:
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
21         rdmsr
22         andl    $(MTRR_DEF_TYPE_EN | MTRR_DEF_TYPE_FIX_EN), %eax
23         cmp     $0, %eax
24         jnz     warm_reset
25         jmp     *%esp
26         /* perform warm reset */
27 warm_reset:
28         movw    $0xcf9, %dx
29         movb    $0x06, %al
30         outb    %al, %dx
31         /* Should not reach this*/
32 .Lhlt:
33         hlt
34         jmp     .Lhlt