Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
very cool! have you tried also putting the PowerMac G3 into programmer mode to see if it behaves itself better in that mode? (you push and hold down the interrupt switch until you hear a tone IIRC)
For the Power Mac B&W G3 (and probably other G3's that use Grackle), you need to set some bits to be able to access the flashrom after going into programmer mode.
You can determine the bits by looking at the fcode of the firmware updater.
The bits are listed in the MPC601 manual. I've listed them in
https://github.com/joevt/dingusppc/...4824a0b600bd0d5a/devices/memctrl/mpc106.h#L81

I think TEA_EN is related to the error that causes the B&W G3 to hang when accessing the flashrom.
https://www.nxp.com/docs/en/reference-manual/MPC106UM.pdf
 

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
Back on the subject of the Beige G3 video cards( LOL )....

Has anyone tried the PCI to PCI-E bridges in an Old World Mac?

Maybe we could get some PCI-E ATI and nVidia cards working that way. Also we can overclock the PCI bus of the Beige G3 to get just a little more speed!

Last, anyone know about the Sonnet 1Ghz G4 ZIF, was the limit of a 66Mhz bus a real hardware limit or did they just do that because they wanted to make it compatible with the Beige and the B&W with as little user interdiction as possible?
 

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
Has anyone tried the PCI to PCI-E bridges in an Old World Mac?

Maybe we could get some PCI-E ATI and nVidia cards working that way. Also we can overclock the PCI bus of the Beige G3 to get just a little more speed!
I have a StarTech PCI to PCIe bridge in my Power Mac 8600. It can detect an NVMe but not my 7800 GT Mac Edition with my <64K Old World compatible firmware. I'm not sure if the problem is with my firmware or with the hardware. I tried it in dingusppc with Open Firmrware 1.0.5 but I should probably retest that with an extra PCI bridge. I may need to use debug firmware to see if the registers are being read/written the same as they were in the G5.

Last, anyone know about the Sonnet 1Ghz G4 ZIF, was the limit of a 66Mhz bus a real hardware limit or did they just do that because they wanted to make it compatible with the Beige and the B&W with as little user interdiction as possible?
I don't know. I thought Sonnet chose 66MHz because 100MHz was unstable in the B&W G3?
 

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
I have a StarTech PCI to PCIe bridge in my Power Mac 8600. It can detect an NVMe but not my 7800 GT Mac Edition with my <64K Old World compatible firmware. I'm not sure if the problem is with my firmware or with the hardware. I tried it in dingusppc with Open Firmrware 1.0.5 but I should probably retest that with an extra PCI bridge. I may need to use debug firmware to see if the registers are being read/written the same as they were in the G5.
I also have a PCI to PCI-E bridge, after I said I wasn't going to fool with this PPC stuff anymore I dug out all the PPC stuff;-).

Anyway the PCI-E Apple OEM GF6600 256MB works just fine with this bridge in my SP G5 under Leopard. Even fired up Jk2 and did a few benchmarks. Same 36.6 FPS with or without sound in the timedemo, so the limitation is the PCI bus as running without sound should have yielded faster FPS.

So Joe any interest in making a FCODE rom for the 6600 to test in my Beige G3?

I'll have to try your patch for the 512MB GF6200 PCI and see how that goes in my Beige G3. Tho Quartz Extreme is enabled on ALL compatible NVIDIA cards, so I'm sure that is taking some bandwidth from our PCI bus.

There is a tool from the Developer tools that you can disable QE, if I remember correct, with just a checkbox. I'll see if I can find it.
 

LightBulbFun

macrumors 68030
Nov 17, 2013
2,900
3,195
London UK
I did try a PCI to PCIe bridge in my G3 beige and much like @joevt it saw a cheap PCIe SATA card I had lying around just fine in OpenFirmware, but *any* video card I threw at it hung the machine sometime after the chime but before video int, it did not matter what video Card be it a X1900, GeForce 6600, or even a GT 120 from my MacPro4,1, all hung the machine sadly, the fact that it even hung with the GT 120 ie not an fCode card is a bit worrying since it would point to an issue from before the card's ROM is even parsed

as for the Sonnet G4, IIRC Sonnet said that due to a bug with the MPC106 and the 7455 they could not run the G3 Blue and white at its full 100Mhz, but they never elberated on that, I have often wondered if say 83Mhz would of still been compatible or not...
 

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
I also have a PCI to PCI-E bridge, after I said I wasn't going to fool with this PPC stuff anymore I dug out all the PPC stuff;-).

Anyway the PCI-E Apple OEM GF6600 256MB works just fine with this bridge in my SP G5 under Leopard. Even fired up Jk2 and did a few benchmarks. Same 36.6 FPS with or without sound in the timedemo, so the limitation is the PCI bus as running without sound should have yielded faster FPS.

So Joe any interest in making a FCODE rom for the 6600 to test in my Beige G3?
You are referring to the PCIe Apple OEM GF6600 256MB that works in your SP G5? Get a ROM dump and I'll look at it.

I'll have to try your patch for the 512MB GF6200 PCI and see how that goes in my Beige G3.
You mean the nvramrc patch for any 512MB card? Or do you mean a specific 6200 ROM?

Tho Quartz Extreme is enabled on ALL compatible NVIDIA cards, so I'm sure that is taking some bandwidth from our PCI bus.

There is a tool from the Developer tools that you can disable QE, if I remember correct, with just a checkbox. I'll see if I can find it.
QuartzDebug?

I did try a PCI to PCIe bridge in my G3 beige and much like @joevt it saw a cheap PCIe SATA card I had lying around just fine in OpenFirmware, but *any* video card I threw at it hung the machine sometime after the chime but before video int, it did not matter what video Card be it a X1900, GeForce 6600, or even a GT 120 from my MacPro4,1, all hung the machine sadly, the fact that it even hung with the GT 120 ie not an fCode card is a bit worrying since it would point to an issue from before the card's ROM is even parsed

as for the Sonnet G4, IIRC Sonnet said that due to a bug with the MPC106 and the 7455 they could not run the G3 Blue and white at its full 100Mhz, but they never elberated on that, I have often wondered if say 83Mhz would of still been compatible or not...
I haven't gotten around to trying the debug rom on the 7800GT yet in the Power Mac 8600. Maybe I'll try tomorrow.
 

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
The 6600 causes the built in video on the Beige not to work, I can hear the system booting OS 9 until it hangs because OS 9 won't boot passed the splash screen with the PCI to PCI-E bridge installed.
Appears to be the same ROM as Apple_GeForce_6600_256Mb_PCIe.rom in:
https://forums.macrumors.com/thread...eige-power-macintosh-g3.2303689/post-31720759

Differences listed at:
https://forums.macrumors.com/thread...eige-power-macintosh-g3.2303689/post-31724769

I made a Old World version for that in Test 3 at:
https://forums.macrumors.com/thread...eige-power-macintosh-g3.2303689/post-31722617
 

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
6600 #27 has the Old World fixes that were included in 7800 #26 (64K ROM support won't be added until someone says they have a 6600 with a 64K ROM chip though I think I've posted enough info for people to make their own compressed rom).

I still need to find out why 7800 #26 isn't working in my Power Mac 8600 (or at least how far the rom gets until it fails or reports something different from what it reports in dingusppc).
 

Attachments

  • 6600 #27.zip
    398.7 KB · Views: 30

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
The problem with the 7800 GT in the Power Mac 8600 seems to be some kind of random hardware issue. The 7800 GT fcode has to do ≈49000 register reads and writes. It hangs after doing ≈1060 although when it hangs may depend on other factors such as serial port speed (for my test logging) etc.

Open Firmware 1.0.5 seems to hang when attempting to read one of the 7800 GT registers (in MMIO BAR 0) but it has read from that register ≈169 times before.
Code:
w_0 @006013D4.b = 44 
r_0 @006013D5.b

I had the 7800 GT connected to the PCIe bridge using a USB cable connected riser.

Now I'm trying the 7800 GT in a Netstor NA255A but it's in a downstream PCIe bridge with device ID > @F which Open Firmware (all versions included Quad G5) doesn't support so I'm going to patch OF to scan that device ID (instead of moving the 7800GT to one of the two slots that do get scanned because fun).

If this fails, maybe I'll add some delays or try with B&W G3 which has a 66 MHz PCI slot.
 

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
Could be something weird with Old World and BAR 0, do PCI native GFX cards use it?
PCI config space and BARs haven't really changed significantly since they were first conceived. All graphics cards have a BAR for storing the framebuffer. They may have a separate BAR for accessing registers or use the same BAR. Or they can provide access to the same registers from multiple BARs.

For the 7800 GT:
BAR 0 is 16 MB.
BAR 1 is 256 MB but that should be ok for OF 1.0.5 as long as the standard nvramrc patch from Mac OS is installed and enabled. I'm not sure which System version is the first to include the necessary nvramrc patch - would have to check all the System files for Ofpt resources.
BAR 2 is 16 MB.
BAR 3 is 128 bytes I/O.

BAR 0 seems to work fine for awhile until it stops after a thousand or so accesses.
 

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
The problem with the 7800 GT in the Power Mac 8600 seems to be some kind of random hardware issue. The 7800 GT fcode has to do ≈49000 register reads and writes. It hangs after doing ≈1060 although when it hangs may depend on other factors such as serial port speed (for my test logging) etc.

Open Firmware 1.0.5 seems to hang when attempting to read one of the 7800 GT registers (in MMIO BAR 0) but it has read from that register ≈169 times before.
Code:
w_0 @006013D4.b = 44
r_0 @006013D5.b

I had the 7800 GT connected to the PCIe bridge using a USB cable connected riser.

Now I'm trying the 7800 GT in a Netstor NA255A but it's in a downstream PCIe bridge with device ID > @F which Open Firmware (all versions included Quad G5) doesn't support so I'm going to patch OF to scan that device ID (instead of moving the 7800GT to one of the two slots that do get scanned because fun).

If this fails, maybe I'll add some delays or try with B&W G3 which has a 66 MHz PCI slot.
What ROM is made to be used for the 6600?

The one in test3?
 

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
I think you meant to quote the post about 6600. #811

Yes, test3. You want the patched ROM named Apple_GeForce_6600_256Mb_PCIe.rom who's original version matches your ROM.
Same result from the Beige G3 and the bridge adapter, no video from either the GF or builtin rage. System won't enter Open Firmware, I think it tries to boot headless into the Mac OS but booting halts after the splash screen because OS 9 does not like this bridge.

works fine in the QS G4.

If I can find a version of nvflash that can still erase the eprom I'll test to see if it will show up on the PCI bus of the Beige without a Mac rom on the card......
 

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
Same result from the Beige G3 and the bridge adapter, no video from either the GF or builtin rage. System won't enter Open Firmware, I think it tries to boot headless into the Mac OS but booting halts after the splash screen because OS 9 does not like this bridge.
setenv input-device and output-device to serial port (ttya or scca whatever is in devalias) before booting. Connect using serial port. Then try. Also, use the (install-console) stuff in nvramrc to enable logging before probe-all.

works fine in the QS G4.
The new firmware for Old World Macs works in the QS G4?

If I can find a version of nvflash that can still erase the eprom I'll test to see if it will show up on the PCI bus of the Beige without a Mac rom on the card......
I use nvflash v5.95.0.1 in Windows 10 #26
 

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
setenv input-device and output-device to serial port (ttya or scca whatever is in devalias) before booting. Connect using serial port. Then try. Also, use the (install-console) stuff in nvramrc to enable logging before probe-all.
I ordered a new Keyspan USA-28X USB to 8pin Mini DIN adapter, never was able to get my old one to work.

My LSI PCI-E SATA/SAS adapter seems to work just fine in this bridge, even the FCODE seems compatible with the Beige G3.
 

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
setenv input-device and output-device to serial port (ttya or scca whatever is in devalias) before booting. Connect using serial port. Then try. Also, use the (install-console) stuff in nvramrc to enable logging before probe-all.


The new firmware for Old World Macs works in the QS G4?


I use nvflash v5.95.0.1 in Windows 10 #26
I think I need a version prior to 5.127 as they removed the erase EEPROM feature.
 

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
Yes, it booted to video just fine, I didn't test further, but I will later. No reason to believe it won't work fully.
The 7800GT worked when connected to my B&W G4. I used a 64 bit 33MHz slot to connect the Netstor NA255A which had the 7800GT and some Thunderbolt add-in cards installed. I kept the 9200 in the 32 bit 66 MHz slot.

I used a nvramrc patch for Open Firmware 3.1.1 to enable all the slots of the Netstor (since Apple Open Firmware only supports device numbers 0x00 - 0x0F from PCI bridges instead of 0x00 - 0x1F).

UPDATE: The patches are in the attached "pci-pci-config patch.4th" file.

The patch for New World Macs is much simpler than for Old World Macs (below) since the fcode images are already in RAM (because New World Macs decompress parts of ROM into RAM). Open Firmware 3.1.1 decompresses to 0x00200000 and its PCI Bridge device class fcode driver begins at 0x002413C8.
Search for "version for Open Firmware 3.1.1" in "pci-pci-config patch.4th".

For Open Firmware 1.0.5, the version 1 of the patch moves a page of ROM to RAM and patches that.
Search for "version 1 for Open Firmware 1.0.5".
The preferred patch is "version 3 for Open Firmware 1.0.5"

I booted into Mac OS X 10.4.11 and did some OpenMark benchmarks (see attached). A Quad G5 has score 9331 for 1920x1080 while the B&W G4 has a score of 7372 and the Radeon 9200 is 1179.

The PCI tab in System Information.app seems to show only 20 PCI devices. Most of them were PCI bridges (from the PCI-PCIe bridge, the Thunderbolt add-in cards, and the Netstor's PCIe-PCIe bridge). I think later versions of System Information.app hide PCI bridges. All the devices are visible in ioreg and IORegistryExplorer.app.

Here's what device-tree looks like in the Power Mac 8600 (replaced the 7800GT with an NVMe so that probe-all will complete successfully)
Code:
/bandit@F2000000
  /gc@10
  /pci106b,1@B                 
  /pci-bridge@D             \ 12D8:E111 StarTech PCI to PCIe bridge
    /pci-bridge@0           \ 10B5:8747 upstream for Netstor
      /pci-bridge@8         \ 10B5:8747 downstream for Netstor
        /pci-bridge@0       \ 8086:15ea upstream for Titan Ridge
          /pci-bridge@0     \ 8086:15ea downstream for Titan Ridge NHI
            /pci2222,1111@0 \ 8086:15eb JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018]
          /pci-bridge@1     \ 8086:15ea downstream for thunderbolt port
          /pci-bridge@2     \ 8086:15ea downstream for Titan Ridge USB
            /pci2222,1111@0 \ 8086:15EC JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018]
          /pci-bridge@4     \ 8086:15ea downstream for thunderbolt port
      /pci-bridge@9         \ 10B5:8747 downstream for Netstor
        /pci-bridge@0       \ 8086:1136 upstream for Maple Ridge 
          /pci-bridge@0     \ 8086:1136 downstream for Maple Ridge NHI
            /pci8086,0@0    \ 8086:1137 Thunderbolt 4 NHI [Maple Ridge 4C 2020]
          /pci-bridge@1     \ 8086:1136 downstream for Maple Ridge Thunderbolt port
          /pci-bridge@2     \ 8086:1136 downstream for Maple Ridge USB
            /pci8086,1138@0 \ Thunderbolt 4 USB Controller [Maple Ridge 4C 2020]
          /pci-bridge@3     \ 8086:1136 downstream for Maple Ridge Thunderbolt port
      /pci-bridge@10        \ 10B5:8747 downstream for Netstor
        /pci1987,5016@0     \ E16 PCIe4 NVMe Controller
      /pci-bridge@11        \ 10B5:8747 downstream for Netstor
                            \ hidden Alpine Ridge needs extra code to unhide it

