forked from pool/memtest86_
This commit is contained in:
parent
ae509c5ff8
commit
02eed58132
@ -1,39 +0,0 @@
|
|||||||
Declare functions static not extern they are only used inside this file
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
io.h | 6 +++---
|
|
||||||
test.c | 51 ++++++++++++++++++++++++++++++---------------------
|
|
||||||
2 files changed, 33 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
Index: memtest86+-4.00/io.h
|
|
||||||
===================================================================
|
|
||||||
--- memtest86+-4.00.orig/io.h
|
|
||||||
+++ memtest86+-4.00/io.h
|
|
||||||
@@ -31,7 +31,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define __OUT1(s,x) \
|
|
||||||
-extern inline void __out##s(unsigned x value, unsigned short port) {
|
|
||||||
+static inline void __out##s(unsigned x value, unsigned short port) {
|
|
||||||
|
|
||||||
#define __OUT2(s,s1,s2) \
|
|
||||||
__asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1"
|
|
||||||
@@ -43,7 +43,7 @@ __OUT1(s##_p,x) __OUT2(s,s1,"w") : : "a"
|
|
||||||
__OUT1(s##c_p,x) __OUT2(s,s1,"") : : "a" (value), "id" (port)); SLOW_DOWN_IO; }
|
|
||||||
|
|
||||||
#define __IN1(s) \
|
|
||||||
-extern inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v;
|
|
||||||
+static inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v;
|
|
||||||
|
|
||||||
#define __IN2(s,s1,s2) \
|
|
||||||
__asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0"
|
|
||||||
@@ -55,7 +55,7 @@ __IN1(s##_p) __IN2(s,s1,"w") : "=a" (_v)
|
|
||||||
__IN1(s##c_p) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); SLOW_DOWN_IO; return _v; }
|
|
||||||
|
|
||||||
#define __OUTS(s) \
|
|
||||||
-extern inline void outs##s(unsigned short port, const void * addr, unsigned long count) \
|
|
||||||
+static inline void outs##s(unsigned short port, const void * addr, unsigned long count) \
|
|
||||||
{ __asm__ __volatile__ ("cld ; rep ; outs" #s \
|
|
||||||
: "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); }
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
diff -ur memtest86+-1.70.orig/memtest_shared.lds memtest86+-1.70/memtest_shared.lds
|
|
||||||
--- memtest86+-1.70.orig/memtest_shared.lds 2006-12-27 02:33:06.000000000 +0100
|
|
||||||
+++ memtest86+-1.70/memtest_shared.lds 2007-01-25 16:34:19.000000000 +0100
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
_start = .;
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
+ *(.gnu.linkonce.t.*)
|
|
||||||
*(.plt)
|
|
||||||
_etext = . ;
|
|
||||||
} = 0x9090
|
|
@ -1,3 +1,12 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 30 09:59:35 UTC 2010 - trenn@novell.com
|
||||||
|
|
||||||
|
- Remove old patches. Asked for inclusion, but not needed anymore:
|
||||||
|
Patch 1/3 : No need to include.
|
||||||
|
Patch 2/3 : Patch for Mt86+ 2.01. Will broke 4.10. Bug already patched in a
|
||||||
|
cleaner way
|
||||||
|
Patch 3/3 : Really no need. It's only a different way to add some comments.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Aug 27 15:41:16 UTC 2010 - trenn@novell.com
|
Fri Aug 27 15:41:16 UTC 2010 - trenn@novell.com
|
||||||
|
|
||||||
|
@ -38,11 +38,6 @@ Url: http://www.memtest.org
|
|||||||
Source: http://www.memtest.org/download/%{version}/%{name}-%{version}.tar.bz2
|
Source: http://www.memtest.org/download/%{version}/%{name}-%{version}.tar.bz2
|
||||||
Patch0: fix-destdir
|
Patch0: fix-destdir
|
||||||
Patch1: serial-enable
|
Patch1: serial-enable
|
||||||
Patch2: include-linkonce
|
|
||||||
Patch3: declare-static.diff
|
|
||||||
Patch4: use_assembler_routine.patch
|
|
||||||
Patch5: work-around-4G-virtual-overflow
|
|
||||||
#
|
|
||||||
Summary: Memory Testing Image for x86 Architecture
|
Summary: Memory Testing Image for x86 Architecture
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -68,10 +63,6 @@ Authors:
|
|||||||
%setup
|
%setup
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
%patch5 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
|
@ -1,104 +0,0 @@
|
|||||||
Use assember code, don't execute the functions twice
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Index: memtest86+-4.00/test.c
|
|
||||||
===================================================================
|
|
||||||
--- memtest86+-4.00.orig/test.c
|
|
||||||
+++ memtest86+-4.00/test.c
|
|
||||||
@@ -444,17 +444,19 @@ void movinv1(int iter, ulong p1, ulong p
|
|
||||||
if ((uintptr_t)p == (uintptr_t)pe) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
-/* Original C code replaced with hand tuned assembly code
|
|
||||||
- * for (; p < pe; p++) {
|
|
||||||
- * *p = p1;
|
|
||||||
- * }
|
|
||||||
- */
|
|
||||||
+/* Original C code replaced with hand tuned assembly code */
|
|
||||||
+#if 0
|
|
||||||
+ for (; p < pe; p++) {
|
|
||||||
+ *p = p1;
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
asm __volatile__ (
|
|
||||||
"rep\n\t" \
|
|
||||||
"stosl\n\t"
|
|
||||||
: "=D" (p)
|
|
||||||
: "c" (len), "0" (p), "a" (p1)
|
|
||||||
);
|
|
||||||
+#endif
|
|
||||||
do_tick();
|
|
||||||
BAILR
|
|
||||||
} while (!done);
|
|
||||||
@@ -484,14 +486,16 @@ void movinv1(int iter, ulong p1, ulong p
|
|
||||||
if ((uintptr_t)p == (uintptr_t)pe) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
-/* Original C code replaced with hand tuned assembly code
|
|
||||||
- * for (; p < pe; p++) {
|
|
||||||
- * if ((bad=*p) != p1) {
|
|
||||||
- * error((ulong*)p, p1, bad);
|
|
||||||
- * }
|
|
||||||
- * *p = p2;
|
|
||||||
- * }
|
|
||||||
- */
|
|
||||||
+/* Original C code replaced with hand tuned assembly code */
|
|
||||||
+#if 0
|
|
||||||
+ for (; p < pe; p++) {
|
|
||||||
+ ulong bad;
|
|
||||||
+ if ((bad=*p) != p1) {
|
|
||||||
+ error((ulong*)p, p1, bad);
|
|
||||||
+ }
|
|
||||||
+ *p = p2;
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
asm __volatile__ (
|
|
||||||
"jmp L2\n\t" \
|
|
||||||
|
|
||||||
@@ -526,10 +530,12 @@ void movinv1(int iter, ulong p1, ulong p
|
|
||||||
: "a" (p1), "0" (p), "d" (pe), "b" (p2)
|
|
||||||
: "ecx"
|
|
||||||
);
|
|
||||||
+#endif
|
|
||||||
do_tick();
|
|
||||||
BAILR
|
|
||||||
} while (!done);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
for (j=segs-1; j>=0; j--) {
|
|
||||||
start = v->map[j].start;
|
|
||||||
end = v->map[j].end;
|
|
||||||
@@ -550,14 +556,16 @@ void movinv1(int iter, ulong p1, ulong p
|
|
||||||
if ((uintptr_t)p == (uintptr_t)pe) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
-/* Original C code replaced with hand tuned assembly code
|
|
||||||
- * do {
|
|
||||||
- * if ((bad=*p) != p2) {
|
|
||||||
- * error((ulong*)p, p2, bad);
|
|
||||||
- * }
|
|
||||||
- * *p = p1;
|
|
||||||
- * } while (p-- > pe);
|
|
||||||
- */
|
|
||||||
+/* Original C code replaced with hand tuned assembly code */
|
|
||||||
+#if 0
|
|
||||||
+ do {
|
|
||||||
+ ulong bad;
|
|
||||||
+ if ((bad=*p) != p2) {
|
|
||||||
+ error((ulong*)p, p2, bad);
|
|
||||||
+ }
|
|
||||||
+ *p = p1;
|
|
||||||
+ } while (p-- > pe);
|
|
||||||
+#else
|
|
||||||
asm __volatile__ (
|
|
||||||
"addl $4, %%edi\n\t"
|
|
||||||
"jmp L9\n\t"
|
|
||||||
@@ -594,6 +602,7 @@ void movinv1(int iter, ulong p1, ulong p
|
|
||||||
: "a" (p1), "0" (p), "d" (pe), "b" (p2)
|
|
||||||
: "ecx"
|
|
||||||
);
|
|
||||||
+#endif
|
|
||||||
do_tick();
|
|
||||||
BAILR
|
|
||||||
} while (!done);
|
|
@ -1,42 +0,0 @@
|
|||||||
--- memtest86+-2.01/init.c.orig 2008-11-26 13:28:22.000000000 +0100
|
|
||||||
+++ memtest86+-2.01/init.c 2008-11-28 16:06:50.000000000 +0100
|
|
||||||
@@ -238,7 +238,7 @@
|
|
||||||
unsigned long addr_hi;
|
|
||||||
};
|
|
||||||
extern unsigned char pdp[];
|
|
||||||
- extern struct pde pd2[];
|
|
||||||
+ extern struct pde pd1[];
|
|
||||||
unsigned long window = page >> 19;
|
|
||||||
if (FLAT || (window == mapped_window)) {
|
|
||||||
return 0;
|
|
||||||
@@ -266,11 +266,11 @@
|
|
||||||
* Bit 6 = Dirty. 1 = memory has been written to.
|
|
||||||
* Bit 7 = Page Size. 1 = page size is 2 MBytes
|
|
||||||
* --------------------------------------------------*/
|
|
||||||
- pd2[i].addr_lo = ((window & 1) << 31) + ((i & 0x3ff) << 21) + 0xE3;
|
|
||||||
- pd2[i].addr_hi = (window >> 1);
|
|
||||||
+ pd1[i].addr_lo = ((window & 1) << 31) + ((i & 0x3ff) << 21) + 0xE3;
|
|
||||||
+ pd1[i].addr_hi = (window >> 1);
|
|
||||||
}
|
|
||||||
paging_off();
|
|
||||||
- if (window > 1) {
|
|
||||||
+ if (window > 0) {
|
|
||||||
paging_on(pdp);
|
|
||||||
}
|
|
||||||
mapped_window = window;
|
|
||||||
@@ -281,13 +281,13 @@
|
|
||||||
{
|
|
||||||
void *result;
|
|
||||||
if (FLAT || (page_addr < 0x80000)) {
|
|
||||||
- /* If the address is less that 1GB directly use the address */
|
|
||||||
+ /* If the address is less than 2GB directly use the address */
|
|
||||||
result = (void *)(page_addr << 12);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
unsigned long alias;
|
|
||||||
alias = page_addr & 0x7FFFF;
|
|
||||||
- alias += 0x80000;
|
|
||||||
+ alias += 0x40000;
|
|
||||||
result = (void *)(alias << 12);
|
|
||||||
}
|
|
||||||
return result;
|
|
Loading…
x
Reference in New Issue
Block a user