diff options
author | Eric Biederman <ebiederm@xmission.com> | 2003-06-17 08:42:17 +0000 |
---|---|---|
committer | Eric Biederman <ebiederm@xmission.com> | 2003-06-17 08:42:17 +0000 |
commit | 8d9c123812492a80a43112c8dd217fcfb3cee2c5 (patch) | |
tree | 0bc841279e289f958d85cc8f2873b42770ecbce1 /src/ram/ramtest.c | |
parent | f96a810f11681ba436b446e9451e02cffcd525f5 (diff) |
- Minor mod to reset16.inc to work with newer binutils hopefully this works with older ones...
- Update apic.h to include the APIC_TASK_PRI register definition
- Update mptable.c to have a reasonable board OEM and productid
- Additional testfiles for romcc.
- Split out auto.c and early failover.c moving their generic bits elsewere
- Enable cache of the rom
- Fixes to amd8111_lpc.c so that we successfully setup virtual wire mode on the ioapic
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@880 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/ram/ramtest.c')
-rw-r--r-- | src/ram/ramtest.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/ram/ramtest.c b/src/ram/ramtest.c index 55c22e7084..068d3bd705 100644 --- a/src/ram/ramtest.c +++ b/src/ram/ramtest.c @@ -1,8 +1,24 @@ +#if defined(i786) +#define HAVE_MOVNTI 1 +#endif +#if defined(k8) +#define HAVE_MOVNTI 1 +#endif + static void write_phys(unsigned long addr, unsigned long value) { +#if HAVE_MOVNTI + asm volatile( + "movnti %1, (%0)" + : /* outputs */ + : "r" (addr), "r" (value) /* inputs */ + : /* clobbers */ + ); +#else volatile unsigned long *ptr; ptr = (void *)addr; *ptr = value; +#endif } static unsigned long read_phys(unsigned long addr) @@ -12,7 +28,7 @@ static unsigned long read_phys(unsigned long addr) return *ptr; } -void ram_fill(unsigned long start, unsigned long stop) +static void ram_fill(unsigned long start, unsigned long stop) { unsigned long addr; /* @@ -25,7 +41,7 @@ void ram_fill(unsigned long start, unsigned long stop) print_debug("\r\n"); for(addr = start; addr < stop ; addr += 4) { /* Display address being filled */ - if ((addr & 0xffff) == 0) { + if (!(addr & 0xffff)) { print_debug_hex32(addr); print_debug("\r"); } @@ -36,7 +52,7 @@ void ram_fill(unsigned long start, unsigned long stop) print_debug("\r\nDRAM filled\r\n"); } -void ram_verify(unsigned long start, unsigned long stop) +static void ram_verify(unsigned long start, unsigned long stop) { unsigned long addr; /* @@ -50,7 +66,7 @@ void ram_verify(unsigned long start, unsigned long stop) for(addr = start; addr < stop ; addr += 4) { unsigned long value; /* Display address being tested */ - if ((addr & 0xffff) == 0) { + if (!(addr & 0xffff)) { print_debug_hex32(addr); print_debug("\r"); } @@ -69,7 +85,7 @@ void ram_verify(unsigned long start, unsigned long stop) } -void ramcheck(unsigned long start, unsigned long stop) +void ram_check(unsigned long start, unsigned long stop) { int result; /* |