I ordered a new Keyspan USA-28X USB to 8pin Mini DIN adapter, never was able to get my old one to work.
You don't need to install the Keyspan USB driver if you use Serial.app. Serial.app includes text pacing options so that you can paste lots of text without the destination loosing some bytes. The text pacing also works with telnet which is what you would use to access Open Firmware of New World Macs that don't have serial.

My LSI PCI-E SATA/SAS adapter seems to work just fine in this bridge, even the FCODE seems compatible with the Beige G3.
Yeah, I don't know why some PCIe devices like the 7800GT aren't reliable when accessed from Old World Macs.

I think I need a version prior to 5.127 as they removed the erase EEPROM feature.
What's the difference between erase and writing a blank firmware?
You can take my fcode file and delete everything after the Nvidia soft straps stuff (except fcode-end and pci-end), then use toke to create a rom and flash that? You can add a device-name. Add some logging. Whatever you like with 128K of ROM space to play with. Use a different name to make sure Nvidia driver doesn't match to it (though it might match by device ID and vendor ID but I don't think it matters since it will be missing all the other required properties).

I don't think there should be a problem with the device showing up. I've been testing the 7800GT with a debugging fcode image that logs lots of stuff so I know it gets detected and its ROM gets loaded and executed. It fails during setup which involves reading/writing to some registers in BAR 0 (≈49000 of these but it only completes some of them). Maybe it's a timing issue, but the 33 MHz slot in my B&W G3 where the setup succeeds is the same speed as the slot in my PM8600 where the setup fails. Maybe I should try adding additional delays to the fcode?
 

