1PowerPC emulation status. 2The goal of this file is to provide a reference status to avoid regressions. 3 4=============================================================================== 5PowerPC core emulation status 6 7INSN: instruction set. 8 OK => all instructions are emulated 9 KO => some insns are missing or some should be removed 10 ? => unchecked 11SPR: special purpose registers set 12 OK => all SPR registered (but some may be fake) 13 KO => some SPR are missing or should be removed 14 ? => unchecked 15MSR: MSR bits definitions 16 OK => all MSR bits properly defined 17 KO => MSR definition is incorrect 18 ? => unchecked 19IRQ: input signals definitions (mostly interrupts) 20 OK => input signals are properly defined 21 KO => input signals are not implemented (system emulation does not work) 22 ? => input signals definitions may be incorrect 23MMU: MMU model implementation 24 OK => MMU model is implemented and Linux is able to boot 25 KO => MMU model not implemented or bugged 26 ? => MMU model not tested 27EXCP: exceptions model implementation 28 OK => exception model is implemented and Linux is able to boot 29 KO => exception model not implemented or known to be buggy 30 ? => exception model may be incorrect or is untested 31 32Embedded PowerPC cores 33*** 34PowerPC 401: 35INSN OK 36SPR OK 401A1 37MSR OK 38IRQ KO partially implemented 39MMU OK 40EXCP ? 41 42PowerPC 401x2: 43INSN OK 44SPR OK 401B2 401C2 401D2 401E2 401F2 45MSR OK 46IRQ KO partially implemented 47MMU OK 48EXCP ? 49 50PowerPC IOP480: 51INSN OK 52SPR OK IOP480 53MSR OK 54IRQ KO partially implemented 55MMU OK 56EXCP ? 57 58To be checked: 401G2 401B3 Cobra 59 60*** 61PowerPC 403: 62INSN OK 63SPR OK 403GA 403GB 64MMU OK 65MSR OK 66IRQ KO not implemented 67EXCP ? 68 69PowerPC 403GCX: 70INSN OK 71SPR OK 403GCX 72MMU OK 73MSR OK 74IRQ KO not implemented 75EXCP ? 76 77To be checked: 403GC 78 79*** 80PowerPC 405: 81Checked: 405CRa 405CRb 405CRc 405EP 405GPa 405GPb 405GPc 405GPd 405GPe 405GPR 82 Npe405H Npe405H2 Npe405L 83INSN OK 84SPR OK 85MSR OK 86IRQ OK 87MMU OK 88EXCP OK 89Remarks: Linux 2.4 boots (at least 1 proprietary firmware). 90 uboot seems to freeze at boot time. 91To be checked: 405D2 405D4 405EZ 405LP Npe4GS3 STB03 STB04 STB25 92 x2vp4 x2vp7 x2vp20 x2vp50 93 94XXX: find what is IBM e407b4 95 96*** 97PowerPC 440: 98Checked: 440EPa 440EPb 440GXa 440GXb 440GXc 440GXf 440SP 440SP2 99INSN OK 100SPR OK 101MSR OK 102IRQ KO not implemented 103MMU ? 104EXCP ? 105 106PowerPC 440GP: 107Checked: 440GPb 440GPc 108INSN OK 109SPR OK 110MSR OK 111IRQ KO not implemented 112MMU ? 113EXCP ? 114 115PowerPC 440x4: 116Checked: 440A4 440B4 440G4 440H4 117INSN OK 118SPR OK 119MSR OK 120IRQ KO not implemented 121MMU ? 122EXCP ? 123 124PowerPC 440x5: 125Checked: 440A5 440F5 440G5 440H6 440GRa 126INSN OK 127SPR OK 128MSR OK 129IRQ KO not implemented 130MMU ? 131EXCP ? 132 133To be checked: 440EPx 440GRx 440SPE 134 135*** 136PowerPC 460: (disabled: lack of detailed specifications) 137INSN KO 138SPR KO 139MSR KO 140IRQ KO 141MMU KO 142EXCP KO 143 144PowerPC 460F: (disabled: lack of detailed specifications) 145INSN KO 146SPR KO 147MSR KO 148IRQ KO 149MMU KO 150EXCP KO 151 152*** 153PowerPC e200: (not implemented) 154INSN KO 155SPR KO 156MSR KO 157IRQ KO 158MMU KO 159EXCP KO 160 161*** 162PowerPC e300: (not implemented) 163INSN KO 164SPR KO 165MSR KO 166IRQ KO 167MMU KO 168EXCP KO 169 170*** 171PowerPC e500: (not implemented) 172INSN KO 173SPR KO 174MSR KO 175IRQ KO 176MMU KO 177EXCP KO 178 179*** 180PowerPC e600: (not implemented) 181INSN KO 182SPR KO 183MSR KO 184IRQ KO 185MMU KO 186EXCP KO 187 188*** 18932 bits PowerPC 190PowerPC 601: (601 601v2) 191INSN OK 192SPR OK is HID15 only on 601v2 ? 193MSR OK 194IRQ KO not implemented 195MMU ? 196EXCP ? 197Remarks: some instructions should have a specific behavior (not implemented) 198 199PowerPC 602: 602 200INSN OK 201SPR OK 202MSR OK 203IRQ OK 204MMU ? 205EXCP ? at least timer and external interrupt are OK 206Remarks: Linux 2.4 crashes when entering user-mode. 207 Linux 2.6.22 boots on this CPU but does not recognize it. 208 209PowerPC 603: (603) 210INSN OK 211SPR OK 212MSR OK 213IRQ OK 214MMU OK 215EXCP OK 216Remarks: Linux 2.4 boots and properly recognizes the CPU 217 Linux 2.6.22 idem. 218 219PowerPC 603e: (603e11) 220INSN OK 221SPR OK 222MSR OK 223IRQ OK 224MMU OK 225EXCP OK 226Remarks: Linux 2.4 boots and properly recognizes the CPU 227 Linux 2.6.22 idem. 228 229PowerPC G2: 230INSN OK 231SPR OK 232MSR OK 233IRQ OK 234MMU OK 235EXCP OK 236Remarks: Linux 2.4 boots, recognizes the CPU as a 82xx. 237 Linux 2.6.22 idem. 238 239PowerPC G2le: 240INSN OK 241SPR OK 242MSR OK 243IRQ OK 244MMU OK 245EXCP OK 246Remarks: Linux 2.4 does not boots. Same symptoms as 602. 247 Linux 2.6.22 boots and properly recognizes the CPU. 248 249PowerPC 604: 250INSN OK 251SPR OK 252MSR OK 253IRQ OK 254MMU OK 255EXCP OK 256Remarks: Linux 2.4 boots and properly recognizes the CPU. 257 Linux 2.6.22 idem. 258 259PowerPC 7x0: 260INSN OK 261SPR OK 262MSR OK 263IRQ OK 264MMU OK 265EXCP OK 266Remarks: Linux 2.4 boots and properly recognizes the CPU. 267 Linux 2.6.22 idem. 268 269PowerPC 750fx: 270INSN OK 271SPR OK 272MSR OK 273IRQ OK 274MMU OK 275EXCP OK 276Remarks: Linux 2.4 boots but does not properly recognizes the CPU. 277 Linux 2.6.22 boots and properly recognizes the CPU. 278 279PowerPC 7x5: 280INSN ? 281SPR ? 282MSR ? 283IRQ OK 284MMU ? 285EXCP OK 286Remarks: Linux 2.4 does not boot. 287 Linux 2.6.22 idem. 288 289PowerPC 7400: 290INSN KO Altivec missing 291SPR OK 292MSR OK 293IRQ OK 294MMU OK 295EXCP ? Altivec, ... 296Remarks: Linux 2.4 boots and properly recognize the CPU. 297 Linux 2.6.22 idem. 298 299PowerPC 7410: 300INSN KO Altivec missing 301SPR OK 302MSR OK 303IRQ OK 304MMU OK 305EXCP ? Altivec, ... 306Remarks: Linux 2.4 boots and properly recognize the CPU. 307 Linux 2.6.22 idem. 308 Note that UM says tlbld & tlbli are implemented but this may be a mistake 309 as TLB loads are managed by the hardware and the CPU does not implement the 310 needed registers. 311 312PowerPC 7441: 313INSN KO Altivec missing 314SPR OK 315MSR OK 316IRQ OK 317MMU OK 318EXCP ? Altivec, ... 319Remarks: Linux does not have the code to handle TLB miss on this CPU 320 Linux 2.6.22 idem. 321 322PowerPC 7450/7451: 323INSN KO Altivec missing 324SPR OK 325MSR OK 326IRQ OK 327MMU OK 328EXCP ? Altivec, ... 329Remarks: Linux does not have the code to handle TLB miss on this CPU 330 Linux 2.6.22 idem. 331 332PowerPC 7445/7447: 333INSN KO Altivec missing 334SPR OK 335MSR OK 336IRQ OK 337MMU OK 338EXCP ? Altivec, ... 339Remarks: Linux does not have the code to handle TLB miss on this CPU 340 Linux 2.6.22 idem. 341 342PowerPC 7455/7457: 343INSN KO Altivec missing 344SPR OK 345MSR OK 346IRQ OK 347MMU OK 348EXCP ? Altivec, ... 349Remarks: Linux does not have the code to handle TLB miss on this CPU 350 Linux 2.6.22 idem. 351 35264 bits PowerPC 353PowerPC 620: (disabled) 354INSN KO 355SPR KO 356MSR ? 357IRQ KO 358MMU KO 359EXCP KO 360Remarks: not much documentation for this implementation... 361 362PowerPC 970: 363INSN KO Altivec missing and more 364SPR KO 365MSR ? 366IRQ OK 367MMU OK 368EXCP KO partially implemented 369Remarks: Should be able to boot but there is no hw platform currently emulated. 370 371PowerPC 970FX: 372INSN KO Altivec missing and more 373SPR KO 374MSR ? 375IRQ OK 376MMU OK 377EXCP KO partially implemented 378Remarks: Should be able to boot but there is no hw platform currently emulated. 379 380PowerPC 970GX: 381INSN KO Altivec missing and more 382SPR KO 383MSR ? 384IRQ OK 385MMU OK 386EXCP KO partially implemented 387Remarks: Should be able to boot but there is no hw platform currently emulated. 388 389PowerPC Cell: 390INSN KO Altivec missing and more 391SPR KO 392MSR ? 393IRQ ? 394MMU ? 395EXCP ? partially implemented 396Remarks: As the core is mostly a 970, should be able to boot. 397 SPE are not implemented. 398 399PowerPC 630: (disabled: lack of detailed specifications) 400INSN KO 401SPR KO 402MSR KO 403IRQ KO 404MMU KO 405EXCP KO 406 407PowerPC 631: (disabled: lack of detailed specifications) 408INSN KO 409SPR KO 410MSR KO 411IRQ KO 412MMU KO 413EXCP KO 414 415POWER4: (disabled: lack of detailed specifications) 416INSN KO 417SPR KO 418MSR KO 419IRQ KO 420MMU KO 421EXCP KO 422 423POWER4+: (disabled: lack of detailed specifications) 424INSN KO 425SPR KO 426MSR KO 427IRQ KO 428MMU KO 429EXCP KO 430 431POWER5: (disabled: lack of detailed specifications) 432INSN KO 433SPR KO 434MSR KO 435IRQ KO 436MMU KO 437EXCP KO 438 439POWER5+: (disabled: lack of detailed specifications) 440INSN KO 441SPR KO 442MSR KO 443IRQ KO 444MMU KO 445EXCP KO 446 447POWER6: (disabled: lack of detailed specifications) 448INSN KO 449SPR KO 450MSR KO 451IRQ KO 452MMU KO 453EXCP KO 454 455RS64: (disabled: lack of detailed specifications) 456INSN KO 457SPR KO 458MSR KO 459IRQ KO 460MMU KO 461EXCP KO 462 463RS64-II: (disabled: lack of detailed specifications) 464INSN KO 465SPR KO 466MSR KO 467IRQ KO 468MMU KO 469EXCP KO 470 471RS64-III: (disabled: lack of detailed specifications) 472INSN KO 473SPR KO 474MSR KO 475IRQ KO 476MMU KO 477EXCP KO 478 479RS64-IV: (disabled: lack of detailed specifications) 480INSN KO 481SPR KO 482MSR KO 483IRQ KO 484MMU KO 485EXCP KO 486 487Original POWER 488POWER: (disabled: lack of detailed specifications) 489INSN KO 490SPR KO 491MSR KO 492IRQ KO 493MMU KO 494EXCP KO 495 496POWER2: (disabled: lack of detailed specifications) 497INSN KO 498SPR KO 499MSR KO 500IRQ KO 501MMU KO 502EXCP KO 503 504=============================================================================== 505PowerPC microcontrollers emulation status 506 507Implemementation should be sufficient to boot Linux: 508(there seem to be problems with uboot freezing at some point) 509- PowerPC 405CR 510- PowerPC 405EP 511 512TODO: 513- PowerPC 401 microcontrollers emulation 514- PowerPC 403 microcontrollers emulation 515- more PowerPC 405 microcontrollers emulation 516- Fixes / more features for implemented PowerPC 405 microcontrollers emulation 517- PowerPC 440 microcontrollers emulation 518- e200 microcontrollers emulation 519- e300 microcontrollers emulation 520- e500 microcontrollers emulation 521- e600 microcontrollers emulation 522 523=============================================================================== 524PowerPC based platforms emulation status 525 526* PREP platform (RS/6000 7043...) - TO BE CHECKED (broken) 527- Gentoo Linux live CDROM 1.4 528- Debian Linux 3.0 529- Mandrake Linux 9 530 531* heathrow PowerMac platform (beige PowerMac) - TO BE CHECKED (broken) 532- Gentoo Linux live CDROM 1.4 533- Debian Linux 3.0 534- Mandrake Linux 9 535 536* mac99 platform (white and blue PowerMac, ...) 537- Gentoo Linux live CDROM 1.4 - boots, compiles linux kernel 538- Debian Linux woody - boots from CDROM and HDD 539- Mandrake Linux 9 - boots from CDROM, freezes during install 540- Knoppix 2003-07-13_4 boots from CDROM, pb with X configuration 541 distribution bug: X runs with a properly hand-coded configuration. 542- rock Linux 2.0 runs from CDROM 543 544* Linux 2.6 support seems deadly broken (used to boot...). 545 546* PowerPC 405EP reference boards: 547- can boot Linux 2.4 & 2.6. 548 Need to provide a flash image ready to boot for reproductible tests. 549 550TODO: 551- URGENT: fix PreP and heathrow platforms 552- PowerPC 64 reference platform 553- MCA based RS/6000 emulation 554- CHRP emulation (not PowerMac) 555- PPAR emulation 556- ePPAR emulation 557- misc PowerPC reference boards emulation 558 559=============================================================================== 560