Success.
You rule @joevt !! we are able to use the flashed NV evga 6200 PCI 512 card!
Sorry for the delay on answering, I was not able to get the 3.6V batt for the logical board until yesterday, it was empty the original one
After several hours on telnet, we got to insert the nvramrc by means of nvedit as it was meant.
it was kind of difficult to understand the behaviour of inserting the <cr> string, for carriage return.
The nvramrc looks correct as the one You shared for PowerMac G5 1.6 PCI board.
We could again insert and fix with the screw the card, and rightnow the fans are not getting loud, and the systems boot fine 10.5 and 10.6 beta.
Many many thanks, for your quick and great support.
I'll try to test in on the next few days, but it seems to work fine.
If any debugging information or dump is needed, for sure I can try to add it to the thread.
All the best!!! PowerPc computer upgraded. Kind regards.
I have an old Power Macintosh G3 Minitower (266 Mhz) and I'm looking to install a GPU upgrade so the G3 can output higher resolution video at higher color depths. However, I don't know of any specs for what the max working graphics card specs (mainly VRAM) work for a beige G3. All I know is that the GPU would be installed in a PCI slot. Does anyone know of the maximum graphics card requirements for beige G3s? I could use those to search for graphics cards that would work (preferrably ATI since Apple used graphics cards from them back in the late 90s and early 2000s).
Simple Answer
Radeon cards works in all PCI Macs but don't support Core Image. #2
Quartz Extreme may be enabled manually. #6
Nvidia cards that support Core Image can work if their PCI ROM is modified for Old World Macs (see below). #2
When a GPU that supports Core Image exists, Core Image will be enabled for all GPUs #482 .
Quartz Extreme is enabled by default. #6
GeForce 5200
GeForce 5500
GeForce 6200 - PNY GeForce 6200 PCI, flashed and working fine in G4 towers. #32 #66 #68 #101 #223
Modified ROMs #17b for those two which should work in all versions of Apple Open Firmware (not suitable for OpenBIOS unless it implements us for microsecond delays): #415
Modified ROM #18,19 for @domii's BFG 6200 bfgr62256ocp: #436 (may require nvstrap/clocks modification #446 ) -> #449 -> #450
Modified ROM #20 for @DearthnVader 's EVGA 6200 512MB (512P1N402LR) (for all versions of Apple Open Firmware) #656
Modified ROM #26 from Mac Edition, 64KB compressed and 128KB uncompressed versions (modified for all versions of Apple Open Firmware but only tested in Quad G5) : #28
GeForce 7800 GTX
Benchmarks
While OpenMark-results are more or less resolution independent, those of OpenGL Extensions Viewer depend very much on the settings! So only same settings (resolution, color-depth etc.) can be compared to each other. Settings used are: Given resolution and color depth, Fullscreen, Standard-Framebuffer, anything else turned off. Also using the same version of the app is recommended, if results shall be compared. The respective versions of OpenGL Extensions Viewer for testing can be downloaded from post #718.
OpenGL Extensions Viewer 3.0 or 3.1.1 (OpenGL 1.1 scores)
xbench 1.3 (OpenGL Graphics Test - Spinning Squares)
18.22 - 23.12 fps - GeForce 6200
11.36 - 11.36 fps - Radeon 9200
PCI Adapters
There exist adapters that may allow using PCIe/AGP/PCI-X/PCI cards in a different kind of slot. #228 #233 #237
PCI to AGP - Use an AGP card (e.g. Radeon 9800) that doesn't use AGP features in a PCI slot #38 #346
AGP to PCI - Use a PCI card in an AGP slot.
PCIe to AGP - Use an AGP card in a PCIe slot.
PCIe to/from PCI - PLX PEX8111 or PLX PEX8112 or IDT Tsi381 has PCIe 2.5 GT/s x1, 32-bit 33 MHz. The IDT has better performance than the PEX8111.
PCIe to PCI - Use a PCI card in a PCIe slot. ASMedia ASM1083 has PCIe 2.5 GT/s x1, 32-bit 33 MHz (forward only).
PCI to PCIe - Use a PCIe card (e.g. GeForce 7800 GT or Quadro FX 4500) in a PCI slot. #133
PCIe to/from PCI-X - PI7C9X130 or PLX PEX8114 has PCIe 2.5 GT/s x4, PCI-X 64-bit 133 MHz. #704
PCI-X should also allow PCI
PCI Speeds
PCI
- 32-bit 33 MHz = 133 MB/s - original PCI Power Macs (7500, 8500, 9500, 9600, etc)
- 32-bit 66 MHz = 267 MB/s - Power Mac G3 (Blue & White), Power Mac G4 (PCI Graphics)
- 64-bit 33 MHz = 267 MB/s - Power Mac G3 (Blue & White), Power Mac G4, Power Mac G5 (PCI)
- 64-bit 66 MHz = 533 MB/s
AGP
- 32-bit 66 MHz 1X = 267 MB/s
- 32-bit 66 MHz 2X = 533 MB/s - Power Mac G4 (AGP Graphics), G4 (Gigabit)
- 32-bit 66 MHz 4X = 1067 MB/s - Power Mac G4 (Digital Audio), G4 (Quick Silver), G4 (Quick Silver), G4 (MDD), G4 (FW 800)
- 32-bit 66 MHz 8X = 2133 MB/s - Power Mac G5 (PCI), Power Mac G5 (PCI-X)
PCI-X
- 32-bit 100 MHz = 400 MB/s
- 32-bit 133 MHz = 533 MB/s
- 64-bit 100 MHz = 800 MB/s - Power Mac G5 (PCI-X)
- 64-bit 133 MHz = 1067 MB/s - Power Mac G5 (PCI-X)
PCI-X 2.0
- 32-bit 266 MHz = 1067 MB/s
- 32-bit 533 MHz = 2133 MB/s
- 64-bit 266 MHz = 2133 MB/s
- 64-bit 533 MHz = 4267 MB/s
PCIe
- 2.5 GT/s x1 = 250 MB/s - Power Mac G5 Dual or Quad Core
- 2.5 GT/s x2 = 500 MB/s
- 2.5 GT/s x4 = 1000 MB/s - Power Mac G5 Dual or Quad Core
- 2.5 GT/s x8 = 2000 MB/s - Power Mac G5 Dual or Quad Core
- 2.5 GT/s x16 = 4000 MB/s - Power Mac G5 Dual or Quad Core
- 5.0 GT/s x16 = 8000 MB/s
...
PCI ROM Modifications
Power Macs use Open Firmware in their Boot ROM. Old PCs use BIOS. Intel Macs and newer PCs use UEFI.
A PCI card (this includes AGP and PCI-X and PCIe) contains a ROM that has one or more PCI Expansion ROM images. Each image has a type (BIOS, Open Firmware, EFI).
Any GPU that is going to work in a Power Mac requires a ROM that contains an Open Firmware image (also called FCode ROM).
Nvidia cards with 256 MB VRAM like the GeForce 6200 can be used, but they need modifications to their FCode ROMs to work with Old World Macs #386 . Example modified ROMs are linked above.
Old Worlds Macs are those with Open Firmware version 1.x or 2.x. New World Macs have Open Firmware 3 or 4. For Power Macs with Open Firmware 1.0.5, 256 MB doesn't work without the nvramrc patches that are usually added automatically by Mac OS 9 or Mac OS X or XPostFacto. This means the card could stop working after zapping the PRAM until you successfully boot into the Mac OS again.
...add links to XPostFacto nvramrc patches...
Nvidia cards with 512 MB VRAM only work with New World Macs that have Boot ROMs created September 23 2004 or later unless an nvramrc patch is used (with the modified FCode ROM in the case of Old World Macs). #460 #483
Is 512 MB VRAM useful? In some cases, yes #707 . Use OpenGL Driver Monitor to view the VRAM usage. #482
The nvramrc patch depends on the version of Open Firmware:
nvramrc Patches for PowerPC Macs to support GPUs up to 512MB
for Power Mac 7500, 8500, 9500, 8600, 9600, Power Tower Pro, ...
The patch requires all the other map-in and map-out fixes from the Mac OS 9 or Mac OS X default nvramrc.
The default nvramrc added support 256MB BAR (up from 128MB). It should include:
- the helper functions (or aliases) $R and & (so you can remove those from my patch here).
- the mmr replacement (with mi) for fcode 89B map-range
- the two patches for fcode 8cb (map-in) which uses mcm and y
- the two patches for fcode 8c9 (allocate-addresses) which uses maaNote:maa needs to have 1D changed to 1E to support 512MB BAR.
- the patch for fcode 8cd probe-alloc
- the patch for fcode 8cc (map-out) which uses z.
- the patch for fcode 8c6 (alloc-mem-addr). This patch is separate from my patch of the same fcode.
(those names are from the XPostFacto nvramrc which may differ from the Mac OS 9 or Mac OS X version).
It reserves 2000 MB at the start instead of just 256 MB at a time so the first 5 lines for the patch for fcode 96e (alloc-mem-addr) might not be required.
The patch for fcode 971 (allocate-addresses) allows 512MB BARs to be included in assigned-addresses property.
Code:
: $R BRpatch ;
: & get-token drop ;
defer mr 944 & to mr
: m5 { m } dup 1 1c << mr 1 1c << + m 4+ ! 0 ;
96e & dup 3c + ' m5 44 + swap $R 9c + ' m5 c + $R
1e 971 & 1c + code!
for Power Mac 4400 and 7220 and some Motorola StarMax
Code:
: $R BRpatch ;
: & get-token drop ;
defer mr 940 & to mr
: m5 { m } dup 1 1c << mr 1 1c << + m 4+ ! 0 ;
96a & dup 3c + ' m5 44 + swap $R 9c + ' m5 c + $R
1e 96d & 1c + code!
for Power Mac 5500, 6500, and TAM
It includes a patch that changes the order of PCI slot probing. It probes the ATI GPU (device @12) last instead of first. This fixes a problem where Open Firmware would not probe devices behind a PCI bridge (e.g. the USB and FireWire and ATA controllers of a Sonnet Tempo Trio). The patch should work with any such PCI card (the patches from Sonnet only worked with specific Sonnet cards). See #232
Quadro FX 4500 512MB in G3 (Blue & White) #651 (using PCI to PCIe adapter)
EVGA 6200 512MB (512P1N402LR) in Beige G3 may have problems #686
Notes
The default nvramrc stored by Mac OS 9 or Mac OS X may already have parts of the provided patches (such as : $R BRpatch ;).
Since Mac OS 9 or Mac OS X may overwrite the nvramrc, you may want to include the patch in the Ofpt resources that the nvramrc contents originate from. #465 #475 #477
For some unknown reason, (allocate-addresses) for firmwares starting from September 2005 (such as for G5 Quad) loops through BARs by size in reverse order (starting from 512MB) when there's a 512MB BAR. I did not include that change in these patches. (allocate-addresses) for older Macs always loops from small (16 bytes) to large (128MB originally for OF 1.0.5, then 256MB with the OF 1.0.5 Mac OS 9/Mac OS X nvramrc patch, then 256MB for OF 2.0 and later, now 512MB with this patch or for firmwares starting from September 2004.
Open Firmware 3 is used by Macs with G3 or G4. Open Firmware 4 is used by Macs with G5. Both Open Firmware versions continued to be developed in parallel until their last versions created around at least the end of September 2005 or beginning of October 2005. Open Firmware 3 has versions 4.x.x while Open Firmware 4 has versions 5.x.x. #627
Troubleshooting
Test the patch without the 512MB GPU. The Power Mac should boot into Mac OS 9 or Mac OS X.
Provide output from dev / ls unselect-dev " devalias" evaluate " printenv" evaluate dump-device-tree words. This will provide info about the hardware and some info about the Open Firmware environment. printenv outputs nvramrc only in some versions of Open Firmware. If the words we want to patch are not in the words output, then the get-token method of finding the words to patch will be used.
For a specific GPU device the output of .properties before and after the patch may be interesting. In particular, we want to see a BAR in the reg and assigned-addresses properties with size of 20000000 or larger.
Provide a rom dump (4MB for Old World Macs and 1MB for New World Macs #88 #95 ). A rom dump gives access to fcode images which can be translated to Open Firmware Forth code for easier readability. It will include visible and invisible forth word definitions. A rom dump will also include nvramrc contents. See "Dumping the New World Rom.txt" in the attachment at #137 . Also see #682 .
Some Mac ROMs:
Mac Open Firmware disassemblies and Forth code: #543
Provide a Open Firmware dictionary dump. See #137 #506 #682 . The fcode images are compiled into the Open Firmware dictionary as PowerPC instructions. The patches modify the PowerPC instructions in the Open Firmware dictionary.
Have a method of zapping the pram ready (how do you zap the pram of B&W G3 if the keyboard's not working? unplugging the power and battery for awhile should work).
List of Open Firmware versions
Code:
√ = got it
x = got broken?
- = don't got it
============================================================================================================================================================================================================================================================
BAR Boot Boot Boot Boot Boot Sound
Mac OF version ATY,Fcode versions max FW USB SATA SCSI-X GPT Arch Notes
============================================================================================================================================================================================================================================================
√ TNT Development A5c1 Open Firmware, 0.992j None 128 No No No No No
√ 7500,9500,8600,9600,Power Tower Pro, etc. Open Firmware, 1.0.5 None 128 No No No No No 256MB BAR requires Mac OS 9 or Mac OS X nvramrc patches (see PowerSurge.of of joevt/XPostFacto for documentation of patches)
√ Apple Network Server ANS 500 OpenFirmware1.1.22 None 128 No No No No No
√ Power Mac 5400,6400, UMAX SuperMac C600 Open Firmware, 2.0 None 256 No No No No No
√ Beige G3 Desktop Open Firmware, 2.0f1 1.49, 1.49 256 No No No No No
√ Beige G3 Minitower Open Firmware, 2.0f1 1.49, 1.53 256 No No No No No
√ PowerBook G3 3400c Open Firmware, 2.0.1 None 256 No No No No No
√ PowerBook G3 Kanga Open Firmware, 2.0.1 None 256 No No No No No AAPL,3500
√ PowerBook G3 Wallstreet Open Firmware, 2.0.1 1.54 256 No No No No No
√ PowerBook G3 Wallstreet PDQ Open Firmware, 2.0.1 1.54, 1.59 256 No No No No No
√ Power Mac 4400 and 7220, Motorola StarMax Open Firmware, 2.0.2 APL-1.0b33 256 No No No No No
√ Power Mac 6500,TAM Open Firmware, 2.0.3 APL-1.0b33 256 No No No No No
x Power Express Open Firmware 2.0a9 None 256 No No No No No
x Power Express Open Firmware 2.3 None 256 No No No No No
√ Beige G3 (v3) Open Firmware, 2.4 1.49, 1.53 256 No No No No No
√ Beige G3 (v4) Open Firmware, 2.4 1.49, 1.53 256 No No No No No
- iMac OpenFirmware 3 Open Firmware 3.0.f8 ? ? ? ? No No No Apple iMac built on 08/06/98 at 12:04:16
- iMac OpenFirmware 3 Open Firmware 3.0.b2 ? ? ? ? No No No Apple iMac built on 09/17/98 at 15:19:23
- iMac OpenFirmware 3 Open Firmware 3.0.f3 ? ? ? ? No No No Apple iMac built on 12/02/98 at 10:25:41
- iMac OpenFirmware 3 Open Firmware 3.0.f9 ? ? ? ? No No No Apple iMac built on 02/03/99 at 16:45:21
- iMac OpenFirmware 3 Open Firmware 3.0.f10 ? ? ? ? No No No Apple iMac built on 03/05/99 at 21:14:19
- iMac OpenFirmware 3 Open Firmware 3.0.f1 ? ? ? ? No No No Apple iMac built on 04/01/99 at 16:47:10
√ PowerBook G3 Bronze Keyboard (Lombard) OpenFirmware 3 1.63 256 No No* No No No Apple PowerBook1,1 1.0f1 BootROM built on 04/06/99 at 10:21:59
√ Power Mac G3 (Blue & White) Yosemite OpenFirmware 3.1.1 None 256 No No No No No Apple PowerMac1,1 1.1f4 BootROM built on 04/09/99 at 13:57:32
√ Power Mac G4 (PCI Graphics) Yikes OpenFirmware 3.1.1 None 256 No No No No No Apple PowerMac1,2 1.2f2 BootROM built on 08/19/99 at 21:36:38
√ iMac G3 (233 MHz) (Bondi Blue) OpenFirmware 3 Open Firmware 3.0.f2 1.63, 1.64 256 No No No No No Apple iMac 1.3f2 built on 04/23/99 at 14:31:03
√ iMac G3 (266/333 MHz) (patched) OpenFirmware 3 Open Firmware 3.0.f2 1.63, 1.64 256 No No No No No Apple iMac 1.3f2 built on 04/23/99 at 14:31:03
√ iMac G3 (266/333 MHz) OpenFirmware 3 Open Firmware 3.0.f3 1.63, 1.64 256 No No No No No Apple iMac 1.3f3 built on 07/16/99 at 12:15:09
√ Firmware Updater 3.2.4f1 OpenFirmware 3 1.69, 1.69, 1.71 256 Yes Yes No No No * 2.4f1 BootROM built on 02/18/00 at 09:44:35 (3.2.4f1)
√ Power Mac G4 (AGP Graphics) Sawtooth OpenFirmware 3 1.69, 1.69, 1.71 256 Yes Yes No No No Apple PowerMac3,1 2.4f1 BootROM built on 02/18/00 at 09:44:51 (3.2.4f1)
√ Firmware Updater 3.2.7f2 OpenFirmware 3 1.69, 1.69, 1.71 256 Yes Yes No No No * 2.7f2 BootROM built on 08/13/00 at 10:41:50 (3.2.7f2)
- Summer 2000 iMac DV+ (450MHz) OpenFirmware 3 ? ? ? Yes No No No Apple PowerMac2,2 3.0f3 BootROM built on 06/13/00 at ??:??:?? (3.3.0f3)
√ Power Mac G4 Cube OpenFirmware 3 1.69, 1.69, 1.73, 1.74 256 Yes Yes No No No Apple PowerMac5,1 3.2f1 BootROM built on 07/10/00 at 17:11:57 (3.3.2f1)
√ Power Mac G4 (Digital Audio) OpenFirmware 3 1.69, 1.69, 1.73, 1.75, 1.75 256 Yes Yes No No No Apple PowerMac3,4 4.1.0f1 BootROM built on 12/04/00 at 19:29:52
√ Firmware Updater 4.1.7f4 OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No * 4.1.7f4 BootROM built on 03/20/01 at 17:20:48
√ iBook G3 OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No Apple PowerBook2,1 4.1.7f4 BootROM built on 03/20/01 at 17:20:48
√ Firmware Updater 4.1.8f5 OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No 0x0e+0x12 * 4.1.8f5 BootROM built on 03/21/01 at 11:49:53
√ PowerBook G3 (FireWire) Pismo OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No 0x0e+0x12 Apple PowerBook3,1 4.1.8f5 BootROM built on 03/21/01 at 11:49:53
√ Firmware Updater 4.1.9f1 OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No 0x0e+0x12 * 4.1.9f1 BootROM built on 09/14/01 at 13:18:04
√ iMac G3 (Slot Loading) OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No 0x0e+0x12 Apple PowerMac2,1 4.1.9f1 BootROM built on 09/14/01 at 13:18:04
√ Power Mac G4 Cube OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No 0x0e+0x12 Apple PowerMac5,1 4.1.9f1 BootROM built on 09/14/01 at 13:18:04
- Power Mac G4 (Quicksilver) OpenFirmware 3 ? ? ? ? No No No Apple PowerMac3,5 4.2.3f1 BootROM built on 08/01/01 at 11:14:42
√ Power Mac G4 (Quicksilver) OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.79, 1.81, 1.77 256 Yes Yes No No No Apple PowerMac3,5 4.2.5f1 BootROM built on 08/16/01 at 22:19:35
√ Firmware Updater 4.2.8f1 OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No 0x0e+0x12 * 4.2.8f1 BootROM built on 10/11/01 at 14:12:47
√ Power Mac G4 (AGP Graphics) Sawtooth OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No 0x0e+0x12 Apple PowerMac3,1 4.2.8f1 BootROM built on 10/11/01 at 14:12:47
- Power Mac G4 (Gigabit Ethernet) OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No Apple PowerMac3,3 4.2.8f1 BootROM built on 10/11/01 at 14:12:47
√ Power Mac G4 (Digital Audio) OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.77 256 Yes Yes No No No Apple PowerMac3,4 4.2.8f1 BootROM built on 10/11/01 at 14:12:47 ; last version with only 12 bit fcode numbers
√ Firmware Updater 4.2.9f1 OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.79, 1.82 256 Yes Yes No No No * 4.2.9f1 BootROM built on 11/20/01 at 14:31:20 ; first version with 16 bit fcode numbers
√ iMac G4 OpenFirmware 3 1.69, 1.69, 1.73, 1.77, 1.82, 1.83, 1.83 256 Yes Yes No No No Apple PowerMac4,2 4.4.0f1 BootROM built on 04/08/02 at 22:45:14
√ iMac G4 17 inch OpenFirmware 3 1.73, 1.77, 1.83, 1.86, 1.86 256 Yes Yes No No No Apple PowerMac4,5 4.4.5f3 BootROM built on 07/23/02 at 13:58:33
√ Firmware Updater 4.4.8f2 OpenFirmware 3 1.73, 1.77, 1.83, 1.86, 1.86 256 Yes Yes No No No 0x0e+0x12 * 4.4.8f2 BootROM built on 09/30/02 at 10:24:31
√ Power Mac G4 (Mirrored Drive Doors) OpenFirmware 3 1.73, 1.77, 1.83, 1.86, 1.86 256 Yes Yes No No No 0x0e+0x12 Apple PowerMac3,6 4.4.8f2 BootROM built on 09/30/02 at 10:24:31
- iBook G3 (Snow) OpenFirmware 3 ? ? ? ? No No No Apple PowerBook4,1
- iBook G3 (Snow) OpenFirmware 3 ? ? ? ? No No No Apple PowerBook4,2
√ iBook G3 (Snow) OpenFirmware 3 1.83, 1.87 256 Yes Yes No No No Apple PowerBook4,3 4.5.4f1 BootROM built on 11/11/02 at 16:06:29
√ Power Mac G4 (FW 800) OpenFirmware 3 None 256 Yes Yes No No No Apple PowerMac3,6 4.5.7f1 BootROM built on 01/15/03 at 15:14:50
√ Power Mac G4 (FW 800) OpenFirmware 3 None 256 Yes Yes No No No 0x0e+0x12 Apple PowerMac3,6 4.6.0f1 BootROM built on 02/20/03 at 13:52:27
√ PowerBook G4 1.0 GHz 17 inch (Aluminum) OpenFirmware 3 None 256 Yes Yes No No No Apple PowerBook5,1 4.6.2f1 BootROM built on 02/18/03 at 14:40:21
√ iBook G3 (Snow) OpenFirmware 3 1.83, 1.87 256 Yes Yes No No No Apple PowerBook4,3 4.6.4f1 BootROM built on 03/15/03 at 10:16:09
- iMac G4/1.0 17" (Flat Panel) OpenFirmware 3 ? ? ? ? No No No Apple PowerMac6,1 4.6.8f4 BootROM built on 08/22/03 at 13:45:20
√ Firmware Updater 5.1.4f0 OpenFirmware 4 None 256 Yes Yes Yes No No * 5.1.4f0 BootROM built on 11/21/03 at 17:41:48
√ Firmware Updater 5.1.5f2 OpenFirmware 4 None 256 Yes Yes Yes No No * 5.1.5f2 BootROM built on 09/21/04 at 11:58:53
√ Power Mac G5 1.6 (PCI) OpenFirmware 4 None 256 Yes Yes Yes No No 0x0e+0x12 Apple PowerMac7,2 5.1.5f2 BootROM built on 09/21/04 at 11:58:53
√ iBook G4 (Early 2004) OpenFirmware 3 1.92 512 Yes Yes Yes No No Apple PowerBook6,5 4.8.5f0 BootROM built on 04/06/04 at 16:22:09
- Power Mac G5 1.8 (PCI-X) OpenFirmware 4 ? ? ? ? ? ? No Apple PowerMac7,2
- Power Mac G5 2.0 DP (PCI-X) OpenFirmware 4 ? ? ? ? ? ? No Apple PowerMac7,2
- Power Mac G5 1.8 DP (PCI-X) OpenFirmware 4 ? ? ? ? ? ? No Apple PowerMac7,2
√ Firmware Updater 5.1.7f1 OpenFirmware 4 1.91, 1.92 512 Yes Yes* Yes Yes No * 5.1.7f1 BootROM built on 08/25/04 at 15:11:09
√ iBook G4 OpenFirmware 3 1.94 512 Yes Yes* Yes Yes No 0x0e+0x12 Apple PowerBook6,5 4.8.7f1 BootROM built on 09/23/04 at 16:13:38
√ Firmware Updater 5.1.8f7 OpenFirmware 4 1.91, 1.92 512 Yes Yes* Yes Yes No * 5.1.8f7 BootROM built on 10/26/04 at 16:30:32
- Power Mac G5 ? (one of the following 3) OpenFirmware 4 1.91, 1.92 512 Yes Yes* Yes Yes No Apple PowerMac7,3 5.1.8f7 BootROM built on 10/26/04 at 16:30:32
- Power Mac G5 1.8 DP (PCI) OpenFirmware 4 ? ? ? ? ? ? No Apple PowerMac7,3
- Power Mac G5 2.0 DP (PCI-X 2) OpenFirmware 4 ? ? ? ? ? ? No Apple PowerMac7,3
- Power Mac G5 2.5 DP (PCI-X) OpenFirmware 4 ? ? ? ? ? ? No Apple PowerMac7,3
- PowerBook G4 15 inch Early 2005 A1106 OpenFirmware 3 ? ? ? ? ? ? No Apple PowerBook5,6 4.9.1f1 BootROM built on 01/21/05 at 10:51:16
√ Mac mini G4 OpenFirmware 3 1.95 512 Yes Yes* Yes Yes No 0x0e+0x12 Apple PowerMac10,1 4.8.9f4 BootROM built on 03/23/05 at 14:22:23
√ Mac mini G4 1.5GHz Radeon 9200 OpenFirmware 3 1.95 512 Yes Yes* Yes Yes Yes 0x0e+0x12 Apple PowerMac10,1 4.9.4f1 BootROM built on 07/12/05 at 16:57:27 ; last firmware to always allocate BARs by ascending size
√ PowerBook G4 DLSD OpenFirmware 3 1.95 512 Yes Yes* Yes Yes Yes 0x0e+0x12 Apple PowerBook5,8 4.9.5f3 BootROM built on 09/22/05 at 16:17:32 ; allocates BARs by descending size when 512MB BAR exists
√ Power Mac G5 Quad OpenFirmware 4 None 512 Yes Yes* Yes Yes Yes 0x0e+0x12|0x12 Apple PowerMac11,2 5.2.7f1 BootROM built on 09/30/05 at 15:31:03 ; allocates BARs by descending size when 512MB BAR exists
√ PowerBook G4 DLSD (17 inch) OpenFirmware 3 1.95 512 Yes Yes* Yes Yes Yes 0x0e+0x12 Apple PowerBook5,9 4.9.6f0 BootROM built on 10/05/05 at 16:45:50
============================================================================================================================================================================================================================================================
- BARs are allocated by ascending size except where noted.
- Patches exist to support 512MB BARs on all Power Macs.
- sound-architecture is in the config-block (0x100 bytes at 0xfff03f00 in the ROM) at offset 0x0e in the 3 most significant bits. If that is 7 than the byte at 0x12 is added.
BAR max - search for (allocate-addresses) ; 1c = 128 MB; 1d = 256 MB; 1e = 512 MB
Boot FW - search for findandadd-block-fw
Boot USB - search for findandadd-block-usb ; Yes* = needs patch ; No* = Lombard doesn't have "usb-ms-class" package, but does have code to look for it.
Boot SATA - search for findandadd-block-sata
Boot SCSI extended - search for findandadd-block-scsi-extended
==============================================================================================================================================================================================================================================
NVStraps
Every Nvidia card is different. You may need to modify the Nvidia soft straps in the Open Firmware image using the same info from a BIOS image. #243
For 512MB VRAM, you may need to modify the Nvidia soft straps to make sure the BAR1 reports as 512MB. #578 #581
The soft straps has a checksum #586 . There are some bytes that are unknown #631 .
Here's a script for dumping soft straps and checksum from a ROM file #589 #594 #601 .
The ROM code creates an NVDA,BMP property which contains performance info. This may also need to be updated #32 . Check the ROM Maker thread. #430
Use the nvedit command in Open Firmware. There are special keys for navigation #185 . Type Control-C when done. Type nvstore to save changes. See below for more nvramrc notes.
Disabling a PCI device
You may find it useful to disable the onboard graphics. This can be done by setting pci-probe-list. #11 #15 #18 #20 #156 XPostFacto might reset pci-probe-list #22 Therefore, you may want to put the setenv command in the nvramrc #29 . XPostFacto may change the nvramrc, so you may want to put the setenv command in the OFpt resource of XPostFacto where the nvramrc originates. #24 #25 Or maybe you don't have to #26 . Or maybe you do #58 #61 #87 .
The setting is renamed pci-probe-mask on New World Macs. #28 #137 #158
There exists pci-probe-history in some versions of Open Firmware. Bits can be set to cause probe-all to skip or redo a device. #49
OS Support
The ROM of a Power Mac PCI card has an Open Firmware image which contains code for outputting video to a display connected to the GPU while in the Open Firmware environment.
Power Mac GPUs may include a NDRV in the Open Firmware image which contains code that is used by Mac OS 9 or Mac OS X for outputting video to a display connected to the GPU while in the OS environment. If it doesn't include an NDRV, then one from the OS may be used. The OS might not have an NDRV to use. #409 #455 #470 #472
Additional code is required in the OS for 3D acceleration, etc. You may need to run an Nvidia or Radeon installer for anything that is not included in the OS. #13
In a New World Mac, the Mac OS 8.6 TBXI Version 2.5.1 won't work with a GeForce FX 5200 or 6200 so I'd not be surprised if the even older Old World TBXI's also don't work so Mac OS 9 not booting may be a separate issue. #389 #194
New World Macs running Mac OS 9.2 should have no problem with the 6200 or 6600GT AGP (except there's no acceleration though). #391 #392 #411
Old World Macs have no boot picker, so holding the Option key just load defaults. #394
For 6200, I get CI support as long as I don't connect a display to an AGP CI supported card when I'm using the PCI card too. Seems to be a bug in OS X. #401
In my brief testing with a G3 Blue & White a few years ago, you can boot 10.4.11 with a GeForce 6200 with a G3 CPU, but some 3D applications may fall over and die IIRC #408 .
One further quick note after "using" the Beige with the 6200 for a few days now:
- Dual displays works fine!
- If the Mac was turned off for some time, at the first attempt it allmost allways boots into a black screen. A second boot, either by holding the power button to hard shut down or rebooting via Screen Sharing when fully booted, usually brings it back to life. #425 #474
CPU Support
A G4 may be required for OpenGL with the GeForce 6200. #458
Open Firmware Tools
In Open Firmware
Some newer versions of Open Firmware may have a fcode-verbose? option to help debugging Open Firmware code. The way to use it is not documented. #40 Instead, Trace for Open Firmware was created. It works in all versions of Apple's Open Firmware. This has evolved starting from #123 #331 #356 #361
lspci for Open Firmware can list all PCI devices in Open Firmware for the currently selected PCI root. It extracts all PCI configuration space values and tests all the BARs. A bash script can interpret the results using lspci from pciutils. This has evolved starting from #50 #55 #64 #87 #97 #144 #273 #565
Sawtooth with 6800 xt on AGP, 6200 on the second of the PCI slots, a SATA controller on the last one #150
list-partitions - lists partitions of a hard disk in Open Firmware. #222 #225
dump-fields - list fields of some structures in Open Firmware. #25
detok - from OpenBIOS - modified for Mac Boot ROM or PCI expansion ROM dumping.
toke - from OpenBIOS - modified for creating PCI Expansion ROMs from Open Firmware code. #129
lzss - from Apple Open Source - modified for decompressing Open Firmware stuff from New World Macs. #147 #151
DumpMacRom.sh dumps the Open Firmware parts of Mac ROMs (both Old World and New World).
DumpPCIRom.sh converts PCI Expansion ROM to Open Firmware Forth code which can be converted to FCode using toke #129 . The script can also extract individual images and concatenate them into a single expansion ROM #643 #720 .
dingusppc is a new emulator currently in development. I don't think it boots into Mac OS 9 or Mac OS X yet but it is useful for doing Apple Open Firmware testing. It works with Open Firmware 1.0.5, 2.0f1, and 2.4. I used it to develop some of the Open Firmware tools. #88 #117 #120 #124
Connecting to Open Firmware
Connect to the Power Mac that will be running Open Firmware using serial or telnet #54 so you can paste commands from the other Mac or copy the output of Open Firmware commands.
Telnet only works with newer Power Macs (G4 and later) that have a telnet package. #60 #130 #131
The Terminal.app doesn't have useful text pacing options so you may need to copy commands one line at a time #574 .
The default baud rate is 38.4Kbps but you can set 57.6Kbps. A nvramrc patch can be used to get 115.2 Kbps or 230.4 Kbps #64 #70 #76 #90 #107 #110 #112 . The patch depends on the version of Open Firmware.
Some Power Macs with a serial controller don't have a serial port. You may be able to install an adapter attached to an internal modem port. #615
For modern Macs that you want to connect to the Power Mac that is running Open Firmware, you can use a USB to serial adapter. These will be limited to 115.2Kbps. #196
In New World Macs, you can load files in Open Firmware from HFS+ formatted hard disk partitions.
In Old World Macs, this might be possible from FAT formatted floppy disks #59 #73 or from IDE CD-ROM drive with ISO9660 formatted CD #263 . floppy-emu might be convienent #272 .
The bootx file will load Open Firmware code for additional file systems #61 but I don't know how to get back into Open Firmware when that's loaded.
The load command can load an Open Firmware Forth script (begins with a comment which in Forth is a \ followed by a space) or it can load FCode. #71 load hd:,\6200debug.rom
The file is loaded at load-base and has size load-size
If you load a PCI ROM file which begins with a PCI header, then the load command may report an error and it will unmap the memory region (doesn't happen with OF 1.0.5 #267 ). You may be able to remap it using load_alloc. Examine the start to see if it contains the PCI header. load-base 50 dump
The PCI Header starts with 55 AA. There's a PCIR signature at the start of the PCI Data Structure. The FCode starts with an F1 at offset 0x40 for the Nvidia ROMs we're testing.
Instead of using load, you may be able to use (load) (which only works if (load) is a visible word, such as in Open Firmware 2.4) #305 #326 : " ide0/@0:1,\TEST5.ROM" (load)
Executing Files in Open Firmware
Once the file is loaded (see above), it can be executed.
If the code in the loaded file is to be applied to a specific device (such as for a PCI device), then before you execute it, you may need to do the following:
Select the device: dev pci/@e
Override the default open word: : open true ;
Fix some properties that the driver will expect (for example, the 7800GT Mac ROM requires subsystem-id to match the PCI config space value which is 0x52 - the driver will change this property to 0x10): 52 encode-int " subsystem-id" property
Open an instance and store the result in my-self #77 : " pci/@e" open-dev to my-self
Optionally, set fcode-debug? so any named words will keep their names even if they are not external: setenv fcode-debug? true
If it's a Forth script, then this will execute it: load-base load-size evaluate
If it's FCode, then this will execute it: load-base 1 byte-load
If it's a PCI option ROM where the FCode image starts at offset 0x40 (as it does in the PowerMac Nvidia ROMs we're testing), then this will execute it: load-base 40 + 1 byte-load
Another option would be to remove the first 0x40 bytes. #266
unselect-dev \ This should be all that is needed
device-end \ but we do this to be sure
0 to my-self \ and we do this too, just to be sure
PCI ROM Flashing
After creating a ROM and testing it using file loading or emulator, you'll want to flash the ROM to the PCI card. A PCI card's ROM chip has a maximum size #141 #142 #165 . It might be 64K or 128K. A 128K ROM chip may allow both a BIOS and Open Firmware image. Some Nvidia ROM patchers require the first ROM image to be a BIOS image. See DumpPCIRom.sh above for a method to combine ROM images.
After doing the file loading method for testing ROMs, you will eventually want to test the ROM flashed to the PCI card. When Open Firmware starts, it initializes the Open Firmware dictionary and device-tree, executes the contents of nvramrc, then probe-all, install-console, banner in that order. The order can be changed (see #80 ). probe-all is when the ROM is executed. Any output emitted by the ROM is buffered and will not appear until install-console happens. I don't know what the limit is for buffered output #175 so it would be best to not have it buffered - make the output happen as the ROM is being executed. Add the following to nvramrc:
Code:
install-console
probe-all
banner
For Open Firmware 2.4, install-console in the nvramrc should be changed to (install-console) #123 #129 #178
Testing Display Output in Open Firmware
While using telnet or serial, you can open a display device in Open Firmware and draw to the display.
For Open Firmware 2.x, draw color bars to screen without changing output #120 #191 :
Code:
screen open-dev drop
dev screen
10 0 do i i 28 * 0 28 d# 480 fill-rectangle loop
I have made a note. You can use the attached "get-new-world-rom.command" in Mac OS X to dump the firmware into a file named "macrom#.bin" (where # is a unique number), zip the result, and post it here so I can examine it for more information.
I am pretty sure it is listed as Geforce2 MX in “about Mac.” It’s listed as the powerMac 4,2. Common name is iMac G4 700mhz. Let me know if I can give you any more info.