Attachments

  • OpenMark Tiger B&W G4 1GHz benchmarks.zip
    172.6 KB · Views: 29
  • pci-pci-config patch.4th.zip
    1.8 KB · Views: 4
Last edited:

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
F*ck yeah! pleased to report after knuckling down and manually typing it out into my G3 blue and white im very pleased to say it works perfectly!

and has gotten the Quadro FX 4500 to work with my Janky PCI to PCIe setup in it :) (I must of messed something out when I initially tried this with my FW800 MDD and its patch)

its completely bottlenecked to buggery but its so fun to see such a powerful video card working perfectly with such a system :)

View attachment 2099728

View attachment 2099729
What PCI to PCI-E breakout are you using there?
 

joevt

macrumors 604
Jun 21, 2012
6,971
4,262
What PCI to PCI-E breakout are you using there?
It's probably a StarTech PCI to PCIe bridge in the B&W G3 slot (33 or 66 MHz? The StarTech product page implies that the bridge is limited to 33MHz).
Connected to the PCI to PCIe bridge is a PCIe x1 to USB 5 Gbps Type A adapter. A USB 5 Gbps Type A Male/Male cable connects from the PCIe x1 adapter to a PCIe x16 riser (x1 electrical) which gets slot power from a molex connector from the Mac. The GPU gets GPU PCIe power from a separate power supply.

