HAVE_MOVNTI really means SSE2. Also add sfence in the MOVNTI case.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Patrick Georgi <patrick.georgi@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5159 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
3a54ac9c36
commit
a7acc515bd
|
@ -184,10 +184,6 @@ config HAVE_MAINBOARD_RESOURCES
|
|||
bool
|
||||
default n
|
||||
|
||||
config HAVE_MOVNTI
|
||||
bool
|
||||
default n
|
||||
|
||||
config HAVE_OPTION_TABLE
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -32,14 +32,26 @@ config SMP
|
|||
This option is used to enable certain functions to make coreboot
|
||||
work correctly on symmetric multi processor (SMP) systems.
|
||||
|
||||
# Set MMX and SSE in socket or model if the CPU has them.
|
||||
# If all CPUs for the socket have MMX or SSE, set them there.
|
||||
# These options are only needed for boards compiled with romcc.
|
||||
config MMX
|
||||
bool
|
||||
help
|
||||
Select MMX in your socket or model Kconfig if your CPU has MMX
|
||||
streaming SIMD instructions. ROMCC can build more efficient
|
||||
code if it can spill to MMX registers.
|
||||
|
||||
config SSE
|
||||
bool
|
||||
help
|
||||
Select SSE in your socket or model Kconfig if your CPU has SSE
|
||||
streaming SIMD instructions. ROMCC can build more efficient
|
||||
code if it can spill to SSE (aka XMM) registers.
|
||||
|
||||
config SSE2
|
||||
bool
|
||||
help
|
||||
Select SSE2 in your socket or model Kconfig if your CPU has SSE2
|
||||
streaming SIMD instructions. Some parts of coreboot can be built
|
||||
with more efficient code if SSE2 instructions are available.
|
||||
|
||||
config VAR_MTRR_HOLE
|
||||
bool
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
config CPU_AMD_MODEL_10XXX
|
||||
bool
|
||||
select HAVE_MOVNTI
|
||||
select USE_PRINTK_IN_CAR
|
||||
select USE_DCACHE_RAM
|
||||
select SSE
|
||||
select SSE2
|
||||
select HAVE_INIT_TIMER
|
||||
|
||||
config CPU_ADDR_BITS
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
config CPU_AMD_MODEL_FXX
|
||||
bool
|
||||
select HAVE_MOVNTI
|
||||
select USE_PRINTK_IN_CAR
|
||||
select USE_DCACHE_RAM
|
||||
select MMX
|
||||
select SSE
|
||||
select SSE2
|
||||
select HAVE_INIT_TIMER
|
||||
|
||||
config CPU_ADDR_BITS
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config CPU_INTEL_CORE2
|
||||
bool
|
||||
select SMP
|
||||
select HAVE_MOVNTI
|
||||
select SSE2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config CPU_INTEL_ATOM_230
|
||||
bool
|
||||
select SMP
|
||||
select HAVE_MOVNTI
|
||||
select SSE2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config CPU_INTEL_CORE
|
||||
bool
|
||||
select SMP
|
||||
select HAVE_MOVNTI
|
||||
select SSE2
|
||||
|
|
|
@ -1 +1,4 @@
|
|||
# select HAVE_MOVNTI
|
||||
config CPU_INTEL_CORE2
|
||||
bool
|
||||
select SMP
|
||||
select SSE2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config CPU_INTEL_MODEL_F0X
|
||||
bool
|
||||
select SMP
|
||||
select HAVE_MOVNTI
|
||||
select SSE2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config CPU_INTEL_MODEL_F1X
|
||||
bool
|
||||
select SMP
|
||||
select HAVE_MOVNTI
|
||||
select SSE2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config CPU_INTEL_MODEL_F2X
|
||||
bool
|
||||
select SMP
|
||||
select HAVE_MOVNTI
|
||||
select SSE2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config CPU_INTEL_MODEL_F3X
|
||||
bool
|
||||
select SMP
|
||||
select HAVE_MOVNTI
|
||||
select SSE2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config CPU_INTEL_MODEL_F4X
|
||||
bool
|
||||
select SMP
|
||||
select HAVE_MOVNTI
|
||||
select SSE2
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
config CPU_VIA_C7
|
||||
bool
|
||||
select UDELAY_TSC
|
||||
select SSE2
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
static void write_phys(unsigned long addr, unsigned long value)
|
||||
{
|
||||
#if CONFIG_HAVE_MOVNTI
|
||||
// Assembler in lib/ is very ugly. But we properly guarded
|
||||
// it so let's obey this one for now
|
||||
#if CONFIG_SSE2
|
||||
asm volatile(
|
||||
"movnti %1, (%0)"
|
||||
: /* outputs */
|
||||
|
@ -50,6 +52,10 @@ static void ram_fill(unsigned long start, unsigned long stop)
|
|||
}
|
||||
write_phys(addr, addr);
|
||||
};
|
||||
#if CONFIG_SSE2
|
||||
// Needed for movnti
|
||||
asm volatile ("sfence" ::: "memory");
|
||||
#endif
|
||||
/* Display final address */
|
||||
#if CONFIG_USE_PRINTK_IN_CAR
|
||||
printk_debug("%08lx\r\nDRAM filled\r\n", addr);
|
||||
|
|
Loading…
Reference in New Issue