From: Simon Glass <sjg@chromium.org>
Date: Thu, 6 Nov 2014 20:20:03 +0000 (-0700)
Subject: x86: Invalidate TLB as early as possible
X-Git-Tag: v2025.01-rc5-pxa1908~14237^2~45
X-Git-Url: http://git.dujemihanovic.xyz/html/static/git-favicon.png?a=commitdiff_plain;h=3c00695ee1d73ef52eadd7d4a1de9ecaab4f7be4;p=u-boot.git

x86: Invalidate TLB as early as possible

We should invalidate the TLB right at the start to ensure that we don't get
false address translations even though paging is disabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
---

diff --git a/arch/x86/cpu/start16.S b/arch/x86/cpu/start16.S
index e718d4b26f..445d5a1734 100644
--- a/arch/x86/cpu/start16.S
+++ b/arch/x86/cpu/start16.S
@@ -24,6 +24,9 @@ start16:
 	/* Set the Cold Boot / Hard Reset flag */
 	movl	$GD_FLG_COLD_BOOT, %ebx
 
+	xorl	%eax, %eax
+	movl	%eax, %cr3    /* Invalidate TLB */
+
 	/* Turn off cache (this might require a 486-class CPU) */
 	movl	%cr0, %eax
 	orl	$(X86_CR0_NW | X86_CR0_CD), %eax