From: Stefan E. <se...@us...> - 2001-10-01 12:40:21
|
Update of /cvsroot/blob/blob/src In directory usw-pr-cvs1:/tmp/cvs-serv29418 Modified Files: chkmem.c Log Message: - changed SHOWADR() and SHOWRUN() to real functions Index: chkmem.c =================================================================== RCS file: /cvsroot/blob/blob/src/chkmem.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- chkmem.c 2001/10/01 11:28:16 1.3 +++ chkmem.c 2001/10/01 12:40:18 1.4 @@ -67,16 +67,6 @@ #define CHKMEM_ERR (-1) #define CHKMEM_OK (0) -#define SHOWADR( ADR ) if ( ((u32)ADR) % showevery == 0 ) { \ - SerialOutputString("\r"); \ - SerialOutputHex(((u32)ADR)); \ - } - -#define SHOWRUN( RUN ) { SerialOutputString("\r\nrun "); \ - SerialOutputHex(((u32)RUN)); \ - SerialOutputString("\n"); \ - } - #if CHKMEM_DEBUG # define SHOWFUNC() SerialOutputString("chkmem: method: "__FUNCTION__ "\n" ); \ SerialOutputString(" p1=0x"); \ @@ -122,6 +112,9 @@ static int ChkMemAdrTst( u32 start, u32 end, u32 pattern, u32 *badadr ); static int ChkMemHardcore( u32 start, u32 end, u32 pattern, u32 *badadr ); +static void showrun( u32 run ); +static void showadr( volatile u32 *adr ); + /* Charles Cazabon test methods */ static int test_or_comparison (u32 *bp1, u32 *bp2, u32 count); static int test_and_comparison (u32 *bp1, u32 *bp2, u32 count); @@ -147,7 +140,7 @@ * Command entry, memory test method dispatcher * */ -static int ChkMem( int argc, char *argv[] ) +int ChkMem( int argc, char *argv[] ) { memtestfunc_t method; int area; @@ -190,7 +183,6 @@ } } - /* FIXME: should check if showevery is a sane value! */ SerialOutputString(argv[0]); SerialOutputString(": display every 0x"); SerialOutputHex(showevery); @@ -251,7 +243,7 @@ * Poke values to memory * */ -static int Poke( int argc, char *argv[] ) +int Poke( int argc, char *argv[] ) { u32 address; u32 value; @@ -296,7 +288,7 @@ * Poke values to memory * */ -static int Peek( int argc, char *argv[] ) +int Peek( int argc, char *argv[] ) { u32 address; u32 value; @@ -333,6 +325,44 @@ /*********************************************************************/ /********************************************************************* + * showrun + * + * AUTOR: SELETZ + * REVISED: + * + * Shows current memory test run + * + */ +static void showrun( u32 run ) +{ + SerialOutputString( "\r\nrun " ); + SerialOutputHex( run ); + SerialOutputString( "\n" ); +} + + +/********************************************************************* + * showadr + * + * AUTOR: SELETZ + * REVISED: + * + * display <adr> every <showevery> bytes. + * + */ +static void showadr( volatile u32 *adr ) +{ + if ( ((u32)adr) % showevery == 0 ) { + SerialOutputString("\r"); + SerialOutputHex( (u32)adr ); + } + +} + + + + +/********************************************************************* * ChkMemErr * * AUTOR: Stefan Eletzhofer @@ -419,7 +449,7 @@ /* bottom-up test */ p=start; while ( p<end ) { - SHOWADR( p ); + showadr( (u32*)p ); tst = MEM( p ); if ( tst != pattern ) { goto DONE; @@ -439,7 +469,7 @@ /* top-down test */ p=end-4; while ( p>=start ) { - SHOWADR( p ); + showadr( (u32*)p ); tst = MEM( p ); if ( tst != pattern ) { goto DONE; @@ -509,7 +539,7 @@ /* bottom-up test */ p=start; while ( p<end ) { - SHOWADR( p ); + showadr( (u32*)p ); tst = MEM( p ); if ( tst != p ) { goto DONE; @@ -644,7 +674,7 @@ for (i = 0; i < count; i++) { - SHOWADR( p2 ); + showadr( p2 ); MEM( p1++ ) |= q; barrier(); MEM( p2++ ) |= q; @@ -666,7 +696,7 @@ for (i = 0; i < count; i++) { - SHOWADR( p1 ); + showadr( p1 ); MEM( p1++ ) &= q; barrier(); MEM( p2++ ) &= q; @@ -688,7 +718,7 @@ for (i = 0; i < count; i++) { - SHOWADR( p1 ); + showadr( p1 ); MEM( p1++ ) = MEM( p2++ ) = (i + q); barrier(); } @@ -708,14 +738,14 @@ for (j = 0; j < 64; j++) { - SHOWRUN( j ); + showrun( j ); q = (j % 2) == 0 ? 0xFFFFFFFF : 0x00000000; p1 = (volatile u32 *) bp1; p2 = (volatile u32 *) bp2; for (i = 0; i < count; i++) { - SHOWADR( p1 ); + showadr( p1 ); MEM( p1++ ) = MEM( p2++ ) = (i % 2) == 0 ? q : ~q; barrier(); } @@ -741,13 +771,13 @@ for (j = 0; j < 64; j++) { - SHOWRUN( j ); + showrun( j ); q = (j % 2) == 0 ? 0x55555555 : 0xAAAAAAAA; p1 = (volatile u32 *) bp1; p2 = (volatile u32 *) bp2; for (i = 0; i < count; i++) { - SHOWADR( p1 ); + showadr( p1 ); MEM( p1++ ) = MEM( p2++ ) = (i % 2) == 0 ? q : ~q; barrier(); } @@ -773,12 +803,12 @@ for (j = 0; j < 256; j++) { - SHOWRUN( j ); + showrun( j ); p1 = (volatile u32 *) bp1; p2 = (volatile u32 *) bp2; for (i = 0; i < count; i++) { - SHOWADR( p1 ); + showadr( p1 ); MEM( p1++ ) = MEM( p2++ ) = MAKE32FROM8 (j); barrier(); } @@ -804,14 +834,14 @@ for (j = 0; j < 64; j++) { - SHOWRUN( j ); + showrun( j ); p1 = (volatile u32 *) bp1; p2 = (volatile u32 *) bp2; for (i = 0; i < count; i++) { if (j < 32) /* Walk it up. */ { - SHOWADR( p1 ); + showadr( p1 ); MEM( p1++ ) = MEM( p2++ ) = (m == 0) ? 0x00000001 << j : 0xFFFFFFFF ^ (0x00000001 << j); barrier(); @@ -845,12 +875,12 @@ for (j = 0; j < 64; j++) { - SHOWRUN( j ); + showrun( j ); p1 = (volatile u32 *) bp1; p2 = (volatile u32 *) bp2; for (i = 0; i < count; i++) { - SHOWADR( p1 ); + showadr( p1 ); if (j < 32) /* Walk it up. */ { MEM( p1++ ) = MEM( p2++ ) = (i % 2 == 0) @@ -890,7 +920,7 @@ for (k = 0; k < 32; k++) { - SHOWRUN( k*8 ); + showrun( k*8 ); q = 0x00000001 << k; for (j = 0; j < 8; j++) @@ -900,7 +930,7 @@ p2 = (volatile u32 *) bp2; for (i = 0; i < count; i++) { - SHOWADR( p1 ); + showadr( p1 ); MEM( p1++ ) = MEM( p2++ ) = (i % 2) == 0 ? q : ~q; barrier(); } @@ -929,18 +959,18 @@ count <<= 1; for (j = 0; j < 16; j++) { - SHOWRUN( j ); + showrun( j ); p1 = (volatile u32 *) bp1; for (i = 0; i < count; i++) { - SHOWADR( p1 ); + showadr( p1 ); MEM( p1++ ) = ((j + i) % 2) == 0 ? (u32) p1 : ~((u32) p1); barrier(); } p1 = (volatile u32 *) bp1; for (i = 0; i < count; i++, p1++) { - SHOWADR( p1 ); + showadr( p1 ); if (*p1 != (((j + i) % 2) == 0 ? (u32) p1 : ~((u32) p1))) { return (CHKMEM_ERR); |