diff options
-rw-r--r-- | core/minute-ia/init.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/core/minute-ia/init.S b/core/minute-ia/init.S index 67340f343c..7639b31e2b 100644 --- a/core/minute-ia/init.S +++ b/core/minute-ia/init.S @@ -8,6 +8,10 @@ #include "config.h" #include "interrupts.h" + .equ CR0_NW, (1 << 29) + .equ CR0_CD, (1 << 30) + + .global __idt # GDT is loaded by ISH ROM. The FW code retains the same GDT @@ -348,6 +352,11 @@ reset: # Load IDT lidt __idt_ptr + # Enable cache (CR0) + movl %cr0, %eax + andl $~(CR0_CD | CR0_NW), %eax + movl %eax, %cr0 + # Reset Task-Switched flag to prevent an ESC instruction such # as fninit, from triggering a Device-not-available fault clts |