• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

The Holy Grail of PCI Macs: Daystar Millennium Quad 604.

Franklinstein

Well-known member
You kind of forget about BeOS these days, but BeOS is also weird because the BeBox was built with multiple 603 processors which were never designed to support an MP configuration. Be probably used the same sort of weird hackery that Apple did with their MP machines except they got proper SMP working.

No available Linux distro has proper, stable support for SMP on multiprocessor beige Macs; pretty much all of them don't even recognize the other processor. OS X, AFAIK, ignores the second processor regardless of what hacks are thrown at it.

The ANS is of course a completely different beast and I have no experience with any of them; A/UX and/or Linux may work fine in an SMP configuration on those but I can't say. Regardless, they're not Macs since they never ran the Mac OS.

Has anybody tried Rhapsody or A/UX on one of these?

 

Gorgonops

Moderator
Staff member
Be probably used the same sort of weird hackery that Apple did with their MP machines except they got proper SMP working.
The crucial difference when comparing Apple's MP machines and the BeBox is the 603 is fundamentally lacking support at the CPU hardware level to enable the cache coherency you need to enable true SMP. The BeBox gets around this by playing some really ugly games with software and its performance goes completely in the toilet if you ever try to switch a thread between the two cores.
 

No available Linux distro has proper, stable support for SMP on multiprocessor beige Macs; pretty much all of them don't even recognize the other processor.
Nonetheless it did at one point work on at least an experimental level; I've already posted one reference, here's another. I imagine they pulled support for those machines from later kernels because of some combination of them being "idiosyncratic" in terms of implementation compared to later machines (Linux is known to have trouble with pre-Pentium Pro SMP machines even though technically 486 and Pentium MP boards exist that comply with the Intel MP standard as documented) and the fact that there simply aren't enough of them in circulation to make the effort worthwhile. In particular I'm betting that it turned out to be really difficult to implement the new scheduler that came with the 2.6 kernel release on those old machines, assuming Apple didn't support I/O routing like Intel does with their APIC/MP hardware. (IE, the Beige hardware might be easy enough to make work with a "Big Lock" sort of SMP but is harder to make play nice with more sophisticated algorithms.)

 
Last edited by a moderator:

Gorgonops

Moderator
Staff member
The ANS is of course a completely different beast and I have no experience with any of them; A/UX and/or Linux may work fine in an SMP configuration on those but I can't say. Regardless, they're not Macs since they never ran the Mac OS.
Where there dual-CPU ANSes? I honestly can't remember. I'm googling it and it looks like no?

In any case, almost all the chipset hardware in an ANS matches that of a Power Macintosh 9500. The two major differences are the ANS has a modified memory controller to support parity memory, and it uses a Cirrus Logic VGA chip instead of the standard Apple framebuffer ASIC. (I'm guessing the latter was to leverage an existing driver in AIX, some low-end CHIRP RS/6000 hardware used the same.) It's mostly a ROM block (and the weird video) that prevents MacOS from running on them.

 
Last edited by a moderator:

trag

Well-known member
Where there dual-CPU ANSes? I honestly can't remember. I'm googling it and it looks like no?

In any case, almost all the chipset hardware in an ANS matches that of a Power Macintosh 9500. The two major differences are the ANS has a modified memory controller to support parity memory, and it uses a Cirrus Logic VGA chip instead of the standard Apple framebuffer ASIC. (I'm guessing the latter was to leverage an existing driver in AIX, some low-end CHIRP RS/6000 hardware used the same.) It's mostly a ROM block (and the weird video) that prevents MacOS from running on them.


There was one dual processor ANS that I know of and it had a unique ROM module (code was unique, not the physical module).  I was never able to get my hands on the ROM to copy it.

Correct, about the ANS being almost identical to a 9500.   The two datapath memory controllers are different to support parity, as you wrote.    The 9500 did not have built in video.    Apple video ASICs in the 7500/8500 lived on the CPU bus and so were equivalent in hierarchy to chips like Bandit and the main memory controller and bus arbiter, Hammerhead.   However, the ANS's video chip is implemented as a PCI device.  So it is just one more PCI device hanging on the PCI busses.

The other big differences are:

1)  the ROM code is different, of course.

2)  The PCI devices are arranged differently on the Bandit Bridges/PCI controllers.   On the 9500, the Grand Central chip and slots A - C are on Bandit 1 and slots D - F are on Bandit 2.    On the ANS, the Grand Central chip, two F&W SCSI chips, Cirrus Logic VGA chip and slots A - B are on Bandit 1.   Slots C - F are on Bandit 2.

3)   The interrupt mapping is a little different between the two machines.    Interrupts are (I hesitate to write "handled") routed through Grand Central for some kind of processing/registering, before the CPU gets an interrupt.   It looks like there are only 10 interrupts available on the Grand Central chip, or ten that aren't already being used by the IO of CURIO, the floppy controller and the MESH Fast SCSI controller.

Anyway, but there was one dual processor ANS out there.

 

Gorgonops

Moderator
Staff member
The 9500 did not have built in video. 
Doh, I forgot about that. My faulty memory filled in that it had the same framebuffer as the 7/8xx's stashed on the board, but thinking about it at all I know that's wrong.

Just as an aside, the Developer Note that covers the 9600/200MP has this to say about it:

Dual Processor Configuration:

In the 9600/200MP model, two PowerPC 604e microprocessors are on the processor card.

With applications that support the new multiprocessor API, the MP configuration

