106 lines
2.4 KiB
C
106 lines
2.4 KiB
C
/* palMipsLib.h - PAL sundry definitions for MIPS */
|
|
|
|
/*
|
|
* Copyright 2004,2006,2009 Wind River Systems, Inc.
|
|
*
|
|
* The right to copy, distribute, modify or otherwise make use
|
|
* of this software may be licensed only pursuant to the terms
|
|
* of an applicable Wind River license agreement.
|
|
*/
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01f,02apr09,pch add mmuType, hasCP2, hasWatch, & hasFPU to palDesc
|
|
01e,19jan06,pes Change _mipsTlbSizeGet to mipsTlbSizeGet
|
|
01d,10jan06,pes Fix compiler warning.
|
|
01c,20sep04,pes Added prototype for palInit().
|
|
01b,16aug04,sru Added prototype for _mipsTlbSizeGet.
|
|
01a,26may04,agf Created.
|
|
*/
|
|
|
|
/*
|
|
DESCRIPTION:
|
|
|
|
This file contains the various strutures and macros required for the PAL
|
|
processor description for MIPS.
|
|
|
|
*/
|
|
|
|
#ifndef __INCpalMipsLibh
|
|
#define __INCpalMipsLibh
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
#ifndef _ASMLANGUAGE
|
|
|
|
/* typedefs */
|
|
|
|
typedef struct
|
|
{
|
|
VIRT_ADDR * vectorAddr; /* typically [T,X,C,E]_Vec */
|
|
VIRT_ADDR * excHandler; /* typically exc[Tlb,Xtlb,Cache,Norm]Vec */
|
|
UINT excSize; /* size of handler copied to vectorAddr */
|
|
} MIPS_EXC_VECTOR;
|
|
|
|
typedef struct
|
|
{
|
|
UINT nEntries; /* number of rows in the TLB hardware */
|
|
int supportedPageSizes;
|
|
int mmuCacheable;
|
|
int mmuUncacheable;
|
|
int mmuCacheCopyback;
|
|
int mmuCacheWritethrough;
|
|
int mmuCacheCoherency;
|
|
} MIPS_MMU_INFO;
|
|
|
|
typedef struct
|
|
{
|
|
BOOL present;
|
|
UINT lineSize; /* line size in bytes */
|
|
UINT ways; /* Number of ways */
|
|
UINT wayStep; /* Steps between ways */
|
|
UINT sets; /* Number of sets/way */
|
|
UINT modes; /* Supported modes */
|
|
} MIPS_CACHE_INFO;
|
|
|
|
typedef struct
|
|
{
|
|
char *version; /* PAL version string */
|
|
int coreNum; /* processor number */
|
|
MIPS_EXC_VECTOR tVec;
|
|
MIPS_EXC_VECTOR xVec;
|
|
MIPS_EXC_VECTOR cVec;
|
|
MIPS_EXC_VECTOR eVec;
|
|
MIPS_MMU_INFO tlb;
|
|
MIPS_CACHE_INFO iCache;
|
|
MIPS_CACHE_INFO dCache;
|
|
MIPS_CACHE_INFO l2Cache;
|
|
MIPS_CACHE_INFO l3Cache;
|
|
int mmuType; /* CR bits 9:7 */
|
|
BOOL hasCP2;
|
|
BOOL hasWatch;
|
|
BOOL hasFPU;
|
|
} MIPS_PAL_DESC;
|
|
|
|
/* externals */
|
|
|
|
IMPORT MIPS_PAL_DESC palDesc;
|
|
|
|
/* function declarations */
|
|
|
|
IMPORT UINT32 mipsTlbSizeGet (void);
|
|
IMPORT UINT32 _mipsConfigGet (void);
|
|
IMPORT void palInit (void);
|
|
|
|
#endif /* ifndef _ASMLANGUAGE */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCpalMipsLibh */
|