Files
2026-07-30 11:19:44 +05:30

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 */