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.
The setup used is a former G3/300 desktop, revision C, now running a Yikes 400 mhz CPU at 433, with now 768 mb of memory. Machine has some Maxtor 80 gig HD divided in three partitions as follows: 1 gb for OS9 running 9.2.2, 6.7 gb for X with 10.4.11 installed and the rest for random data. Also installed is some Quicksilver pulled Pioneer DVD-RW drive.
Do you use XPostFacto for 10.4.11? Or was it installed normally?

No. I just wantetd to say, the card sadly didn't appear since i am able to get a closer look of the open firmware via serial. But now it has.
Ok, so you're saying the serial lets you see what's going on - whether the card appearing or not appearing.

Sadly didn't really work. Sure it stops working after the commands. But sadly doesn't start working again when i switch the setting.
Maybe the 115200 bps mode will work. With Open Firmware input and output set to keyboard and screen, enter these commands to do the patch:

Code:
dev ttya
84 ' initscc dc + code!
0 ' initscc b4 + code!
unselect-dev
UPDATE Aug 11, 2022: Fixed the above patch

Then set Z-Term to 115200 bps.
Then change the input/io to serial:
Code:
" ttya" io

Is this just for speed? If so, is this necessary? It just works fine so far. Fast enough for me.
It's just for speed. But it's also for fun. If we fail at everything else at least we could succeed here and learn something.

I think i'd prefer not to. So i have to type the command every time.
When you type the command, is Open Firmware visible on screen or are you typing the command blind since you have onboard graphics disabled?

But otherwise, if i forget to set it back, i will not be able to get into OF anymore without first plugging the connection in.
You can always zap the pram to get defaults back.

Says "unable to open the DIR device
I think we'll assume there's no HFS+ support. You can do the paste method for entering the lspci command.
On my Power Mac G5, all I have to do is type dir hd:9,\. It won't let me exclude the partition part :9 or the path part ,\

The error message unable to open the DIR device itself means that it could not call open-dev on the path that you provided, like this:
" ide1/@0:7,\" open-dev

But later you said that dir gives error message DIR method failed for ide:,\ and ide1:,\. So I guess open-dev accepts those.

Try these:
" ide1/disk@0" open-dev
" ide1/disk@0:7,\" open-dev
dir ide1/disk@0
dir ide1/disk@0:7,\

One thing that's strange is that there are two disk@0,0 for each ide device.

But has this to be pasted completely "as is" or just the ": lspci ... ;"-Part without the hex line?
You can paste the entire thing. The \ comments and hex line don't do anything.

For the pci, there is a 4 port USB card in slot A1, the Radeon 9000 Pro in slot C1 (which doesn't appear in the device tree at the moment) and the GeForce 6200 in slot B1 (which appears as shown but doesn't work).

Onboard video / slot F1 is hidden via probe-list command.
Sure! But sadly i tried so many times and changed so many things (different slots used and combinations with other cards) that i am absolutely unable to give a definitive statement about what finally "made it work". As mentioned above, the actual setup, which at least shows the card as a generic display adapter, has the Radeon 9000 in PCI C1, which does not show up. Next thing i will try is, if the 6200 is still "seen" if i remove the Radeon.

Yes. And even if i gave my best to avoid it, when swapping cards so much times, a poor seating can not be excluded 100%.
I think we'll want to do tests without Radeon 9000 Pro. Keep the Onboard video disabled.
Put the 6200 in the slot that you prefer.
 
Last edited:
  • Like
Reactions: Amethyst1
I think we'll want to do tests without Radeon 9000 Pro. Keep the Onboard video disabled.
Put the 6200 in the slot that you prefer.
You're going to want to flash a PC VBIOS or erase the EEPROM of the 6200 card. You don't want to test FCODE ROM's by flashing them to the EEPROM with nVidia cards. Far too likely they will pull the no show and you'll have to lift the ground pin on the EEPROM to recover it in a PC.

