ev5.hh revision 2
1/* $Id$ */ 2 3#ifndef __EV5_H__ 4#define __EV5_H__ 5 6#ifndef SYSTEM_EV5 7#error This code is only valid for EV5 systems 8#endif 9 10#include "isa_traits.hh" 11 12void m5_exit(); 13 14//////////////////////////////////////////////////////////////////////// 15// 16// 17// 18 19//////////////////////////////////////////////////////////////////////// 20// 21// 22// 23 24#define MODE2MASK(X) (1 << (X)) 25 26// Alpha IPR register accessors 27#define PC_PAL(X) ((X) & 0x1) 28#define MCSR_SP(X) (((X) >> 1) & 0x3) 29 30#define ICSR_SDE(X) (((X) >> 30) & 0x1) 31#define ICSR_SPE(X) (((X) >> 28) & 0x3) 32#define ICSR_FPE(X) (((X) >> 26) & 0x1) 33 34#define ALT_MODE_AM(X) (((X) >> 3) & 0x3) 35 36#define DTB_CM_CM(X) (((X) >> 3) & 0x3) 37#define DTB_ASN_ASN(X) (((X) >> 57) & 0x7f) 38#define DTB_PTE_PPN(X) (((X) >> 32) & 0x07ffffff) 39#define DTB_PTE_XRE(X) (((X) >> 8) & 0xf) 40#define DTB_PTE_XWE(X) (((X) >> 12) & 0xf) 41#define DTB_PTE_FONR(X) (((X) >> 1) & 0x1) 42#define DTB_PTE_FONW(X) (((X) >> 2) & 0x1) 43#define DTB_PTE_GH(X) (((X) >> 5) & 0x3) 44#define DTB_PTE_ASMA(X) (((X) >> 4) & 0x1) 45 46#define ICM_CM(X) (((X) >> 3) & 0x3) 47#define ITB_ASN_ASN(X) (((X) >> 4) & 0x7f) 48#define ITB_PTE_PPN(X) (((X) >> 32) & 0x07ffffff) 49#define ITB_PTE_XRE(X) (((X) >> 8) & 0xf) 50#define ITB_PTE_FONR(X) (((X) >> 1) & 0x1) 51#define ITB_PTE_FONW(X) (((X) >> 2) & 0x1) 52#define ITB_PTE_GH(X) (((X) >> 5) & 0x3) 53#define ITB_PTE_ASMA(X) (((X) >> 4) & 0x1) 54 55#define VA_UNIMPL_MASK ULL(0xfffff80000000000) 56#define VA_IMPL_MASK ULL(0x000007ffffffffff) 57#define VA_IMPL(X) ((X) & VA_IMPL_MASK) 58#define VA_VPN(X) (VA_IMPL(X) >> 13) 59#define VA_SPACE(X) (((X) >> 41) & 0x3) 60#define VA_POFS(X) ((X) & 0x1fff) 61 62#define PA_IMPL_MASK ULL(0xffffffffff) 63#define PA_UNCACHED_BIT ULL(0x8000000000) 64#define PA_IPR_SPACE(X) ((X) >= ULL(0xFFFFF00000)) 65 66#define PA_PFN2PA(X) ((X) << 13) 67 68 69#define MM_STAT_BAD_VA_MASK 0x0020 70#define MM_STAT_DTB_MISS_MASK 0x0010 71#define MM_STAT_FONW_MASK 0x0008 72#define MM_STAT_FONR_MASK 0x0004 73#define MM_STAT_ACV_MASK 0x0002 74#define MM_STAT_WR_MASK 0x0001 75 76 77//////////////////////////////////////////////////////////////////////// 78// 79// 80// 81 82// VPTE size for HW_LD/HW_ST 83#define HW_VPTE ((inst >> 11) & 0x1) 84 85// QWORD size for HW_LD/HW_ST 86#define HW_QWORD ((inst >> 12) & 0x1) 87 88// ALT mode for HW_LD/HW_ST 89#define HW_ALT (((inst >> 14) & 0x1) ? ALTMODE : 0) 90 91// LOCK/COND mode for HW_LD/HW_ST 92#define HW_LOCK (((inst >> 10) & 0x1) ? LOCKED : 0) 93#define HW_COND (((inst >> 10) & 0x1) ? LOCKED : 0) 94 95// PHY size for HW_LD/HW_ST 96#define HW_PHY (((inst >> 15) & 0x1) ? PHYSICAL : 0) 97 98// OFFSET for HW_LD/HW_ST 99#define HW_OFS (inst & 0x3ff) 100 101 102#define PAL_BASE 0x4000 103 104#endif //__EV5_H__ 105