www.pudn.com > 4510b_dma.rar > memory.h


/********************************************************************/ 
/*                                                                  */ 
/*      Timer Header for KS32C50100                                 */ 
/*------------------------------------------------------------------*/ 
/*      Copyright (C) 1998 Samsung Electronics.                     */ 
/*------------------------------------------------------------------*/ 
/*                                                                  */ 
/*      Description : 1998-02-03 first edited                       */ 
/********************************************************************/ 
 
#ifndef _MEM_TEST_ 
#define _MEM_TEST_ 
 
#define MemTestOk	1 
#define MemTestFail	0 
 
// Memory Copy Address 
//#define MemTestSize     0x0010000 
#define MemCopySrc      0x1100000 
//#define MemCopyDest     0x1200000 
#define MemTestLoop     5           //default memory test counter 
#define TestPattern     0x5a5a5a5a 
 
#define HEAPEND 0x13EE7CC 
#define AllocNonCacheAreaBase 0x53EE7D0 
#define AllocNonCacheAreaEnd 0x53FE7CC 
 
// Define For External I/O Bank 
#define EXTIOBASE 	( (REFEXTCON & 0x3FF) << 16 ) 
 
// External I/O Bank 0 Control 
#define TCOS0	(0x111 << 0)  
#define TACS0	(0x110 << 3)  
#define TCOH0	(0x010 << 6)  
#define TACC0	(0x111 << 9)  
 
// External I/O Bank 1 Control 
#define TCOS1	(0x111 << 16)  
#define TACS1	(0x110 << 19)  
#define TCOH1	(0x010 << 22)  
#define TACC1	(0x111 << 25)  
 
// External I/O Bank 2 Control 
#define TCOS2	(0x111 << 0)  
#define TACS2	(0x110 << 3)  
#define TCOH2	(0x010 << 6)  
#define TACC2	(0x111 << 9)  
 
// External I/O Bank 3 Control 
#define TCOS3	(0x111 << 16)  
#define TACS3	(0x110 << 19)  
#define TCOH3	(0x010 << 22)  
#define TACC3	(0x111 << 25)  
 
extern void MemoryPartTest(void) ; 
/* 
 * Memory Test Select Function 
 */ 
 
 
extern void MemoryTest(void); 
/* 
 * DRAM Memory test top module. 
 * word,halfword,byte test will be made at this function. 
 * Memory source address is 0x1100000, destination address 
 * is 0x1200000. Test Pattern & test repeat times are changed 
 * above Define variable. 
 */ 
 
extern int MemTest(U32 * /*src*/,U32 * /*dest*/,int /*size*/,int /*repeat*/); 
/* 
 * Memory word, halfword, byte copy & compare test program 
 * source address is src, destination address is dest, test memory size size 
 * test repeat times is repeat. 
 */ 
 
extern void MemoryDump(void); 
/*  
 *  DRAM Memory dump test program. 
 *  Memory dump initial address is 0x1000000 
 *                  end address is 0x1000100 
 */ 
 
extern void MemDump(U32 * /*start address*/,U32 * /*End address*/); 
/* 
 * Memory dump function 
 */ 
 
extern void MemClear(U32 *startaddr, U32 *endaddr) ; 
/*  
 *  Memory Clear 
 *  ~~~~~~~~~~~~~~~~~~~ 
 */ 
 
extern void MemPatternFill(void) ; 
/*  
 *  Memory Pattern Fill 
 *  ~~~~~~~~~~~~~~~~~~~ 
 */ 
 
extern void MemPatternSearch(void) ; 
/*  
 *  Memory Pattern Search 
 *  ~~~~~~~~~~~~~~~~~~~~~ 
 */ 
 
extern void MemTestInit(U32 * /*src addr */,int /*size*/); 
/* 
 * Initialize memory with TestPattern from MemCopySrc address  
 * until reach to zero count value. 
 *  
 * Where initial test pattern is 0x5a5a5a5a 
 *       Source Address,MemCopySrc is 0x1100000 
 *       count is memory test size(0x0010000) 
 */ 
 
 
extern int ByteCopyTest(U32 * /*Dest*/,U32 * /*Src*/,int /*TestSize*/); 
/* 
 *  DRAM memory Copy & compare test program. 
 *  (Byte Test) 
 *  Copy memory area is from  MemCopySrc to MemCopyDest with  
 *  size of MemTestSize. 
 */ 
 
extern int SWordCopyTest(U32 * /*Dest*/,U32 * /*Src*/,int /*TestSize*/); 
/* 
 *  DRAM memory Copy & compare test program. 
 *  (Halfword Test) 
 */ 
 
extern int WordCopyTest(U32 * /*Dest*/,U32 * /*Src*/,int /*TestSize*/); 
/* 
 *  DRAM memory Copy & compare test program. 
 *  (Word Test) 
 */ 
 
 
extern void bcopy(void * /*dstp*/, void * /*srcp*/, int /*count*/) ; 
extern void scopy(void * /*dstp*/, void * /*srcp*/, int /*count*/); 
extern void wcopy(void * /*dstp*/, void * /*srcp*/, int /*count*/); 
/* 
 *  Function for byte copy from srcp to dstp with count times 
 *  (bcopy: Byte copy & compare, scopy: Halfword, wcopy: word) 
 * 
 *  Where dstp is destination address, 
 *        srcp is soruce address 
 *        count is memory test size 
 */ 
 
extern void ExtIOBankTest(void) ; 
/* 
 *  Function for External I/O Bank Test 
 */ 
 
 
 
extern int bcomp(void * /*dstp*/, void * /*srcp*/, int /*count*/) ; 
extern int scomp(void * /*dstp*/, void * /*srcp*/, int /*count*/) ; 
extern int wcomp(void * /*dstp*/, void * /*srcp*/, int /*count*/) ; 
/* 
 * Memory data compare test functions 
 */ 
 
extern int  PatternGen(unsigned int /*seed*/); 
extern void PrintMemTestStatus(int); 
 
 
// Allocation For NonCacheable Area 
extern void *nmalloc(unsigned nbyte) ; 
extern void nmfree(void *pt) ; 
 
// Allocation For Cacheable Area 
extern void *malloc(unsigned nbyte) ; 
extern void free(void *pt) ; 
 
#endif /* _MEM_TEST_ */