Better to load the debug ROM from a floppy and execute it, but we have to figure why that doesn't work as expected with OF before version 3.x.x. I'm not real sure there, load and byte-load seem to work ok and you can view the fcode in memory from the load-base address, but I don't think select-dev or open-dev to my-self are working as they do in OF <3.x.x.

It's worthwhile for us to figure this out for Old World machines.
 
The Geforce 2MX, how much VRAM does it have? The 32MB ones only ever supported 1 display at a time. The 64MB were marketed as "TwinView" and could drive both displays at once. There is a ROM that you can flash, to Apple OEM cards, to the 32MB one to turn it into a TwinView card that can output to both displays at once.
 
You're going to want to flash a PC VBIOS or erase the EEPROM of the 6200 card. You don't want to test FCODE ROM's by flashing them to the EEPROM with nVidia cards. Far too likely they will pull the no show and you'll have to lift the ground pin on the EEPROM to recover it in a PC.
Not sure I understand this. The card already has fcode rom, so what's the problem in writing another fcode rom on top of that?

Better to load the debug ROM from a floppy and execute it, but we have to figure why that doesn't work as expected with OF before version 3.x.x.
I don't think we tried floppy. We've only been trying ide. Maybe we should try different partition types on ide. HFS? MFS? FAT?
 
Not sure I understand this. The card already has fcode rom, so what's the problem in writing another fcode rom on top of that?
It's that nVidia FCODE ROM can be fickle, some minor changes that seem they should work can make the card not show up on the PCI bus of a Mac or a PC. It was such a common occurrence for us when we were "developing" the edited FCODE ROM's that Arti Itra wrote a script we could load in OF to populated enough properties for a card with a "bad flash" so we could recover it by flashing it again without having to make a switch to disable the EEPROM on boot, the reenable it for NVFALSH once the system had POSTed.

Sadly that OF script has been lost and I've been unable to reproduce it.
I don't think we tried floppy. We've only been trying ide. Maybe we should try different partition types on ide. HFS? MFS? FAT?
With the file sizes we are dealing with floppy is the way to go and we know it works.
 
Do you use XPostFacto for 10.4.11? Or was it installed normally?
Yes, was installed by XPostFacto. Is a normal install of Tiger on a beige even possible?
It's just for speed. But it's also for fun. If we fail at everything else at least we could succeed here and learn something.
So i left the speed as it is so far. I'm still happy i got it working at all.
When you type the command, is Open Firmware visible on screen or are you typing the command blind since you have onboard graphics disabled?
Yes. I wait a few seconds, holding the O-F-keys, than type the ttya io. Worked so far.
You can always zap the pram to get defaults back.
A yes, that should work to get into OF without the serial connection.
" ide1/disk@0:7,\" open-dev
This one worked!
I think we'll want to do tests without Radeon 9000 Pro. Keep the Onboard video disabled.
Put the 6200 in the slot that you prefer.
Hmm, but for some reason, without the Radeon in place the 6200 completely dissapeared from the device tree again. No matter in which PCI i put it.

Meanwhile i did a bit comparing of the 6200and 2MX's Fcode ROMs. sadly they seem to have a completely different structure. So no easy adopting things from the (working) 2MX.
 
It's that nVidia FCODE ROM can be fickle, some minor changes that seem they should work can make the card not show up on the PCI bus of a Mac or a PC. It was such a common occurrence for us when we were "developing" the edited FCODE ROM's that Arti Itra wrote a script we could load in OF to populated enough properties for a card with a "bad flash" so we could recover it by flashing it again without having to make a switch to disable the EEPROM on boot, the reenable it for NVFALSH once the system had POSTed.
Hmm, maybe i was just lucky. But i tried many bad/corrupted ROMs and had many cards "bricked" for the Mac. But up to now none of them was not even "seen" by NVflash in the PC anymore. Best for the 6200/6600/6800/7800-Generation worked 5.31. ...and, if everything goes down the drain, i still have some USB-programmer at hand. So i have no fears of flashing the card, if neccessary.
 
