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 <r.marek@assembler.cz> Reviewed-on: http://review.coreboot.org/358 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
This commit is contained in:
parent
af3dce981d
commit
9438da370f
|
@ -290,7 +290,7 @@ clear_fixed_var_mtrr_out:
|
||||||
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
||||||
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
|
* 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
|
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax
|
||||||
orl $MTRR_TYPE_WRBACK, %eax
|
orl $MTRR_TYPE_WRBACK, %eax
|
||||||
wrmsr
|
wrmsr
|
||||||
|
|
|
@ -241,7 +241,7 @@ clear_fixed_var_mtrr_out:
|
||||||
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
||||||
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
|
* 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
|
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax
|
||||||
orl $MTRR_TYPE_WRBACK, %eax
|
orl $MTRR_TYPE_WRBACK, %eax
|
||||||
wrmsr
|
wrmsr
|
||||||
|
|
|
@ -106,7 +106,7 @@ clear_mtrrs:
|
||||||
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
||||||
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
|
* 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
|
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax
|
||||||
orl $MTRR_TYPE_WRBACK, %eax
|
orl $MTRR_TYPE_WRBACK, %eax
|
||||||
wrmsr
|
wrmsr
|
||||||
|
|
|
@ -106,7 +106,7 @@ clear_mtrrs:
|
||||||
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
||||||
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
|
* 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
|
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax
|
||||||
orl $MTRR_TYPE_WRBACK, %eax
|
orl $MTRR_TYPE_WRBACK, %eax
|
||||||
wrmsr
|
wrmsr
|
||||||
|
|
|
@ -113,7 +113,7 @@ clear_mtrrs:
|
||||||
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
||||||
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
|
* 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
|
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax
|
||||||
orl $MTRR_TYPE_WRBACK, %eax
|
orl $MTRR_TYPE_WRBACK, %eax
|
||||||
wrmsr
|
wrmsr
|
||||||
|
|
|
@ -120,7 +120,7 @@ clear_fixed_var_mtrr_out:
|
||||||
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
||||||
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
|
* 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
|
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax
|
||||||
orl $MTRR_TYPE_WRBACK, %eax
|
orl $MTRR_TYPE_WRBACK, %eax
|
||||||
wrmsr
|
wrmsr
|
||||||
|
@ -166,7 +166,7 @@ clear_fixed_var_mtrr_out:
|
||||||
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
||||||
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
|
* 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
|
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %ei
|
||||||
movl %esi, %edi
|
movl %esi, %edi
|
||||||
movl $(CONFIG_XIP_ROM_SIZE >> 2), %ecx
|
movl $(CONFIG_XIP_ROM_SIZE >> 2), %ecx
|
||||||
|
@ -247,7 +247,7 @@ testok:
|
||||||
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
* IMPORTANT: The following calculation _must_ be done at runtime. See
|
||||||
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
|
* 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
|
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax
|
||||||
orl $MTRR_TYPE_WRBACK, %eax
|
orl $MTRR_TYPE_WRBACK, %eax
|
||||||
wrmsr
|
wrmsr
|
||||||
|
|
Loading…
Reference in New Issue