Patchwork Use existing, readable MTRR #defines instead of hardcoding numbers

login
register
about
Submitter Uwe Hermann
Date 2010-09-30 18:30:25
Message ID <20100930183025.GU3256@greenwood>
Download mbox | patch
Permalink /patch/2009/
State Accepted
Commit r5887
Headers show

Comments

Uwe Hermann - 2010-09-30 18:30:25
See patch.


Uwe.
Myles Watson - 2010-09-30 20:15:17
I'm surprised that the #defines were commented out.

Acked-by: Myles Watson <mylesgw@gmail.com>

Thanks,
Myles
Uwe Hermann - 2010-09-30 21:20:32
On Thu, Sep 30, 2010 at 02:15:17PM -0600, Myles Watson wrote:
> I'm surprised that the #defines were commented out.
> 
> Acked-by: Myles Watson <mylesgw@gmail.com>

Thanks, r5887.


Uwe.

Patch

Use existing, readable MTRR #defines instead of hardcoding numbers.

Replace $0x200 with $MTRRphysBase_MSR(0) etc. Also, move some #ifdef stuff
a little bit around (should not affect any functionality) to make the
Intel/AMD/VIA CAR implementations more similar and easier to compare.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>

Index: src/cpu/via/car/cache_as_ram.inc
===================================================================
--- src/cpu/via/car/cache_as_ram.inc	(Revision 5886)
+++ src/cpu/via/car/cache_as_ram.inc	(Arbeitskopie)
@@ -78,36 +78,33 @@ 
 	.long	0x000 /* NULL, end of table */
 
 clear_fixed_var_mtrr_out:
-	/* MTRRPhysBase */
-	movl	$0x200, %ecx
+	movl	$MTRRphysBase_MSR(0), %ecx
 	xorl	%edx, %edx
 	movl	$(CacheBase|MTRR_TYPE_WRBACK),%eax
 	wrmsr
 
-	/* MTRRPhysMask */
-	movl	$0x201, %ecx
+	movl	$MTRRphysMask_MSR(0), %ecx
 	/* This assumes we never access addresses above 2^36 in CAR. */
 	movl	$0x0000000f,%edx
 	movl	$(~(CacheSize-1)|0x800),%eax
 	wrmsr
 
-	/* enable write base caching so we can do execute in place
-	 * on the flash rom.
-	 */
-	/* MTRRPhysBase */
-	movl	$0x202, %ecx
-	xorl	%edx, %edx
 #if defined(CONFIG_TINY_BOOTBLOCK) && CONFIG_TINY_BOOTBLOCK
 #define REAL_XIP_ROM_BASE AUTO_XIP_ROM_BASE
 #else
 #define REAL_XIP_ROM_BASE CONFIG_XIP_ROM_BASE
 #endif
+
+	/* enable write base caching so we can do execute in place
+	 * on the flash rom.
+	 */
+	movl	$MTRRphysBase_MSR(1), %ecx
+	xorl	%edx, %edx
 	movl    $REAL_XIP_ROM_BASE, %eax
 	orl     $MTRR_TYPE_WRBACK, %eax
 	wrmsr
 
-	/* MTRRPhysMask */
-	movl	$0x203, %ecx
+	movl	$MTRRphysMask_MSR(1), %ecx
 	movl	$0x0000000f, %edx
 	movl	$(~(CONFIG_XIP_ROM_SIZE - 1) | 0x800), %eax
 	wrmsr
@@ -195,8 +192,7 @@ 
 
 
 	/* Set the default memory type and disable fixed and enable variable MTRRs */
-	movl    $0x2ff, %ecx
-	//movl    $MTRRdefType_MSR, %ecx
+	movl    $MTRRdefType_MSR, %ecx
 	xorl    %edx, %edx
 
 	/* Enable Variable and Disable Fixed MTRRs */
@@ -204,7 +200,7 @@ 
 	wrmsr
 
 	/* enable caching for first 1M using variable mtrr */
-	movl    $0x200, %ecx
+	movl	$MTRRphysBase_MSR(0), %ecx
 	xorl    %edx, %edx
 	movl     $(0 | 6), %eax
 	//movl     $(0 | MTRR_TYPE_WRBACK), %eax
@@ -216,41 +212,41 @@ 
 	 * And in x86_setup_fixed_mtrrs()(mtrr.c), 0-256M is set cacheable.
 	 */
 
-	movl    $0x201, %ecx
+	movl	$MTRRphysMask_MSR(0), %ecx
 	movl    $0x0000000f, %edx /* AMD 40 bit 0xff*/
  	movl    $((~(( 0 + 0x80000) - 1)) | 0x800), %eax
 	wrmsr
 
-	movl    $0x202, %ecx
+	movl	$MTRRphysBase_MSR(1), %ecx
 	xorl    %edx, %edx
 	movl     $(0x80000 | 6), %eax
 	orl     $(0 | 6), %eax
 	wrmsr
 
