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 Cell: 381INSN KO Altivec missing and more 382SPR KO 383MSR ? 384IRQ ? 385MMU ? 386EXCP ? partially implemented 387Remarks: As the core is mostly a 970, should be able to boot. 388 SPE are not implemented. 389 390PowerPC 630: (disabled: lack of detailed specifications) 391INSN KO 392SPR KO 393MSR KO 394IRQ KO 395MMU KO 396EXCP KO 397 398PowerPC 631: (disabled: lack of detailed specifications) 399INSN KO 400SPR KO 401MSR KO 402IRQ KO 403MMU KO 404EXCP KO 405 406POWER4: (disabled: lack of detailed specifications) 407INSN KO 408SPR KO 409MSR KO 410IRQ KO 411MMU KO 412EXCP KO 413 414POWER4+: (disabled: lack of detailed specifications) 415INSN KO 416SPR KO 417MSR KO 418IRQ KO 419MMU KO 420EXCP KO 421 422POWER5: (disabled: lack of detailed specifications) 423INSN KO 424SPR KO 425MSR KO 426IRQ KO 427MMU KO 428EXCP KO 429 430POWER5+: (disabled: lack of detailed specifications) 431INSN KO 432SPR KO 433MSR KO 434IRQ KO 435MMU KO 436EXCP KO 437 438POWER6: (disabled: lack of detailed specifications) 439INSN KO 440SPR KO 441MSR KO 442IRQ KO 443MMU KO 444EXCP KO 445 446RS64: (disabled: lack of detailed specifications) 447INSN KO 448SPR KO 449MSR KO 450IRQ KO 451MMU KO 452EXCP KO 453 454RS64-II: (disabled: lack of detailed specifications) 455INSN KO 456SPR KO 457MSR KO 458IRQ KO 459MMU KO 460EXCP KO 461 462RS64-III: (disabled: lack of detailed specifications) 463INSN KO 464SPR KO 465MSR KO 466IRQ KO 467MMU KO 468EXCP KO 469 470RS64-IV: (disabled: lack of detailed specifications) 471INSN KO 472SPR KO 473MSR KO 474IRQ KO 475MMU KO 476EXCP KO 477 478Original POWER 479POWER: (disabled: lack of detailed specifications) 480INSN KO 481SPR KO 482MSR KO 483IRQ KO 484MMU KO 485EXCP KO 486 487POWER2: (disabled: lack of detailed specifications) 488INSN KO 489SPR KO 490MSR KO 491IRQ KO 492MMU KO 493EXCP KO 494 495=============================================================================== 496PowerPC microcontrollers emulation status 497 498Implemementation should be sufficient to boot Linux: 499(there seem to be problems with uboot freezing at some point) 500- PowerPC 405CR 501- PowerPC 405EP 502 503TODO: 504- PowerPC 401 microcontrollers emulation 505- PowerPC 403 microcontrollers emulation 506- more PowerPC 405 microcontrollers emulation 507- Fixes / more features for implemented PowerPC 405 microcontrollers emulation 508- PowerPC 440 microcontrollers emulation 509- e200 microcontrollers emulation 510- e300 microcontrollers emulation 511- e500 microcontrollers emulation 512- e600 microcontrollers emulation 513 514=============================================================================== 515PowerPC based platforms emulation status 516 517* PREP platform (RS/6000 7043...) - TO BE CHECKED (broken) 518- Gentoo Linux live CDROM 1.4 519- Debian Linux 3.0 520- Mandrake Linux 9 521 522* heathrow PowerMac platform (beige PowerMac) - TO BE CHECKED (broken) 523- Gentoo Linux live CDROM 1.4 524- Debian Linux 3.0 525- Mandrake Linux 9 526 527* mac99 platform (white and blue PowerMac, ...) 528- Gentoo Linux live CDROM 1.4 - boots, compiles linux kernel 529- Debian Linux woody - boots from CDROM and HDD 530- Mandrake Linux 9 - boots from CDROM, freezes during install 531- Knoppix 2003-07-13_4 boots from CDROM, pb with X configuration 532 distribution bug: X runs with a properly hand-coded configuration. 533- rock Linux 2.0 runs from CDROM 534 535* Linux 2.6 support seems deadly broken (used to boot...). 536 537* PowerPC 405EP reference boards: 538- can boot Linux 2.4 & 2.6. 539 Need to provide a flash image ready to boot for reproductible tests. 540 541TODO: 542- URGENT: fix PreP and heathrow platforms 543- PowerPC 64 reference platform 544- MCA based RS/6000 emulation 545- CHRP emulation (not PowerMac) 546- PPAR emulation 547- ePPAR emulation 548- misc PowerPC reference boards emulation 549 550=============================================================================== 551