A 32-bit PowerPC compute module in 2023?

aperezbios

Well-known member
What if you could build a 603e-based Power Macintosh computer around existing, new-old-stock PowerPC-based chips that nobody wants any more?

Fifteen years ago, in mid-2007, while the first iPhone was making front-page news around the world, Freescale Semiconductor announced the MPC8313 "Integrated Processor", a member of the PowerQUICC II Pro family, which has an integrated 32-bit 66MHz 3.3-volt-only PCI controller, and a a e300c3 processor core, which is fully compatible with the 603e Apple used back in the day.

A month ago, I decided to go down a bit of a rabbit hole, and commissioned a brand new PowerPC-based compute module, built around the Freescale (now NXP) MPC8313E. Rochester Electronics, a specialty distributor focused entirely on New Old Stock semiconductors, happens to have around six thousand of in stock, in varying speed grades, some with hardware encryption acceleration (the E in MPC8313E), and some without.

It's important to point out that this design is not something I intend to ever commercialize... While this initial design is functionally-complete, it's not yet tested in the real world, and it ONLY exists "on paper" right now. This design is really only intended to serve as a very basic/spartan "bring-up" board, which is why it only has the most basic I/O required to accomplish this task:
  • 128 Megabytes of DDR2 SDRAM
  • One Gigabit Ethernet port
  • One parallel NAND flash (for boot)
  • One USB 2.0 (full speed only, 12Mbit/sec) port
  • One SPI-attached microSD card socket
  • One four-position DIP switch, to set the Reset Configuration Word
  • Two I2C headers
  • Two 3.3V serial UART headers
No prototypes have been manufactured yet, so, for the moment, it is absolutely vaporware. I don't yet know what it will actually cost to assemble, although I'm working on that part actively. The bill-of-materials cost is under $75 per board, even for the prototypes. PCB manufacturing cost is under $8 per board, for quantities as low as ten boards. The board itself is eight layers, and 95mm by 95mm, or just over 3.75 inches by 3.75 inches.

Linux retains support for the MPC8313E, from the most current/recent 6.x kernels, all the way back to kernel 2.6.x, and Linux is the first, and likely only, operating system this iteration of the board will ever boot.

Before it's possible to boot any operating system, U-boot must be made to load. Most of the MPC83xx support code was removed from U-boot in the 2015-2016 time frame, due to lack of maintainership, but Freescale/NXP maintains their own fork, which has kept support for the MPC8313E Reference Design Board. We've carefully designed the board below, which currently has a working title of QUICCSand, using RAM and parallel flash that's identical to the original Freescale MPC8313E Reference Design Board, such that U-boot bring-up will hopefully be as pain-free as it can be.

Here's a rendering of the board layout, which was done in Altium:
1672119943445.png

Hardware-wise, the CPU itself can address up to two gigabytes of DDR2 SDRAM, and the CPU core itself has 16kB of L1 I+D cache. There's no L2 cache of any sort, and the MPC8313 itself only supports 32-bit wide memory, which obviously limits performance.

How will it perform? There's no real way to tell until it's minimally operational. Is this thing useful on its own? Not really! Am I crazy for doing this? Absolutely, but it's fun and I hope to ultimately contribute something useful to the world of PowerPC retro-computing. I've got a decent amount of experience with U-boot, and previous 64-bit embedded PowerPC projects, so I'm going in to this with eyes wide open.

Ultimately, I intend to develop this board in to a Compute Module, suitable for use in a stand-alone context, mated to a 3.3 volt, 32-bit PCI carrier board, which would allow it to function in a passive PCI backplane. See the photo below for an example of the sort of PCI backplane I have in mind.

Beyond that, I don't have any solid plans yet, but feel free to imagine how such a thing might be useful to the classic Mac crowd ;)

1672125081360.png
 
Last edited:

demik

Well-known member
Looks nice ! NXP is still pumping out MPC8313s from factory, so take your time and have fun with this one.

If performance is an issue, you have plenty of faster MPCs to choose from anyway. Keep us updated
 

ArmorAlley

Well-known member
If this could run Mac OS 7.6 or 8.1, I suggest you consider taking the case & power supply of a Mac Mini, designing the log-board & ports with that in mind.
BTW, what's the story with a graphic port? PCI-graphics card in the daughterboard slot?
 

Daniël

Well-known member
If this could run Mac OS 7.6 or 8.1

