From 9438da370fb66292babf5a2f621a67fd4b3699de Mon Sep 17 00:00:00 2001 From: Rudolf Marek Date: Sun, 30 Oct 2011 18:06:58 +0100 Subject: Fix slow CAR execution introduced by 7c7d87182feb78cb2bc02fb3558bef56a41682c9 It is meant to be a address and not a dereference. Otherwise MTRR is filled with code and not with the address. This is what I hate at most on the AT&T syntax. Instead of taking the address, it was a dereference. Not greatly visible, except I wondered why opcode is not 0xb4 but 0xa1 and it took another half an our to see it. Change-Id: I6b339656024de8f6e6b3cde63b16b7ff5562d055 Signed-off-by: Rudolf Marek Reviewed-on: http://review.coreboot.org/358 Reviewed-by: Stefan Reinauer Tested-by: build bot (Jenkins) --- src/cpu/amd/car/cache_as_ram.inc | 2 +- src/cpu/intel/car/cache_as_ram.inc | 2 +- src/cpu/intel/model_106cx/cache_as_ram.inc | 2 +- src/cpu/intel/model_6ex/cache_as_ram.inc | 2 +- src/cpu/intel/model_6fx/cache_as_ram.inc | 2 +- src/cpu/via/car/cache_as_ram.inc | 6 +++--- 6 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/cpu') diff --git a/src/cpu/amd/car/cache_as_ram.inc b/src/cpu/amd/car/cache_as_ram.inc index 9d2b400f49..b9e02f3b8f 100644 --- a/src/cpu/amd/car/cache_as_ram.inc +++ b/src/cpu/amd/car/cache_as_ram.inc @@ -290,7 +290,7 @@ clear_fixed_var_mtrr_out: * IMPORTANT: The following calculation _must_ be done at runtime. See * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html */ - movl copy_and_run, %eax + movl $copy_and_run, %eax andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax orl $MTRR_TYPE_WRBACK, %eax wrmsr diff --git a/src/cpu/intel/car/cache_as_ram.inc b/src/cpu/intel/car/cache_as_ram.inc index 4ad2fce071..26fec6e594 100644 --- a/src/cpu/intel/car/cache_as_ram.inc +++ b/src/cpu/intel/car/cache_as_ram.inc @@ -241,7 +241,7 @@ clear_fixed_var_mtrr_out: * IMPORTANT: The following calculation _must_ be done at runtime. See * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html */ - movl copy_and_run, %eax + movl $copy_and_run, %eax andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax orl $MTRR_TYPE_WRBACK, %eax wrmsr diff --git a/src/cpu/intel/model_106cx/cache_as_ram.inc b/src/cpu/intel/model_106cx/cache_as_ram.inc index b45599ac1b..9f7ceaf247 100644 --- a/src/cpu/intel/model_106cx/cache_as_ram.inc +++ b/src/cpu/intel/model_106cx/cache_as_ram.inc @@ -106,7 +106,7 @@ clear_mtrrs: * IMPORTANT: The following calculation _must_ be done at runtime. See * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html */ - movl copy_and_run, %eax + movl $copy_and_run, %eax andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax orl $MTRR_TYPE_WRBACK, %eax wrmsr diff --git a/src/cpu/intel/model_6ex/cache_as_ram.inc b/src/cpu/intel/model_6ex/cache_as_ram.inc index fa35fc9994..3a12cf6dd3 100644 --- a/src/cpu/intel/model_6ex/cache_as_ram.inc +++ b/src/cpu/intel/model_6ex/cache_as_ram.inc @@ -106,7 +106,7 @@ clear_mtrrs: * IMPORTANT: The following calculation _must_ be done at runtime. See * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html */ - movl copy_and_run, %eax + movl $copy_and_run, %eax andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax orl $MTRR_TYPE_WRBACK, %eax wrmsr diff --git a/src/cpu/intel/model_6fx/cache_as_ram.inc b/src/cpu/intel/model_6fx/cache_as_ram.inc index a8690112c8..2ba187271e 100644 --- a/src/cpu/intel/model_6fx/cache_as_ram.inc +++ b/src/cpu/intel/model_6fx/cache_as_ram.inc @@ -113,7 +113,7 @@ clear_mtrrs: * IMPORTANT: The following calculation _must_ be done at runtime. See * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html */ - movl copy_and_run, %eax + movl $copy_and_run, %eax andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax orl $MTRR_TYPE_WRBACK, %eax wrmsr diff --git a/src/cpu/via/car/cache_as_ram.inc b/src/cpu/via/car/cache_as_ram.inc index d0c43c96c0..ad2805ea2a 100644 --- a/src/cpu/via/car/cache_as_ram.inc +++ b/src/cpu/via/car/cache_as_ram.inc @@ -120,7 +120,7 @@ clear_fixed_var_mtrr_out: * IMPORTANT: The following calculation _must_ be done at runtime. See * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html */ - movl copy_and_run, %eax + movl $copy_and_run, %eax andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax orl $MTRR_TYPE_WRBACK, %eax wrmsr @@ -166,7 +166,7 @@ clear_fixed_var_mtrr_out: * IMPORTANT: The following calculation _must_ be done at runtime. See * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html */ - movl copy_and_run, %esi + movl $copy_and_run, %esi andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %ei movl %esi, %edi movl $(CONFIG_XIP_ROM_SIZE >> 2), %ecx @@ -247,7 +247,7 @@ testok: * IMPORTANT: The following calculation _must_ be done at runtime. See * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html */ - movl copy_and_run, %eax + movl $copy_and_run, %eax andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax orl $MTRR_TYPE_WRBACK, %eax wrmsr -- cgit v1.2.3