| 1 | /* |
| 2 | * PowerPC CPU initialization for qemu. |
| 3 | * |
| 4 | * Copyright (c) 2003-2007 Jocelyn Mayer |
| 5 | * Copyright 2011 Freescale Semiconductor, Inc. |
| 6 | * Copyright 2013 SUSE LINUX Products GmbH |
| 7 | * |
| 8 | * This library is free software; you can redistribute it and/or |
| 9 | * modify it under the terms of the GNU Lesser General Public |
| 10 | * License as published by the Free Software Foundation; either |
| 11 | * version 2.1 of the License, or (at your option) any later version. |
| 12 | * |
| 13 | * This library is distributed in the hope that it will be useful, |
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 16 | * Lesser General Public License for more details. |
| 17 | * |
| 18 | * You should have received a copy of the GNU Lesser General Public |
| 19 | * License along with this library; if not, see <http://www.gnu.org/licenses/>. |
| 20 | */ |
| 21 | #ifndef TARGET_PPC_CPU_MODELS_H |
| 22 | #define TARGET_PPC_CPU_MODELS_H |
| 23 | |
| 24 | /** |
| 25 | * PowerPCCPUAlias: |
| 26 | * @alias: The alias name. |
| 27 | * @model: The CPU model @alias refers to, that directly resolves into CPU type |
| 28 | * |
| 29 | * A mapping entry from CPU @alias to CPU @model. |
| 30 | */ |
| 31 | typedef struct PowerPCCPUAlias { |
| 32 | const char *alias; |
| 33 | const char *model; |
| 34 | } PowerPCCPUAlias; |
| 35 | |
| 36 | extern PowerPCCPUAlias ppc_cpu_aliases[]; |
| 37 | |
| 38 | /*****************************************************************************/ |
| 39 | /* PVR definitions for most known PowerPC */ |
| 40 | enum { |
| 41 | /* IBM Processor for Network Resources */ |
| 42 | CPU_POWERPC_COBRA = 0x10100000, /* XXX: 405 ? */ |
| 43 | /* PowerPC 405 family */ |
| 44 | /* PowerPC 405 cores */ |
| 45 | CPU_POWERPC_405D2 = 0x20010000, |
| 46 | CPU_POWERPC_405D4 = 0x41810000, |
| 47 | /* PowerPC 405 microcontrollers */ |
| 48 | /* XXX: missing 0x200108a0 */ |
| 49 | CPU_POWERPC_405CRa = 0x40110041, |
| 50 | CPU_POWERPC_405CRb = 0x401100C5, |
| 51 | CPU_POWERPC_405CRc = 0x40110145, |
| 52 | CPU_POWERPC_405EP = 0x51210950, |
| 53 | CPU_POWERPC_405EZ = 0x41511460, /* 0x51210950 ? */ |
| 54 | CPU_POWERPC_405GPa = 0x40110000, |
| 55 | CPU_POWERPC_405GPb = 0x40110040, |
| 56 | CPU_POWERPC_405GPc = 0x40110082, |
| 57 | CPU_POWERPC_405GPd = 0x401100C4, |
| 58 | CPU_POWERPC_405GPR = 0x50910951, |
| 59 | CPU_POWERPC_405LP = 0x41F10000, |
| 60 | /* IBM network processors */ |
| 61 | CPU_POWERPC_NPE405H = 0x414100C0, |
| 62 | CPU_POWERPC_NPE405H2 = 0x41410140, |
| 63 | CPU_POWERPC_NPE405L = 0x416100C0, |
| 64 | CPU_POWERPC_NPE4GS3 = 0x40B10000, |
| 65 | /* IBM STBxxx (PowerPC 401/403/405 core based microcontrollers) */ |
| 66 | CPU_POWERPC_STB03 = 0x40310000, /* 0x40130000 ? */ |
| 67 | CPU_POWERPC_STB04 = 0x41810000, |
| 68 | CPU_POWERPC_STB25 = 0x51510950, |
| 69 | /* Xilinx cores */ |
| 70 | CPU_POWERPC_X2VP4 = 0x20010820, |
| 71 | CPU_POWERPC_X2VP20 = 0x20010860, |
| 72 | /* IBM PPE42 Family */ |
| 73 | CPU_POWERPC_PPE42 = 0x42000000, |
| 74 | CPU_POWERPC_PPE42X = 0x42100000, |
| 75 | CPU_POWERPC_PPE42XM = 0x42200000, |
| 76 | /* PowerPC 440 family */ |
| 77 | /* Generic PowerPC 440 */ |
| 78 | #define CPU_POWERPC_440 CPU_POWERPC_440GXf |
| 79 | /* PowerPC 440 cores */ |
| 80 | CPU_POWERPC_440_XILINX = 0x7ff21910, |
| 81 | /* PowerPC 440 microcontrollers */ |
| 82 | CPU_POWERPC_440EPa = 0x42221850, |
| 83 | CPU_POWERPC_440EPb = 0x422218D3, |
| 84 | CPU_POWERPC_440GPb = 0x40120440, |
| 85 | CPU_POWERPC_440GPc = 0x40120481, |
| 86 | #define CPU_POWERPC_440GRa CPU_POWERPC_440EPb |
| 87 | CPU_POWERPC_440GRX = 0x200008D0, |
| 88 | #define CPU_POWERPC_440EPX CPU_POWERPC_440GRX |
| 89 | CPU_POWERPC_440GXa = 0x51B21850, |
| 90 | CPU_POWERPC_440GXb = 0x51B21851, |
| 91 | CPU_POWERPC_440GXc = 0x51B21892, |
| 92 | CPU_POWERPC_440GXf = 0x51B21894, |
| 93 | CPU_POWERPC_440SP = 0x53221850, |
| 94 | CPU_POWERPC_440SP2 = 0x53221891, |
| 95 | CPU_POWERPC_440SPE = 0x53421890, |
| 96 | CPU_POWERPC_460EXb = 0x130218A4, /* called 460 but 440 core */ |
| 97 | /* Freescale embedded PowerPC cores */ |
| 98 | /* PowerPC MPC 5xx cores (aka RCPU) */ |
| 99 | CPU_POWERPC_MPC5xx = 0x00020020, |
| 100 | /* PowerPC MPC 8xx cores (aka PowerQUICC) */ |
| 101 | CPU_POWERPC_MPC8xx = 0x00500000, |
| 102 | /* G2 cores (aka PowerQUICC-II) */ |
| 103 | CPU_POWERPC_G2 = 0x00810011, |
| 104 | CPU_POWERPC_G2H4 = 0x80811010, |
| 105 | CPU_POWERPC_G2gp = 0x80821010, |
| 106 | CPU_POWERPC_G2ls = 0x90810010, |
| 107 | CPU_POWERPC_MPC603 = 0x00810100, |
| 108 | CPU_POWERPC_G2_HIP3 = 0x00810101, |
| 109 | CPU_POWERPC_G2_HIP4 = 0x80811014, |
| 110 | /* G2_LE core (aka PowerQUICC-II) */ |
| 111 | CPU_POWERPC_G2LE = 0x80820010, |
| 112 | CPU_POWERPC_G2LEgp = 0x80822010, |
| 113 | CPU_POWERPC_G2LEls = 0xA0822010, |
| 114 | CPU_POWERPC_G2LEgp1 = 0x80822011, |
| 115 | CPU_POWERPC_G2LEgp3 = 0x80822013, |
| 116 | /* MPC52xx microcontrollers */ |
| 117 | /* XXX: MPC 5121 ? */ |
| 118 | #define CPU_POWERPC_MPC5200_v10 CPU_POWERPC_G2LEgp1 |
| 119 | #define CPU_POWERPC_MPC5200_v11 CPU_POWERPC_G2LEgp1 |
| 120 | #define CPU_POWERPC_MPC5200_v12 CPU_POWERPC_G2LEgp1 |
| 121 | #define CPU_POWERPC_MPC5200B_v20 CPU_POWERPC_G2LEgp1 |
| 122 | #define CPU_POWERPC_MPC5200B_v21 CPU_POWERPC_G2LEgp1 |
| 123 | /* e300 family */ |
| 124 | /* e300 cores */ |
| 125 | CPU_POWERPC_e300c1 = 0x00830010, |
| 126 | CPU_POWERPC_e300c2 = 0x00840010, |
| 127 | CPU_POWERPC_e300c3 = 0x00850010, |
| 128 | CPU_POWERPC_e300c4 = 0x00860010, |
| 129 | /* MPC83xx microcontrollers */ |
| 130 | #define CPU_POWERPC_MPC834x CPU_POWERPC_e300c1 |
| 131 | #define CPU_POWERPC_MPC837x CPU_POWERPC_e300c4 |
| 132 | /* e500 family */ |
| 133 | /* e500 cores */ |
| 134 | #define CPU_POWERPC_e500 CPU_POWERPC_e500v2_v22 |
| 135 | CPU_POWERPC_e500v1_v10 = 0x80200010, |
| 136 | CPU_POWERPC_e500v1_v20 = 0x80200020, |
| 137 | CPU_POWERPC_e500v2_v10 = 0x80210010, |
| 138 | CPU_POWERPC_e500v2_v11 = 0x80210011, |
| 139 | CPU_POWERPC_e500v2_v20 = 0x80210020, |
| 140 | CPU_POWERPC_e500v2_v21 = 0x80210021, |
| 141 | CPU_POWERPC_e500v2_v22 = 0x80210022, |
| 142 | CPU_POWERPC_e500v2_v30 = 0x80210030, |
| 143 | CPU_POWERPC_e500mc = 0x80230020, |
| 144 | CPU_POWERPC_e5500 = 0x80240020, |
| 145 | CPU_POWERPC_e6500 = 0x80400020, |
| 146 | /* MPC85xx microcontrollers */ |
| 147 | #define CPU_POWERPC_MPC8533_v10 CPU_POWERPC_e500v2_v21 |
| 148 | #define CPU_POWERPC_MPC8533_v11 CPU_POWERPC_e500v2_v22 |
| 149 | #define CPU_POWERPC_MPC8533E_v10 CPU_POWERPC_e500v2_v21 |
| 150 | #define CPU_POWERPC_MPC8533E_v11 CPU_POWERPC_e500v2_v22 |
| 151 | #define CPU_POWERPC_MPC8540_v10 CPU_POWERPC_e500v1_v10 |
| 152 | #define CPU_POWERPC_MPC8540_v20 CPU_POWERPC_e500v1_v20 |
| 153 | #define CPU_POWERPC_MPC8540_v21 CPU_POWERPC_e500v1_v20 |
| 154 | #define CPU_POWERPC_MPC8541_v10 CPU_POWERPC_e500v1_v20 |
| 155 | #define CPU_POWERPC_MPC8541_v11 CPU_POWERPC_e500v1_v20 |
| 156 | #define CPU_POWERPC_MPC8541E_v10 CPU_POWERPC_e500v1_v20 |
| 157 | #define CPU_POWERPC_MPC8541E_v11 CPU_POWERPC_e500v1_v20 |
| 158 | #define CPU_POWERPC_MPC8543_v10 CPU_POWERPC_e500v2_v10 |
| 159 | #define CPU_POWERPC_MPC8543_v11 CPU_POWERPC_e500v2_v11 |
| 160 | #define CPU_POWERPC_MPC8543_v20 CPU_POWERPC_e500v2_v20 |
| 161 | #define CPU_POWERPC_MPC8543_v21 CPU_POWERPC_e500v2_v21 |
| 162 | #define CPU_POWERPC_MPC8543E_v10 CPU_POWERPC_e500v2_v10 |
| 163 | #define CPU_POWERPC_MPC8543E_v11 CPU_POWERPC_e500v2_v11 |
| 164 | #define CPU_POWERPC_MPC8543E_v20 CPU_POWERPC_e500v2_v20 |
| 165 | #define CPU_POWERPC_MPC8543E_v21 CPU_POWERPC_e500v2_v21 |
| 166 | #define CPU_POWERPC_MPC8544_v10 CPU_POWERPC_e500v2_v21 |
| 167 | #define CPU_POWERPC_MPC8544_v11 CPU_POWERPC_e500v2_v22 |
| 168 | #define CPU_POWERPC_MPC8544E_v11 CPU_POWERPC_e500v2_v22 |
| 169 | #define CPU_POWERPC_MPC8544E_v10 CPU_POWERPC_e500v2_v21 |
| 170 | #define CPU_POWERPC_MPC8545_v10 CPU_POWERPC_e500v2_v10 |
| 171 | #define CPU_POWERPC_MPC8545_v20 CPU_POWERPC_e500v2_v20 |
| 172 | #define CPU_POWERPC_MPC8545_v21 CPU_POWERPC_e500v2_v21 |
| 173 | #define CPU_POWERPC_MPC8545E_v10 CPU_POWERPC_e500v2_v10 |
| 174 | #define CPU_POWERPC_MPC8545E_v20 CPU_POWERPC_e500v2_v20 |
| 175 | #define CPU_POWERPC_MPC8545E_v21 CPU_POWERPC_e500v2_v21 |
| 176 | #define CPU_POWERPC_MPC8547E_v10 CPU_POWERPC_e500v2_v10 |
| 177 | #define CPU_POWERPC_MPC8547E_v20 CPU_POWERPC_e500v2_v20 |
| 178 | #define CPU_POWERPC_MPC8547E_v21 CPU_POWERPC_e500v2_v21 |
| 179 | #define CPU_POWERPC_MPC8548_v10 CPU_POWERPC_e500v2_v10 |
| 180 | #define CPU_POWERPC_MPC8548_v11 CPU_POWERPC_e500v2_v11 |
| 181 | #define CPU_POWERPC_MPC8548_v20 CPU_POWERPC_e500v2_v20 |
| 182 | #define CPU_POWERPC_MPC8548_v21 CPU_POWERPC_e500v2_v21 |
| 183 | #define CPU_POWERPC_MPC8548E_v10 CPU_POWERPC_e500v2_v10 |
| 184 | #define CPU_POWERPC_MPC8548E_v11 CPU_POWERPC_e500v2_v11 |
| 185 | #define CPU_POWERPC_MPC8548E_v20 CPU_POWERPC_e500v2_v20 |
| 186 | #define CPU_POWERPC_MPC8548E_v21 CPU_POWERPC_e500v2_v21 |
| 187 | #define CPU_POWERPC_MPC8555_v10 CPU_POWERPC_e500v1_v20 |
| 188 | #define CPU_POWERPC_MPC8555_v11 CPU_POWERPC_e500v1_v20 |
| 189 | #define CPU_POWERPC_MPC8555E_v10 CPU_POWERPC_e500v1_v20 |
| 190 | #define CPU_POWERPC_MPC8555E_v11 CPU_POWERPC_e500v1_v20 |
| 191 | #define CPU_POWERPC_MPC8560_v10 CPU_POWERPC_e500v1_v10 |
| 192 | #define CPU_POWERPC_MPC8560_v20 CPU_POWERPC_e500v1_v20 |
| 193 | #define CPU_POWERPC_MPC8560_v21 CPU_POWERPC_e500v1_v20 |
| 194 | #define CPU_POWERPC_MPC8567 CPU_POWERPC_e500v2_v22 |
| 195 | #define CPU_POWERPC_MPC8567E CPU_POWERPC_e500v2_v22 |
| 196 | #define CPU_POWERPC_MPC8568 CPU_POWERPC_e500v2_v22 |
| 197 | #define CPU_POWERPC_MPC8568E CPU_POWERPC_e500v2_v22 |
| 198 | #define CPU_POWERPC_MPC8572 CPU_POWERPC_e500v2_v30 |
| 199 | #define CPU_POWERPC_MPC8572E CPU_POWERPC_e500v2_v30 |
| 200 | /* e600 family */ |
| 201 | /* e600 cores */ |
| 202 | CPU_POWERPC_e600 = 0x80040010, |
| 203 | /* MPC86xx microcontrollers */ |
| 204 | #define CPU_POWERPC_MPC8610 CPU_POWERPC_e600 |
| 205 | #define CPU_POWERPC_MPC8641 CPU_POWERPC_e600 |
| 206 | #define CPU_POWERPC_MPC8641D CPU_POWERPC_e600 |
| 207 | /* PowerPC 6xx cores */ |
| 208 | CPU_POWERPC_603 = 0x00030100, |
| 209 | CPU_POWERPC_603E_v11 = 0x00060101, |
| 210 | CPU_POWERPC_603E_v12 = 0x00060102, |
| 211 | CPU_POWERPC_603E_v13 = 0x00060103, |
| 212 | CPU_POWERPC_603E_v14 = 0x00060104, |
| 213 | CPU_POWERPC_603E_v22 = 0x00060202, |
| 214 | CPU_POWERPC_603E_v3 = 0x00060300, |
| 215 | CPU_POWERPC_603E_v4 = 0x00060400, |
| 216 | CPU_POWERPC_603E_v41 = 0x00060401, |
| 217 | CPU_POWERPC_603E7t = 0x00071201, |
| 218 | CPU_POWERPC_603E7v = 0x00070100, |
| 219 | CPU_POWERPC_603E7v1 = 0x00070101, |
| 220 | CPU_POWERPC_603E7v2 = 0x00070201, |
| 221 | CPU_POWERPC_603E7 = 0x00070200, |
| 222 | CPU_POWERPC_603P = 0x00070000, |
| 223 | /* XXX: missing 0x00040303 (604) */ |
| 224 | CPU_POWERPC_604 = 0x00040103, |
| 225 | /* XXX: missing 0x00091203 */ |
| 226 | /* XXX: missing 0x00092110 */ |
| 227 | /* XXX: missing 0x00092120 */ |
| 228 | CPU_POWERPC_604E_v10 = 0x00090100, |
| 229 | CPU_POWERPC_604E_v22 = 0x00090202, |
| 230 | CPU_POWERPC_604E_v24 = 0x00090204, |
| 231 | /* XXX: missing 0x000a0100 */ |
| 232 | /* XXX: missing 0x00093102 */ |
| 233 | CPU_POWERPC_604R = 0x000a0101, |
| 234 | /* PowerPC 740/750 cores (aka G3) */ |
| 235 | /* XXX: missing 0x00084202 */ |
| 236 | CPU_POWERPC_7x0_v10 = 0x00080100, |
| 237 | CPU_POWERPC_7x0_v20 = 0x00080200, |
| 238 | CPU_POWERPC_7x0_v21 = 0x00080201, |
| 239 | CPU_POWERPC_7x0_v22 = 0x00080202, |
| 240 | CPU_POWERPC_7x0_v30 = 0x00080300, |
| 241 | CPU_POWERPC_7x0_v31 = 0x00080301, |
| 242 | CPU_POWERPC_740E = 0x00080100, |
| 243 | CPU_POWERPC_750E = 0x00080200, |
| 244 | CPU_POWERPC_7x0P = 0x10080000, |
| 245 | /* XXX: missing 0x00087010 (CL ?) */ |
| 246 | CPU_POWERPC_750CL_v10 = 0x00087200, |
| 247 | CPU_POWERPC_750CL_v20 = 0x00087210, /* aka rev E */ |
| 248 | CPU_POWERPC_750CX_v10 = 0x00082100, |
| 249 | CPU_POWERPC_750CX_v20 = 0x00082200, |
| 250 | CPU_POWERPC_750CX_v21 = 0x00082201, |
| 251 | CPU_POWERPC_750CX_v22 = 0x00082202, |
| 252 | CPU_POWERPC_750CXE_v21 = 0x00082211, |
| 253 | CPU_POWERPC_750CXE_v22 = 0x00082212, |
| 254 | CPU_POWERPC_750CXE_v23 = 0x00082213, |
| 255 | CPU_POWERPC_750CXE_v24 = 0x00082214, |
| 256 | CPU_POWERPC_750CXE_v24b = 0x00083214, |
| 257 | CPU_POWERPC_750CXE_v30 = 0x00082310, |
| 258 | CPU_POWERPC_750CXE_v31 = 0x00082311, |
| 259 | CPU_POWERPC_750CXE_v31b = 0x00083311, |
| 260 | CPU_POWERPC_750CXR = 0x00083410, |
| 261 | CPU_POWERPC_750FL = 0x70000203, |
| 262 | CPU_POWERPC_750FX_v10 = 0x70000100, |
| 263 | CPU_POWERPC_750FX_v20 = 0x70000200, |
| 264 | CPU_POWERPC_750FX_v21 = 0x70000201, |
| 265 | CPU_POWERPC_750FX_v22 = 0x70000202, |
| 266 | CPU_POWERPC_750FX_v23 = 0x70000203, |
| 267 | CPU_POWERPC_750GL = 0x70020102, |
| 268 | CPU_POWERPC_750GX_v10 = 0x70020100, |
| 269 | CPU_POWERPC_750GX_v11 = 0x70020101, |
| 270 | CPU_POWERPC_750GX_v12 = 0x70020102, |
| 271 | CPU_POWERPC_750L_v20 = 0x00088200, |
| 272 | CPU_POWERPC_750L_v21 = 0x00088201, |
| 273 | CPU_POWERPC_750L_v22 = 0x00088202, |
| 274 | CPU_POWERPC_750L_v30 = 0x00088300, |
| 275 | CPU_POWERPC_750L_v32 = 0x00088302, |
| 276 | /* PowerPC 745/755 cores */ |
| 277 | CPU_POWERPC_7x5_v10 = 0x00083100, |
| 278 | CPU_POWERPC_7x5_v11 = 0x00083101, |
| 279 | CPU_POWERPC_7x5_v20 = 0x00083200, |
| 280 | CPU_POWERPC_7x5_v21 = 0x00083201, |
| 281 | CPU_POWERPC_7x5_v22 = 0x00083202, /* aka D */ |
| 282 | CPU_POWERPC_7x5_v23 = 0x00083203, /* aka E */ |
| 283 | CPU_POWERPC_7x5_v24 = 0x00083204, |
| 284 | CPU_POWERPC_7x5_v25 = 0x00083205, |
| 285 | CPU_POWERPC_7x5_v26 = 0x00083206, |
| 286 | CPU_POWERPC_7x5_v27 = 0x00083207, |
| 287 | CPU_POWERPC_7x5_v28 = 0x00083208, |
| 288 | /* PowerPC 74xx cores (aka G4) */ |
| 289 | /* XXX: missing 0x000C1101 */ |
| 290 | CPU_POWERPC_7400_v10 = 0x000C0100, |
| 291 | CPU_POWERPC_7400_v11 = 0x000C0101, |
| 292 | CPU_POWERPC_7400_v20 = 0x000C0200, |
| 293 | CPU_POWERPC_7400_v21 = 0x000C0201, |
| 294 | CPU_POWERPC_7400_v22 = 0x000C0202, |
| 295 | CPU_POWERPC_7400_v26 = 0x000C0206, |
| 296 | CPU_POWERPC_7400_v27 = 0x000C0207, |
| 297 | CPU_POWERPC_7400_v28 = 0x000C0208, |
| 298 | CPU_POWERPC_7400_v29 = 0x000C0209, |
| 299 | CPU_POWERPC_7410_v10 = 0x800C1100, |
| 300 | CPU_POWERPC_7410_v11 = 0x800C1101, |
| 301 | CPU_POWERPC_7410_v12 = 0x800C1102, /* aka C */ |
| 302 | CPU_POWERPC_7410_v13 = 0x800C1103, /* aka D */ |
| 303 | CPU_POWERPC_7410_v14 = 0x800C1104, /* aka E */ |
| 304 | CPU_POWERPC_7448_v10 = 0x80040100, |
| 305 | CPU_POWERPC_7448_v11 = 0x80040101, |
| 306 | CPU_POWERPC_7448_v20 = 0x80040200, |
| 307 | CPU_POWERPC_7448_v21 = 0x80040201, |
| 308 | CPU_POWERPC_7450_v10 = 0x80000100, |
| 309 | CPU_POWERPC_7450_v11 = 0x80000101, |
| 310 | CPU_POWERPC_7450_v12 = 0x80000102, |
| 311 | CPU_POWERPC_7450_v20 = 0x80000200, /* aka A, B, C, D: 2.04 */ |
| 312 | CPU_POWERPC_7450_v21 = 0x80000201, /* aka E */ |
| 313 | CPU_POWERPC_74x1_v23 = 0x80000203, /* aka G: 2.3 */ |
| 314 | /* XXX: this entry might be a bug in some documentation */ |
| 315 | CPU_POWERPC_74x1_v210 = 0x80000210, /* aka G: 2.3 ? */ |
| 316 | CPU_POWERPC_74x5_v10 = 0x80010100, |
| 317 | /* XXX: missing 0x80010200 */ |
| 318 | CPU_POWERPC_74x5_v21 = 0x80010201, /* aka C: 2.1 */ |
| 319 | CPU_POWERPC_74x5_v32 = 0x80010302, |
| 320 | CPU_POWERPC_74x5_v33 = 0x80010303, /* aka F: 3.3 */ |
| 321 | CPU_POWERPC_74x5_v34 = 0x80010304, /* aka G: 3.4 */ |
| 322 | CPU_POWERPC_74x7_v10 = 0x80020100, /* aka A: 1.0 */ |
| 323 | CPU_POWERPC_74x7_v11 = 0x80020101, /* aka B: 1.1 */ |
| 324 | CPU_POWERPC_74x7_v12 = 0x80020102, /* aka C: 1.2 */ |
| 325 | CPU_POWERPC_74x7A_v10 = 0x80030100, /* aka A: 1.0 */ |
| 326 | CPU_POWERPC_74x7A_v11 = 0x80030101, /* aka B: 1.1 */ |
| 327 | CPU_POWERPC_74x7A_v12 = 0x80030102, /* aka C: 1.2 */ |
| 328 | /* 64 bits PowerPC */ |
| 329 | #if defined(TARGET_PPC64) |
| 330 | CPU_POWERPC_620 = 0x00140000, |
| 331 | CPU_POWERPC_630 = 0x00400000, |
| 332 | CPU_POWERPC_631 = 0x00410104, |
| 333 | CPU_POWERPC_POWER4 = 0x00350000, |
| 334 | CPU_POWERPC_POWER4P = 0x00380000, |
| 335 | /* XXX: missing 0x003A0201 */ |
| 336 | CPU_POWERPC_POWER5 = 0x003A0203, |
| 337 | CPU_POWERPC_POWER5P_v21 = 0x003B0201, |
| 338 | CPU_POWERPC_POWER6 = 0x003E0000, |
| 339 | CPU_POWERPC_POWER_SERVER_MASK = 0xFFFF0000, |
| 340 | CPU_POWERPC_POWER7_BASE = 0x003F0000, |
| 341 | CPU_POWERPC_POWER7_v23 = 0x003F0203, |
| 342 | CPU_POWERPC_POWER7P_BASE = 0x004A0000, |
| 343 | CPU_POWERPC_POWER7P_v21 = 0x004A0201, |
| 344 | CPU_POWERPC_POWER8_BASE = 0x004D0000, |
| 345 | CPU_POWERPC_POWER8_v20 = 0x004D0200, |
| 346 | CPU_POWERPC_POWER9_BASE = 0x004E0000, |
| 347 | CPU_POWERPC_POWER9_DD1 = 0x004E1100, |
| 348 | CPU_POWERPC_POWER9_DD20 = 0x004E1200, |
| 349 | CPU_POWERPC_POWER9_DD22 = 0x004E1202, |
| 350 | CPU_POWERPC_POWER10_BASE = 0x00800000, |
| 351 | CPU_POWERPC_POWER10_DD1 = 0x00801100, |
| 352 | CPU_POWERPC_POWER10_DD20 = 0x00801200, |
| 353 | CPU_POWERPC_POWER11_BASE = 0x00820000, |
| 354 | CPU_POWERPC_POWER11_DD20 = 0x00821200, |
| 355 | CPU_POWERPC_970_v22 = 0x00390202, |
| 356 | CPU_POWERPC_970FX_v10 = 0x00391100, |
| 357 | CPU_POWERPC_970FX_v20 = 0x003C0200, |
| 358 | CPU_POWERPC_970FX_v21 = 0x003C0201, |
| 359 | CPU_POWERPC_970FX_v30 = 0x003C0300, |
| 360 | CPU_POWERPC_970FX_v31 = 0x003C0301, |
| 361 | CPU_POWERPC_970MP_v10 = 0x00440100, |
| 362 | CPU_POWERPC_970MP_v11 = 0x00440101, |
| 363 | #define CPU_POWERPC_CELL CPU_POWERPC_CELL_v32 |
| 364 | CPU_POWERPC_CELL_v10 = 0x00700100, |
| 365 | CPU_POWERPC_CELL_v20 = 0x00700400, |
| 366 | CPU_POWERPC_CELL_v30 = 0x00700500, |
| 367 | CPU_POWERPC_CELL_v31 = 0x00700501, |
| 368 | #define CPU_POWERPC_CELL_v32 CPU_POWERPC_CELL_v31 |
| 369 | CPU_POWERPC_RS64 = 0x00330000, |
| 370 | CPU_POWERPC_RS64II = 0x00340000, |
| 371 | CPU_POWERPC_RS64III = 0x00360000, |
| 372 | CPU_POWERPC_RS64IV = 0x00370000, |
| 373 | #endif /* defined(TARGET_PPC64) */ |
| 374 | /* Original POWER */ |
| 375 | /* |
| 376 | * XXX: should be POWER (RIOS), RSC3308, RSC4608, |
| 377 | * POWER2 (RIOS2) & RSC2 (P2SC) here |
| 378 | */ |
| 379 | /* PA Semi core */ |
| 380 | CPU_POWERPC_PA6T = 0x00900000, |
| 381 | }; |
| 382 | |
| 383 | /* Logical PVR definitions for sPAPR */ |
| 384 | enum { |
| 385 | CPU_POWERPC_LOGICAL_2_04 = 0x0F000001, |
| 386 | CPU_POWERPC_LOGICAL_2_05 = 0x0F000002, |
| 387 | CPU_POWERPC_LOGICAL_2_06 = 0x0F000003, |
| 388 | CPU_POWERPC_LOGICAL_2_06_PLUS = 0x0F100003, |
| 389 | CPU_POWERPC_LOGICAL_2_07 = 0x0F000004, |
| 390 | CPU_POWERPC_LOGICAL_3_00 = 0x0F000005, |
| 391 | CPU_POWERPC_LOGICAL_3_10 = 0x0F000006, |
| 392 | CPU_POWERPC_LOGICAL_3_10_P11 = 0x0F000007, |
| 393 | }; |
| 394 | |
| 395 | /* System version register (used on MPC 8xxx) */ |
| 396 | enum { |
| 397 | POWERPC_SVR_NONE = 0x00000000, |
| 398 | POWERPC_SVR_5200_v10 = 0x80110010, |
| 399 | POWERPC_SVR_5200_v11 = 0x80110011, |
| 400 | POWERPC_SVR_5200_v12 = 0x80110012, |
| 401 | POWERPC_SVR_5200B_v20 = 0x80110020, |
| 402 | POWERPC_SVR_5200B_v21 = 0x80110021, |
| 403 | #define POWERPC_SVR_55xx POWERPC_SVR_5567 |
| 404 | POWERPC_SVR_8343 = 0x80570010, |
| 405 | POWERPC_SVR_8343A = 0x80570030, |
| 406 | POWERPC_SVR_8343E = 0x80560010, |
| 407 | POWERPC_SVR_8343EA = 0x80560030, |
| 408 | POWERPC_SVR_8347P = 0x80550010, /* PBGA package */ |
| 409 | POWERPC_SVR_8347T = 0x80530010, /* TBGA package */ |
| 410 | POWERPC_SVR_8347AP = 0x80550030, /* PBGA package */ |
| 411 | POWERPC_SVR_8347AT = 0x80530030, /* TBGA package */ |
| 412 | POWERPC_SVR_8347EP = 0x80540010, /* PBGA package */ |
| 413 | POWERPC_SVR_8347ET = 0x80520010, /* TBGA package */ |
| 414 | POWERPC_SVR_8347EAP = 0x80540030, /* PBGA package */ |
| 415 | POWERPC_SVR_8347EAT = 0x80520030, /* TBGA package */ |
| 416 | POWERPC_SVR_8349 = 0x80510010, |
| 417 | POWERPC_SVR_8349A = 0x80510030, |
| 418 | POWERPC_SVR_8349E = 0x80500010, |
| 419 | POWERPC_SVR_8349EA = 0x80500030, |
| 420 | #define POWERPC_SVR_E500 0x40000000 |
| 421 | POWERPC_SVR_8377 = 0x80C70010 | POWERPC_SVR_E500, |
| 422 | POWERPC_SVR_8377E = 0x80C60010 | POWERPC_SVR_E500, |
| 423 | POWERPC_SVR_8378 = 0x80C50010 | POWERPC_SVR_E500, |
| 424 | POWERPC_SVR_8378E = 0x80C40010 | POWERPC_SVR_E500, |
| 425 | POWERPC_SVR_8379 = 0x80C30010 | POWERPC_SVR_E500, |
| 426 | POWERPC_SVR_8379E = 0x80C00010 | POWERPC_SVR_E500, |
| 427 | POWERPC_SVR_8533_v10 = 0x80340010 | POWERPC_SVR_E500, |
| 428 | POWERPC_SVR_8533_v11 = 0x80340011 | POWERPC_SVR_E500, |
| 429 | POWERPC_SVR_8533E_v10 = 0x803C0010 | POWERPC_SVR_E500, |
| 430 | POWERPC_SVR_8533E_v11 = 0x803C0011 | POWERPC_SVR_E500, |
| 431 | POWERPC_SVR_8540_v10 = 0x80300010 | POWERPC_SVR_E500, |
| 432 | POWERPC_SVR_8540_v20 = 0x80300020 | POWERPC_SVR_E500, |
| 433 | POWERPC_SVR_8540_v21 = 0x80300021 | POWERPC_SVR_E500, |
| 434 | POWERPC_SVR_8541_v10 = 0x80720010 | POWERPC_SVR_E500, |
| 435 | POWERPC_SVR_8541_v11 = 0x80720011 | POWERPC_SVR_E500, |
| 436 | POWERPC_SVR_8541E_v10 = 0x807A0010 | POWERPC_SVR_E500, |
| 437 | POWERPC_SVR_8541E_v11 = 0x807A0011 | POWERPC_SVR_E500, |
| 438 | POWERPC_SVR_8543_v10 = 0x80320010 | POWERPC_SVR_E500, |
| 439 | POWERPC_SVR_8543_v11 = 0x80320011 | POWERPC_SVR_E500, |
| 440 | POWERPC_SVR_8543_v20 = 0x80320020 | POWERPC_SVR_E500, |
| 441 | POWERPC_SVR_8543_v21 = 0x80320021 | POWERPC_SVR_E500, |
| 442 | POWERPC_SVR_8543E_v10 = 0x803A0010 | POWERPC_SVR_E500, |
| 443 | POWERPC_SVR_8543E_v11 = 0x803A0011 | POWERPC_SVR_E500, |
| 444 | POWERPC_SVR_8543E_v20 = 0x803A0020 | POWERPC_SVR_E500, |
| 445 | POWERPC_SVR_8543E_v21 = 0x803A0021 | POWERPC_SVR_E500, |
| 446 | POWERPC_SVR_8544_v10 = 0x80340110 | POWERPC_SVR_E500, |
| 447 | POWERPC_SVR_8544_v11 = 0x80340111 | POWERPC_SVR_E500, |
| 448 | POWERPC_SVR_8544E_v10 = 0x803C0110 | POWERPC_SVR_E500, |
| 449 | POWERPC_SVR_8544E_v11 = 0x803C0111 | POWERPC_SVR_E500, |
| 450 | POWERPC_SVR_8545_v20 = 0x80310220 | POWERPC_SVR_E500, |
| 451 | POWERPC_SVR_8545_v21 = 0x80310221 | POWERPC_SVR_E500, |
| 452 | POWERPC_SVR_8545E_v20 = 0x80390220 | POWERPC_SVR_E500, |
| 453 | POWERPC_SVR_8545E_v21 = 0x80390221 | POWERPC_SVR_E500, |
| 454 | POWERPC_SVR_8547E_v20 = 0x80390120 | POWERPC_SVR_E500, |
| 455 | POWERPC_SVR_8547E_v21 = 0x80390121 | POWERPC_SVR_E500, |
| 456 | POWERPC_SVR_8548_v10 = 0x80310010 | POWERPC_SVR_E500, |
| 457 | POWERPC_SVR_8548_v11 = 0x80310011 | POWERPC_SVR_E500, |
| 458 | POWERPC_SVR_8548_v20 = 0x80310020 | POWERPC_SVR_E500, |
| 459 | POWERPC_SVR_8548_v21 = 0x80310021 | POWERPC_SVR_E500, |
| 460 | POWERPC_SVR_8548E_v10 = 0x80390010 | POWERPC_SVR_E500, |
| 461 | POWERPC_SVR_8548E_v11 = 0x80390011 | POWERPC_SVR_E500, |
| 462 | POWERPC_SVR_8548E_v20 = 0x80390020 | POWERPC_SVR_E500, |
| 463 | POWERPC_SVR_8548E_v21 = 0x80390021 | POWERPC_SVR_E500, |
| 464 | POWERPC_SVR_8555_v10 = 0x80710010 | POWERPC_SVR_E500, |
| 465 | POWERPC_SVR_8555_v11 = 0x80710011 | POWERPC_SVR_E500, |
| 466 | POWERPC_SVR_8555E_v10 = 0x80790010 | POWERPC_SVR_E500, |
| 467 | POWERPC_SVR_8555E_v11 = 0x80790011 | POWERPC_SVR_E500, |
| 468 | POWERPC_SVR_8560_v10 = 0x80700010 | POWERPC_SVR_E500, |
| 469 | POWERPC_SVR_8560_v20 = 0x80700020 | POWERPC_SVR_E500, |
| 470 | POWERPC_SVR_8560_v21 = 0x80700021 | POWERPC_SVR_E500, |
| 471 | POWERPC_SVR_8567 = 0x80750111 | POWERPC_SVR_E500, |
| 472 | POWERPC_SVR_8567E = 0x807D0111 | POWERPC_SVR_E500, |
| 473 | POWERPC_SVR_8568 = 0x80750011 | POWERPC_SVR_E500, |
| 474 | POWERPC_SVR_8568E = 0x807D0011 | POWERPC_SVR_E500, |
| 475 | POWERPC_SVR_8572 = 0x80E00010 | POWERPC_SVR_E500, |
| 476 | POWERPC_SVR_8572E = 0x80E80010 | POWERPC_SVR_E500, |
| 477 | POWERPC_SVR_8610 = 0x80A00011, |
| 478 | POWERPC_SVR_8641 = 0x80900021, |
| 479 | POWERPC_SVR_8641D = 0x80900121, |
| 480 | }; |
| 481 | |
| 482 | #endif |