I had the same setup with my Power Mac 8600 until I switched to the Netstor. The Netstor was connected via PCIe x8 external cable to a x16 adapter connected to the riser which was connected to the PCI to PCIe bridge with a USB 5 Gbps Male/Male cable.

In the B&W G3, I connect the x16 adapter directly to the PCI to PCIe bridge (without the riser) but the B&W G3 door cannot be fully closed that way.
 
  • Like
Reactions: LightBulbFun

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
It's probably a StarTech PCI to PCIe bridge in the B&W G3 slot (33 or 66 MHz? The StarTech product page implies that the bridge is limited to 33MHz).
Connected to the PCI to PCIe bridge is a PCIe x1 to USB 5 Gbps Type A adapter. A USB 5 Gbps Type A Male/Male cable connects from the PCIe x1 adapter to a PCIe x16 riser (x1 electrical) which gets slot power from a molex connector from the Mac. The GPU gets GPU PCIe power from a separate power supply.

I had the same setup with my Power Mac 8600 until I switched to the Netstor. The Netstor was connected via PCIe x8 external cable to a x16 adapter connected to the riser which was connected to the PCI to PCIe bridge with a USB 5 Gbps Male/Male cable.

In the B&W G3, I connect the x16 adapter directly to the PCI to PCIe bridge (without the riser) but the B&W G3 door cannot be fully closed that way.
That's what I was wondering, if it was a PCI to PCI-E card then a PCI-E breakout box, because I can't find a PCI to PCI-E that has that USB breakout so we can close the case.

Funny his screen shots don't show the extra bridge, but I guess the braakout card does not need a bridge chip?

I'm thinking of getting this one:



Appears to have some sort of bridge, likely because it can drive 4 external 16x slots?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.