-	movl    $0x203, %ecx
+	movl	$MTRRphysMask_MSR(1), %ecx
 	movl    $0x0000000f, %edx /* AMD 40 bit 0xff*/
  	movl    $((~(( 0 + 0x20000) - 1)) | 0x800), %eax
 	wrmsr
 
-	movl    $0x204, %ecx
+	movl	$MTRRphysBase_MSR(2), %ecx
 	xorl    %edx, %edx
 	movl     $(0xc0000 | 6), %eax
 	orl     $(0 | 6), %eax
 	wrmsr
 
-	movl    $0x205, %ecx
+	movl	$MTRRphysMask_MSR(2), %ecx
 	movl    $0x0000000f, %edx /* AMD 40 bit 0xff*/
 	movl    $((~(( 0 + 0x40000) - 1)) | 0x800), %eax
 	wrmsr
 
 	/* cache XIP_ROM_BASE-SIZE to speedup coreboot code */
-	movl    $0x206, %ecx
+	movl	$MTRRphysBase_MSR(3), %ecx
 	xorl    %edx, %edx
 	movl     $REAL_XIP_ROM_BASE,%eax
 	orl     $(0 | 6), %eax
 	wrmsr
 
-	movl    $0x207, %ecx
+	movl	$MTRRphysMask_MSR(3), %ecx
 	xorl    %edx, %edx
 	movl     $CONFIG_XIP_ROM_SIZE,%eax
 	decl	%eax
Index: src/cpu/amd/car/cache_as_ram.inc
===================================================================
--- src/cpu/amd/car/cache_as_ram.inc	(Revision 5886)
+++ src/cpu/amd/car/cache_as_ram.inc	(Arbeitskopie)
@@ -243,13 +243,13 @@ 
 
 #if CacheSize > 0x8000
 	/* enable caching for 32K-64K using fixed mtrr */
-	movl	$0x268, %ecx  /* fix4k_c0000*/
+	movl	$MTRRfix4K_C0000_MSR, %ecx
 	simplemask CacheSize, 0x8000
 	wrmsr
 #endif
 
 	/* enable caching for 0-32K using fixed mtrr */
-	movl	$0x269, %ecx  /* fix4k_c8000*/
+	movl	$MTRRfix4K_C8000_MSR, %ecx
 	simplemask CacheSize, 0
 	wrmsr
 
@@ -260,22 +260,23 @@ 
 	wrmsr
 
 #if defined(CONFIG_XIP_ROM_SIZE) && defined(CONFIG_XIP_ROM_BASE)
-	/* enable write base caching so we can do execute in place
-	 * on the flash rom.
-	 */
-	movl	$0x202, %ecx
-	xorl	%edx, %edx
 
 #if defined(CONFIG_TINY_BOOTBLOCK) && CONFIG_TINY_BOOTBLOCK
 #define REAL_XIP_ROM_BASE AUTO_XIP_ROM_BASE
 #else
 #define REAL_XIP_ROM_BASE CONFIG_XIP_ROM_BASE
 #endif
+
+	/* enable write base caching so we can do execute in place
+	 * on the flash rom.
+	 */
+	movl	$MTRRphysBase_MSR(1), %ecx
+	xorl	%edx, %edx
 	movl    $REAL_XIP_ROM_BASE, %eax
 	orl     $MTRR_TYPE_WRBACK, %eax
 	wrmsr
 
-	movl	$0x203, %ecx
+	movl	$MTRRphysMask_MSR(1), %ecx
 	movl	$0xff, %edx /* (1 << (CONFIG_CPU_ADDR_BITS - 32)) - 1 for K8 (CONFIG_CPU_ADDR_BITS = 40) */
 	jmp_if_k8(wbcache_post_fam10_setup)
 	movl	$0xffff, %edx /* (1 << (CONFIG_CPU_ADDR_BITS - 32)) - 1 for FAM10 (CONFIG_CPU_ADDR_BITS = 48) */
Index: src/cpu/intel/car/cache_as_ram.inc
===================================================================
--- src/cpu/intel/car/cache_as_ram.inc	(Revision 5886)
+++ src/cpu/intel/car/cache_as_ram.inc	(Arbeitskopie)
@@ -196,11 +196,13 @@ 
 	wrmsr
 
 #if defined(CONFIG_XIP_ROM_SIZE) && defined(CONFIG_XIP_ROM_BASE)
+
 #if defined(CONFIG_TINY_BOOTBLOCK) && CONFIG_TINY_BOOTBLOCK
 #define REAL_XIP_ROM_BASE AUTO_XIP_ROM_BASE
 #else
 #define REAL_XIP_ROM_BASE CONFIG_XIP_ROM_BASE
 #endif
+
 	/* enable write base caching so we can do execute in place
 	 * on the flash rom.
 	 */