Hmm, but for some reason, without the Radeon in place the 6200 completely dissapeared from the device tree again. No matter in which PCI i put it.
This is why I'm saying erase the EEPROM or flash the PC VBIOS back to it, you have no real idea of how much of the FCode has been run by OF or what state the has left the PCI device in. It's best to avoid conflicts that are unnecessary. The only reason you are able to see the 6200 on the PCI bus at all with the FCode ROM on it is because it's conflicting with the R9000, or that's what I assume.

Do away with that, the proper way to develop and debug a PCI FCode ROM is to load it from disk and execute it with debug strings.

Best to use the PC VBOIS because of the nvstrap and how that can change the PCI register.

You did save the PC VBIOS original to the card?
 
Hmm, maybe i was just lucky. But i tried many bad/corrupted ROMs and had many cards "bricked" for the Mac. But up to now none of them was not even "seen" by NVflash in the PC anymore. Best for the 6200/6600/6800/7800-Generation worked 5.31. ...and, if everything goes down the drain, i still have some USB-programmer at hand. So i have no fears of flashing the card, if neccessary.
I'll want to avoid unnecessary extra steps when you can, but I use to make a simple circuit to act as a switch on the ground leg of the EEPROM so I could recover in a PC from a bad flash. However moving the card from the Mac to the PC is an unnecessary step when you just load the FCode ROM from disk while you debug.
 
Do away with that, the proper way to develop and debug a PCI FCode ROM is to load it from disk and execute it with debug strings.
Ok, never done something like that. But at least i can access the disk now. So it should be possible.
Best to use the PC VBOIS because of the nvstrap and how that can change the PCI register.

You did save the PC VBIOS original to the card?
Yes, i still have it and can flash it back to the card.
 
Yes, was installed by XPostFacto. Is a normal install of Tiger on a beige even possible?
Probably not. Doesn't matter since we're just working on Open Firmware for now.

So i left the speed as it is so far. I'm still happy i got it working at all.
Something to try while waiting for further instructions. Also, if we want to use a copy/paste method of installing the firmware, instead of flashing or loading from disk, then it would probably take less time if you can use the faster serial port speed.

This one worked!
If it worked, then dir ide1/disk@0:7,\ should produce a DIR method failed error instead of a unable to open the DIR device error.

Hmm, but for some reason, without the Radeon in place the 6200 completely dissapeared from the device tree again. No matter in which PCI i put it.
Device tree doesn't matter. Use the lspci command to verify that the PCI device is detectable.
In fact, it might be useful to set pci-probe-list to exclude the slot the 6200 is in, if we choose not to use the flashing method.

According to #20 :

disable slot A1: ffffdfff \ 1111 1111 1111 1111 1101 1111 1111 1111
disable slot B1: ffffbfff \ 1111 1111 1111 1111 1011 1111 1111 1111
disable slot C1: ffff7fff \ 1111 1111 1111 1111 0111 1111 1111 1111
disable slot F1: fffbffff \ 1111 1111 1111 1011 1111 1111 1111 1111
 
Something to try while waiting for further instructions.
Homework done so far:

6200 flashed back to its original PC-Bios.

PCI C1 disabled with onboard video also still disabled by pci probe list, stored in nvramrc.

Tried to switch the connection speed. But this still doesn't work. Entering the commands makes ZTerm unusable. But switching to 115200 doesn't bring it back. Tried several times with no result.

If it worked, then dir ide1/disk@0:7,\ should produce a DIR method failed error instead of a unable to open the DIR device error.
Also tried this again. Get different results than expected here too.
Code:
dir ide1/disk@0:7,\
still gets me "unable to open the DIR device" while
Code:
" ide1/disk@0:7,\" open-dev
alters the zero in front of the input prompt to one (which made me think that it worked).

...and finally i ran the lspci-script (with all the slots but A1 with the USB-card empty and F1 as well as C1 disabled). This is what it returned:

Code:
0 > lspci
00:00.0         [1057:0002] [060000] 57100200060080a0400000060800000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002
00000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000
00000000008000800080ffff00000101020203037fff7fff7fffffff00000101020203033f000067000000001c0e16f
f0c060c02000000000000000000000700000000000100001000000000f3013030000000000000000000000000000000
00000000004200ff0f0000000020000000000000000000dc12e40f01409322300720223025
00:0d.0         [1106:3038] [0c0300] 06113830140010026200030c0820800000000000000000000000000000
000000a1080000000000000000000006113830000000008000000000000000000100004010030000000000000b00000
00000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000
000000000100c2ff0000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000030000000000000000
00:0d.1         [1106:3038] [0c0300] 06113830140010026200030c0820800000000000000000000000000000
00000081080000000000000000000006113830000000008000000000000000000200004010030000000000000b00000
00000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000
000000000100c2ff0000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000030000000000000000
00:0d.2         [1106:3104] [0c0320] 06110431140010026520030c0820800000008080000000000000000000
000000000000000000000000000000061104310000000080000000000000000003000000000b0000000000a02000090
000ffff005a008000000000040b888833000000202001000000000001000000000000c0000000000000000000000000
000000000100c2ff0000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000030000000000000000
00:0e.0         [1002:5245] [030000] 0210455284009002000000030820000008000084010c00000040808000
00000000000000000000000000000030b50804000082805c00000000000000ff0108000000000000000000000000000
0000000025c20000302001f000200000100010200000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00:10.0         [106b:0010] [ff0000] 6b10100016000082010000ff08200000000000f3000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00:12.0         [1002:4750] [030000] 02105047800080025c000003000000000000000001affc6a0090f4ff00
00000000000000000000000000000000000000000000000000000000000000ff0108000c00000000000000000000000
000000002001000010000ff000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
 ok
 
@flyproductions, can you zip you Mac rom? It might be different than the ones I have.

You can use GrabMemory in Mac OS 9.
If you enter address $FFC00000 , length $400000, then it should produce a file named "@FFC00000 len-400000".

Otherwise you can get it in OpenFirmware using this command:
0 > 100000 0 do ffc00000 i 4 * + dup 3f and 0= if dup cr 8 u.r ." :" then @ 8 u.r loop
but it will take a long time, especially if you're using 38400 bps, then it will take ≈2590 seconds = 43 minutes (3491 characters per second (default setting uses 2 stop bits), 9043968 characters).
115200 bps = 11520 characters per second (1 stop bit) -> 13 minutes.
230400 bps = 23040 characters per second (1 stop bit) -> 6.5 minutes.

I am looking to use the Open Firmware environment of dingusppc emulator to do testing of the Nvidia 6200 rom. I'll add a fake PCI device with the same BAR addresses as the 6200, + other register values from the lspci and dump-device-tree outputs that you've provided.
 

Attachments

  • GrabMemory.zip
    32.7 KB · Views: 74
You can use GrabMemory in Mac OS 9.
If you enter address $FFC00000 , length $400000, then it should produce a file named "@FFC00000 len-400000".
I try this and post it as soon as i have it.
I'll add a fake PCI device with the same BAR addresses as the 6200, + other register values from the lspci and dump-device-tree outputs that you've provided.
Are the ones that you have ok or should i repeat the dump and the lspci with the 6200 installed? The confguration for the lspci-result i posted was different from the one for the device tree, which had the radeon and the 6200 installed and C1 not disabled.
 
Homework done so far:

6200 flashed back to its original PC-Bios.

PCI C1 disabled with onboard video also still disabled by pci probe list, stored in nvramrc.

Tried to switch the connection speed. But this still doesn't work. Entering the commands makes ZTerm unusable. But switching to 115200 doesn't bring it back. Tried several times with no result.
I made a mistake, c4 should be b4.
UPDATE Aug 11, 2022: Fixed the above statement

Try this for 230400 bps.
Code:
dev ttya
44 ' initscc dc + code!
0 ' initscc b4 + code!
UPDATE Aug 11, 2022: Fixed the above patch

If you do 7fffffff to lines/page dump-device-tree 16 to lines/page will continue without pausing until the end.


