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:
Stefan Reinauer
2010-02-25 13:40:49 +00:00
committed by Stefan Reinauer
parent 3a54ac9c36
commit a7acc515bd
15 changed files with 38 additions and 19 deletions

View File

@@ -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);