That's a very big if. The amount of effort necessary to write all the low-level stuff to get OF and a Mac ROM going on this, would be herculean, and I don't know if there is even enough information out in the wild that would be necessary in understanding how to do that. The CPU core might be a direct descendant of what Apple used to use in Power Macintoshes and other Macs alike, but the supporting "chipset" is not. I don't think this would be the (main) purpose for QUICCSand for those reasons.
 

robin-fo

Well-known member
What about a palm-sized Macintosh Plus compatible compute module using only SMD components and modern soldered-on RAM and SPI display connector?
 

aperezbios

Well-known member
What about a palm-sized Macintosh Plus compatible compute module using only SMD components and modern soldered-on RAM and SPI display connector?
There are far lower-cost ways of achieving that. This is a _PowerPC_ based board.
 

aperezbios

Well-known member
Looks nice ! NXP is still pumping out MPC8313s from factory, so take your time and have fun with this one.

If performance is an issue, you have plenty of faster MPCs to choose from anyway. Keep us updated
I wish that were actually the case, but nearly all MPC8313E's are NRND, and all distributors have zero supply of MPC8313's at this point in time. That said, it isn't really a problem, because there's plenty of new-old-stock, at far more palatable prices.
 

Paralel

Well-known member
Using Mac-On-Linux, it should be eminently possible to run Classic Mac OS or OS X on QuiccSAND hardware, I would think. It would take care of the issue of trying to get the Mac OS to talk to chipset it doesn't understand.
 

rabbitholecomputing

Vendor The First
Using Mac-On-Linux, it should be eminently possible to run Classic Mac OS or OS X on QuiccSAND hardware, I would think. It would take care of the issue of trying to get the Mac OS to talk to chipset it doesn't understand.
Yep, this is really what I'm hoping will be the most-performant route forward, but it will require use of an old Linux 2.6 kernel, which does contain MPC8xxx support. Current versions of Linux kernels do not support MoL at this time.
 

herd

Well-known member
Interesting project. Is there a reason you wouldn't want to use one of the e600 chips? I think there have been some SBC designs for these that might do what you want.
 

chiptripper

Well-known member
Huh. This concept literally crossed my mind last night. It’s a cool idea, PowerPC is still a bit overlooked for projects like this compared to 68k, probably because it’s still easy and affordable to buy original hardware. Not sure it’ll stay that way.
 

aperezbios

Well-known member
Interesting project. Is there a reason you wouldn't want to use one of the e600 chips?
I chose the MPC8313 specifically because of how inexpensive it is to obtain, as of ~2023. There are certainly more performant chips out there from the same/successor families, but they're 2-4x the cost, if not more. I wanted to make something that was affordable enough to manufacture 50-100 at a time, and affordable enough that it can compete with the continuously rising costs of vintage PowerPC Macs and PPC upgrade cards. It's also something that is inexpensive enough that it could be adapted to serve as a PowerPC accelerator for low-end Macs.
I think there have been some SBC designs for these that might do what you want.
There certainly are/were, and a few months ago, I actually reached out to some of the IP owners of those (now obsolete) boards to see if they'd be willing to sell or license those SBC designs outright, but the costs of doing so were unpalatable. I also really wanted to have full control of the board layout/design itself, which I now do.
 

aperezbios

Well-known member
Here's an example of one of the ways I intend to adapt this new PPC compute module to. This was made by Embedded Planet, and sold by Freescale as the CWH-PPC-8248N-VE. Embedded Planet (actual designers/manufacturers of the board) referred to it as the CWH-PPC-8248N-VE1672426803554.png
 

mmu_man

Well-known member
Interesting, but if you expect to run OSes on this unmodified, it won't work: Embedded PPC chips only support compatibility with the userland programming model, not the supervisor one, specifically regarding things like the MMU. So you'll need some things to emulate it.
 

aperezbios

Well-known member
Interesting, but if you expect to run OSes on this unmodified, it won't work: Embedded PPC chips only support compatibility with the userland programming model, not the supervisor one, specifically regarding things like the MMU. So you'll need some things to emulate it.
This is where Mac-on-Linux comes in. It also provides convenient display and audio driver abstraction layers. I'm also not sure you're correct in the assertion that _all_ embedded PowerPC CPUs are this way. The e300c3 core is _not_ Book-E, which is what I believe you're referring to.
 
Top