provides up to 2 times the performance of the equivalent single-processor computers.

The operation of the dual-processor configuration is asymmetric multiprocessing. One

processor is the primary processor: it runs the Mac OS and handles interrupts from the

I/O systems. The second processor runs MP tasks as set up by the primary processor.



Unfortunately there's no documentation, not even a block diagram, in that document that hints at how they actually hang the multiple CPUs off the bus. Granted that's not the sort of information Apple used to give out about their machines, since they never intended for anyone to run alternate OSes on them. Therefore it's difficult to take much away from this statement, since the "Asymmetric" part may strictly refer to their particular software implementation rather than a limitation of the hardware.
 

Also, for shiznet and giggles I downloaded a random version of the Linux 2.4 kernel source. Here's what I found in arch/ppc/kernel/pmac_smp.c:

/*
* SMP support for power macintosh.
*
* We support both the old "powersurge" SMP architecture
* and the current Core99 (G4 PowerMac) machines.
*
* Support Macintosh G4 SMP by Troy Benjegerdes (hozer@drgw.net)
* and Ben Herrenschmidt <benh@kernel.crashing.org>.
*
* Support for DayStar quad CPU cards
* Copyright (C) XLR8, Inc. 1994-2000
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/


The comments in that file are interesting reading. Among other things it seems to say that the CPUs in those machines are not mapped to Open Firmware device tree entries, you have to use some not-totally-reliable probing of registers in the Hammerhead memory controller to try to determine if they're present and what exact flavor of "PowerSurge" you're dealing with. The init code for the "Core99" machines is far cleaner with a lot less "cross your fingers and pray you got it right" moments. Given that I can see why they ditched the PowerSurge code in Linux, and it also probably explains why OS X has *no idea* about those extra CPUs either. (OS X is *very* Open Firmware-centric.)

 

Gorgonops

Moderator
Staff member
... actually, it looks like the same code is at least still present in the source tree as of the latest stable, 4.18.16. At some point between that version of 2.4 and now added the following comment to the header, which is now in arch/powerpc/platforms/powermac/smp.c:
 

* Note that we don't support the very first rev. of
* Apple/DayStar 2 CPUs board, the one with the funky
* watchdog. Hopefully, none of these should be there except
* maybe internally to Apple. I should probably still add some
* code to detect this card though and disable SMP. --BenH.


Whether it's still actually possible to enable this code as a configuration option or if the resulting kernel will just crash incessantly because there will be something else wrong above the platform driver level is of course utterly unknowable to me. If someone has one of these machines and a lot of time on their hands it might be an... interesting, experiment, to try to get a modern Linux distribution working on it.

 

Gorgonops

Moderator
Staff member
... replying to myself one more time, there's an interesting comment in the Peripheral Interrupt Controller code:
 

#ifdef CONFIG_PPC_PMAC32_PSURGE
/* IPI's are a hack on the powersurge -- Cort */
if (smp_processor_id() != 0) {
return psurge_secondary_virq;
}


IPIs are "Inter-Processor Interrupts", and the platform support code also alludes to them being "not exactly straightforward to handle" on the PowerSurge architecture. If this was the root cause of the instability that was noted in those old mailing list posts about running Linux on these boxes that could well be why no out-of-the-box kernel today has SMP on this hardware enabled. I can only imagine the post-2.6 scheduler would exacerbate this problem... but, of course, I don't know anywhere enough about the situation to really say.

 

trag

Well-known member
A very faint memory says that the Ben Herrenschmidt mentioned above is the fellow who had the dual processor ANS, but that may just be a false association in my memory.

 

MrMacintosh

Well-known member
@Compgeke Congratulations on your score! Certainly a holy grail machine, and in working condition!

256 MB RAM (+ 2x 8 or something that was causing issues)


Can you provide some detail as to a) what RAM you're using successfully in the machine, and b) what issues did you run into?

I have two GenesisMP machines (one with the quad-604 card) and both have the same issue: power on, chime, black screen/no boot. The only thing I haven't swapped is RAM, and I seem to recall reading that these machines were particular about memory.

Thanks in advance for any info you might be able to provide, and congrats again!

 

Compgeke

Well-known member
This is absolutely a bump but here're the images again. They died at some point in forum software upgrades.

One of those mythical machines you read about is the Daystar Genesis MP. Multiple 604s? How cool is that. rarely do they actually appear for sale though, and when they do often the boring single processor or maybe a dual. Never the Quad.

0VpMHBD.jpg



Well, a quad was the machine only in my dreams until recently. One morning I hit up Craigslist before work and seen a Daystar for sale. With the Quad CPU card. Oh shoot, I should email on that. A little back and forth later and for $100 I have myself a Daystar Millenium (Genesis MP after MacWorks bought Genesis) with a Quad 200 MHz 604 CPU card.

9HMDCjL.png



A short 40 mile drive later and I've got it!

dzd6G2g.jpg


So what makes this thing cool (other than the black case) is the CPU card. The CPU card has 4x 200 MHz 604e processors on it. It plugs into a standard (afaik) processor slot but needs some auxiliary power to work.

EN2hb5s.jpg



Once you get past that, it's more or less a Powermac 9500 in a super fancy case with a giant CPU card.

fryvye5.jpg
 

mints

Active member
Do you know anything about the history of this particular machine? That was a huge outlay of money to get one of these and I always love when at least part of the computer's history is told to the new owner.

edit: Just saw you'd been asked and answered. Super cool. Thanks for posting photos.
 
Top