Revision 363be49c target-ppc/cpu.h
b/target-ppc/cpu.h | ||
---|---|---|
514 | 514 |
/* Default PowerPC will be 604/970 */ |
515 | 515 |
#define PPC_INSNS_PPC32 PPC_INSNS_604 |
516 | 516 |
#define PPC_FLAGS_PPC32 PPC_FLAGS_604 |
517 |
#if 1 |
|
518 | 517 |
#define PPC_INSNS_PPC64 PPC_INSNS_970 |
519 | 518 |
#define PPC_FLAGS_PPC64 PPC_FLAGS_970 |
520 |
#endif |
|
521 | 519 |
#define PPC_INSNS_DEFAULT PPC_INSNS_604 |
522 | 520 |
#define PPC_FLAGS_DEFAULT PPC_FLAGS_604 |
523 | 521 |
typedef struct ppc_def_t ppc_def_t; |
... | ... | |
562 | 560 |
#define MSR_SF 63 /* Sixty-four-bit mode hflags */ |
563 | 561 |
#define MSR_ISF 61 /* Sixty-four-bit interrupt mode on 630 */ |
564 | 562 |
#define MSR_HV 60 /* hypervisor state hflags */ |
565 |
#define MSR_UCLE 26 /* User-mode cache lock enable on e500 */ |
|
563 |
#define MSR_CM 31 /* Computation mode for BookE hflags */ |
|
564 |
#define MSR_ICM 30 /* Interrupt computation mode for BookE */ |
|
565 |
#define MSR_UCLE 26 /* User-mode cache lock enable for BookE */ |
|
566 | 566 |
#define MSR_VR 25 /* altivec available hflags */ |
567 |
#define MSR_SPE 25 /* SPE enable on e500 hflags */
|
|
567 |
#define MSR_SPE 25 /* SPE enable for BookE hflags */
|
|
568 | 568 |
#define MSR_AP 23 /* Access privilege state on 602 hflags */ |
569 | 569 |
#define MSR_SA 22 /* Supervisor access mode on 602 hflags */ |
570 | 570 |
#define MSR_KEY 19 /* key bit on 603e */ |
... | ... | |
600 | 600 |
#define msr_sf env->msr[MSR_SF] |
601 | 601 |
#define msr_isf env->msr[MSR_ISF] |
602 | 602 |
#define msr_hv env->msr[MSR_HV] |
603 |
#define msr_cm env->msr[MSR_CM] |
|
604 |
#define msr_icm env->msr[MSR_ICM] |
|
603 | 605 |
#define msr_ucle env->msr[MSR_UCLE] |
604 | 606 |
#define msr_vr env->msr[MSR_VR] |
605 | 607 |
#define msr_spe env->msr[MSR_SPE] |
... | ... | |
724 | 726 |
int nb_ways; /* Number of ways in the TLB set */ |
725 | 727 |
int last_way; /* Last used way used to allocate TLB in a LRU way */ |
726 | 728 |
int id_tlbs; /* If 1, MMU has separated TLBs for instructions & data */ |
729 |
int nb_pids; /* Number of available PID registers */ |
|
727 | 730 |
ppc_tlb_t *tlb; /* TLB is optional. Allocate them only if needed */ |
728 | 731 |
/* Callbacks for specific checks on some implementations */ |
729 | 732 |
int (*tlb_check_more)(CPUPPCState *env, struct ppc_tlb_t *tlb, int *prot, |
... | ... | |
874 | 877 |
#define SPR_SRR1 (0x01B) |
875 | 878 |
#define SPR_BOOKE_PID (0x030) |
876 | 879 |
#define SPR_BOOKE_DECAR (0x036) |
877 |
#define SPR_CSRR0 (0x03A)
|
|
878 |
#define SPR_CSRR1 (0x03B)
|
|
880 |
#define SPR_BOOKE_CSRR0 (0x03A)
|
|
881 |
#define SPR_BOOKE_CSRR1 (0x03B)
|
|
879 | 882 |
#define SPR_BOOKE_DEAR (0x03D) |
880 | 883 |
#define SPR_BOOKE_ESR (0x03E) |
881 |
#define SPR_BOOKE_EVPR (0x03F)
|
|
884 |
#define SPR_BOOKE_IVPR (0x03F)
|
|
882 | 885 |
#define SPR_8xx_EIE (0x050) |
883 | 886 |
#define SPR_8xx_EID (0x051) |
884 | 887 |
#define SPR_8xx_NRE (0x052) |
... | ... | |
900 | 903 |
#define SPR_58x_BAR (0x09F) |
901 | 904 |
#define SPR_VRSAVE (0x100) |
902 | 905 |
#define SPR_USPRG0 (0x100) |
906 |
#define SPR_USPRG1 (0x101) |
|
907 |
#define SPR_USPRG2 (0x102) |
|
908 |
#define SPR_USPRG3 (0x103) |
|
903 | 909 |
#define SPR_USPRG4 (0x104) |
904 | 910 |
#define SPR_USPRG5 (0x105) |
905 | 911 |
#define SPR_USPRG6 (0x106) |
... | ... | |
973 | 979 |
#define SPR_BOOKE_ATBL (0x20E) |
974 | 980 |
#define SPR_BOOKE_ATBU (0x20F) |
975 | 981 |
#define SPR_IBAT0U (0x210) |
976 |
#define SPR_E500_IVOR32 (0x210)
|
|
982 |
#define SPR_BOOKE_IVOR32 (0x210)
|
|
977 | 983 |
#define SPR_IBAT0L (0x211) |
978 |
#define SPR_E500_IVOR33 (0x211)
|
|
984 |
#define SPR_BOOKE_IVOR33 (0x211)
|
|
979 | 985 |
#define SPR_IBAT1U (0x212) |
980 |
#define SPR_E500_IVOR34 (0x212)
|
|
986 |
#define SPR_BOOKE_IVOR34 (0x212)
|
|
981 | 987 |
#define SPR_IBAT1L (0x213) |
982 |
#define SPR_E500_IVOR35 (0x213)
|
|
988 |
#define SPR_BOOKE_IVOR35 (0x213)
|
|
983 | 989 |
#define SPR_IBAT2U (0x214) |
990 |
#define SPR_BOOKE_IVOR36 (0x214) |
|
984 | 991 |
#define SPR_IBAT2L (0x215) |
985 | 992 |
#define SPR_E500_L1CFG0 (0x215) |
993 |
#define SPR_BOOKE_IVOR37 (0x215) |
|
986 | 994 |
#define SPR_IBAT3U (0x216) |
987 | 995 |
#define SPR_E500_L1CFG1 (0x216) |
988 | 996 |
#define SPR_IBAT3L (0x217) |
... | ... | |
1005 | 1013 |
#define SPR_DBAT4U (0x238) |
1006 | 1014 |
#define SPR_DBAT4L (0x239) |
1007 | 1015 |
#define SPR_DBAT5U (0x23A) |
1008 |
#define SPR_E500_MCSRR0 (0x23A)
|
|
1016 |
#define SPR_BOOKE_MCSRR0 (0x23A)
|
|
1009 | 1017 |
#define SPR_DBAT5L (0x23B) |
1010 |
#define SPR_E500_MCSRR1 (0x23B)
|
|
1018 |
#define SPR_BOOKE_MCSRR1 (0x23B)
|
|
1011 | 1019 |
#define SPR_DBAT6U (0x23C) |
1012 |
#define SPR_E500_MCSR (0x23C)
|
|
1020 |
#define SPR_BOOKE_MCSR (0x23C)
|
|
1013 | 1021 |
#define SPR_DBAT6L (0x23D) |
1014 | 1022 |
#define SPR_E500_MCAR (0x23D) |
1015 | 1023 |
#define SPR_DBAT7U (0x23E) |
1024 |
#define SPR_BOOKE_DSRR0 (0x23E) |
|
1016 | 1025 |
#define SPR_DBAT7L (0x23F) |
1017 |
#define SPR_E500_MAS0 (0x270) |
|
1018 |
#define SPR_E500_MAS1 (0x271) |
|
1019 |
#define SPR_E500_MAS2 (0x272) |
|
1020 |
#define SPR_E500_MAS3 (0x273) |
|
1021 |
#define SPR_E500_MAS4 (0x274) |
|
1022 |
#define SPR_E500_MAS6 (0x276) |
|
1023 |
#define SPR_E500_PID1 (0x279) |
|
1024 |
#define SPR_E500_PID2 (0x27A) |
|
1025 |
#define SPR_E500_TLB0CFG (0x2B0) |
|
1026 |
#define SPR_E500_TLB1CFG (0x2B1) |
|
1026 |
#define SPR_BOOKE_DSRR1 (0x23F) |
|
1027 |
#define SPR_BOOKE_SPRG8 (0x25C) |
|
1028 |
#define SPR_BOOKE_SPRG9 (0x25D) |
|
1029 |
#define SPR_BOOKE_MAS0 (0x270) |
|
1030 |
#define SPR_BOOKE_MAS1 (0x271) |
|
1031 |
#define SPR_BOOKE_MAS2 (0x272) |
|
1032 |
#define SPR_BOOKE_MAS3 (0x273) |
|
1033 |
#define SPR_BOOKE_MAS4 (0x274) |
|
1034 |
#define SPR_BOOKE_MAS6 (0x276) |
|
1035 |
#define SPR_BOOKE_PID1 (0x279) |
|
1036 |
#define SPR_BOOKE_PID2 (0x27A) |
|
1037 |
#define SPR_BOOKE_TLB0CFG (0x2B0) |
|
1038 |
#define SPR_BOOKE_TLB1CFG (0x2B1) |
|
1039 |
#define SPR_BOOKE_TLB2CFG (0x2B2) |
|
1040 |
#define SPR_BOOKE_TLB3CFG (0x2B3) |
|
1041 |
#define SPR_BOOKE_EPR (0x2BE) |
|
1027 | 1042 |
#define SPR_440_INV0 (0x370) |
1028 | 1043 |
#define SPR_440_INV1 (0x371) |
1029 | 1044 |
#define SPR_440_INV2 (0x372) |
... | ... | |
1043 | 1058 |
#define SPR_440_DVLIM (0x398) |
1044 | 1059 |
#define SPR_440_IVLIM (0x399) |
1045 | 1060 |
#define SPR_440_RSTCFG (0x39B) |
1046 |
#define SPR_440_DCBTRL (0x39C)
|
|
1047 |
#define SPR_440_DCBTRH (0x39D)
|
|
1048 |
#define SPR_440_ICBTRL (0x39E)
|
|
1049 |
#define SPR_440_ICBTRH (0x39F)
|
|
1061 |
#define SPR_BOOKE_DCBTRL (0x39C)
|
|
1062 |
#define SPR_BOOKE_DCBTRH (0x39D)
|
|
1063 |
#define SPR_BOOKE_ICBTRL (0x39E)
|
|
1064 |
#define SPR_BOOKE_ICBTRH (0x39F)
|
|
1050 | 1065 |
#define SPR_UMMCR0 (0x3A8) |
1051 | 1066 |
#define SPR_UPMC1 (0x3A9) |
1052 | 1067 |
#define SPR_UPMC2 (0x3AA) |
... | ... | |
1056 | 1071 |
#define SPR_UPMC4 (0x3AE) |
1057 | 1072 |
#define SPR_USDA (0x3AF) |
1058 | 1073 |
#define SPR_40x_ZPR (0x3B0) |
1059 |
#define SPR_E500_MAS7 (0x3B0)
|
|
1074 |
#define SPR_BOOKE_MAS7 (0x3B0)
|
|
1060 | 1075 |
#define SPR_40x_PID (0x3B1) |
1061 | 1076 |
#define SPR_440_MMUCR (0x3B2) |
1062 | 1077 |
#define SPR_4xx_CCR0 (0x3B3) |
1078 |
#define SPR_BOOKE_EPLC (0x3B3) |
|
1063 | 1079 |
#define SPR_405_IAC3 (0x3B4) |
1080 |
#define SPR_BOOKE_EPSC (0x3B4) |
|
1064 | 1081 |
#define SPR_405_IAC4 (0x3B5) |
1065 | 1082 |
#define SPR_405_DVC1 (0x3B6) |
1066 | 1083 |
#define SPR_405_DVC2 (0x3B7) |
... | ... | |
1083 | 1100 |
#define SPR_DCMP (0x3D1) |
1084 | 1101 |
#define SPR_HASH1 (0x3D2) |
1085 | 1102 |
#define SPR_HASH2 (0x3D3) |
1086 |
#define SPR_4xx_ICDBDR (0x3D3)
|
|
1103 |
#define SPR_BOOKE_ICBDR (0x3D3)
|
|
1087 | 1104 |
#define SPR_IMISS (0x3D4) |
1088 | 1105 |
#define SPR_40x_ESR (0x3D4) |
1089 | 1106 |
#define SPR_ICMP (0x3D5) |
... | ... | |
1114 | 1131 |
#define SPR_E500_L1CSR1 (0x3F3) |
1115 | 1132 |
#define SPR_440_DBDR (0x3F3) |
1116 | 1133 |
#define SPR_40x_IAC1 (0x3F4) |
1117 |
#define SPR_E500_MMUCSR0 (0x3F4)
|
|
1134 |
#define SPR_BOOKE_MMUCSR0 (0x3F4)
|
|
1118 | 1135 |
#define SPR_DABR (0x3F5) |
1119 | 1136 |
#define DABR_MASK (~(target_ulong)0x7) |
1120 | 1137 |
#define SPR_E500_BUCSR (0x3F5) |
... | ... | |
1122 | 1139 |
#define SPR_601_HID5 (0x3F5) |
1123 | 1140 |
#define SPR_40x_DAC1 (0x3F6) |
1124 | 1141 |
#define SPR_40x_DAC2 (0x3F7) |
1125 |
#define SPR_E500_MMUCFG (0x3F7)
|
|
1142 |
#define SPR_BOOKE_MMUCFG (0x3F7)
|
|
1126 | 1143 |
#define SPR_L2PM (0x3F8) |
1127 | 1144 |
#define SPR_750_HID2 (0x3F8) |
1128 | 1145 |
#define SPR_L2CR (0x3F9) |
Also available in: Unified diff