Also tried this again. Get different results than expected here too.
Code:
dir ide1/disk@0:7,\
still gets me "unable to open the DIR device" while
Code:
" ide1/disk@0:7,\" open-dev
alters the zero in front of the input prompt to one (which made me think that it worked).
The 1 is the number of values on the stack. Enter . to pop the top item of the stack and display its value. open-dev returns an instance handle or 0 if it didn't work. .s can show the stack without removing any items from the stack.

...and finally i ran the lspci-script (with all the slots but A1 with the USB-card empty and F1 as well as C1 disabled). This is what it returned:
Good results. But I don't see the Nvidia 6200. Was it installed? I see two AMD cards (the built in 3D Rage Pro at device 0x12 slot F1, and a Rage 128 GL PCI at device 0x0e), the USB card at device 0x0d with its 3 functions, mac-io (heathrow) at device 0x10, and I guess grackle at device 0x00.
 
Last edited:
Are the ones that you have ok or should i repeat the dump and the lspci with the 6200 installed? The confguration for the lspci-result i posted was different from the one for the device tree, which had the radeon and the 6200 installed and C1 not disabled.
Get lspci with the 6200 installed. pci-probe-list shouldn't affect lspci, but maybe you should disable the slot the 6200 is in so its driver doesn't affect anything. Or disable all 4 slots.
 
Good results. But I don't see the Nvidia 6200. Was it installed? I see two AMD cards (the built in 3D Rage Pro at device 0x12 slot F1, and a Rage 128 GL PCI at device 0x0e)
Ah sorry for that! I can repeat with the 6200 in place or no card at all, as what fits the best to proceed.
 
Get lspci with the 6200 installed. pci-probe-list shouldn't affect lspci, but maybe you should disable the slot the 6200 is in so its driver doesn't affect anything.
Does the driver still affect anything, now that the card is flashed back to PC?
 
Last edited:
You can use GrabMemory in Mac OS 9.
If you enter address $FFC00000 , length $400000, then it should produce a file named "@FFC00000 len-400000".
So here is the file:
 

Attachments

  • @FFC00000 len-400000.zip
    2 MB · Views: 117
...and here is, what lspci returns with the 6200 in slot B1:
Code:
0 > lspci
00:00.0         [1057:0002] [060000] 57100200060080a0400000060800000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002
00000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000
00000000008000800080ffff00000101020203037fff7fff7fffffff00000101020203033f000067000000001c0e16f
f0c060c02000000000000000000000700000000000100001000000000f3013030000000000000000000000000000000
00000000004200ff0f0000000020000000000000000000dc12e40f01409322300720223025
00:0d.0         [1106:3038] [0c0300] 06113830140010026200030c0820800000000000000000000000000000
000000a1080000000000000000000006113830000000008000000000000000000100004010030000000000000b00000
00000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000
000000000100c2ff0000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000030000000000000000
00:0d.1         [1106:3038] [0c0300] 06113830140010026200030c0820800000000000000000000000000000
00000081080000000000000000000006113830000000008000000000000000000200004010030000000000000b00000
00000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000
000000000100c2ff0000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000030000000000000000
00:0d.2         [1106:3104] [0c0320] 06110431140010026520030c0820800000008080000000000000000000
000000000000000000000000000000061104310000000080000000000000000003000000000b0000000000a02000090
000ffff005a008000000000040b888833000000202001000000000001000000000000c0000000000000000000000000
000000000100c2ff0000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000030000000000000000
00:0e.0         [10de:0221] [030000] de1021020400b002a10000030020000000000082080000900000008100
000000000000000000000000000000000000000000828060000000000000000001050100000000020030001702001f0
00000000000000001000000ced623000f00000001000200000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000010440c10000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00:10.0         [106b:0010] [ff0000] 6b10100016000082010000ff08200000000000f3000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
00:12.0         [1002:4750] [030000] 02105047840080025c0000030820000000000083010c00000010808000
00000000000000000000000000000000000000000000000000000000000000ff0108000c00000000000000000000000
000000002001000010000ff000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000
 ok
0 >
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.