Rom strap?
Arti could you decode this strap for me?
3F C0 00 7E 80 20 C0 80 00 00 00 00 10 00 00 80
22 00 A5
I've read what you have posted before on straping, and I do understand how to find, copy, and paste. It does work for me, however if you could try agian to explain it to me, thanks.
Arti
3F C0 00 7E AND mask
Well preserve the straps marked with "1"
00111111 11000000 00000000 01111110
80 20 C0 80 OR mask
Well add the straps marked with "1"
10000000 00100000 11000000 10000000
home.nyc.rr.com/arti/
nvflash
Global Moderator
*****
nvflash
3F
AND mask
PCI_AD_NORMAL, Sub_Vendor_Bios, Ramconfig, Ramconfig, Ramconfig,Ramconfig, Crystal_14M,NTSC, Disabled
So it's hex to binary conversion, I don't understand Preserve/Add.
Arti
Global Moderator
*****
Arti
So it's hex to binary conversion,
Sort of, as the straps are either on or off. Some of them are grouped, like ramconfig (to 4 bits allowing for those 32 scripts to have tables with 16 entries), TV mode is 2 bits, PCI ID is 2 bits (the resulting DID depends on the CPU). also the mem size straps are at least 2 bits.
I don't understand Preserve/Add.
Softsraps (introduced I believe with FX series) are in addition to hard straps (or those resistors), so AND mask determines if the hardstrap gets preserved or not the OR mask if the strap gets added.
Other way to look at it is AND mask allows you to set that bit to "0" OR mask to "1". If you do neither (AND mask 1, OR mask 0) original strapping (be it 0 or 1) stays.
For example, if you want to get rid of all the hardstaps and write your own, you'll set the AND mask to all "0"s and the OR mask to whatever strapping you desire.
nvflash
Ok, I think I'm starting to understand. However the length of the strap does not seen right.
3F C0 00 7E (AND mask)
80 20 C0 80 (OR mask)
00 00 00 00 (AND mask, we don't know what these are)
10 00 00 80 (OR mask)
22 00 A5 (Should this not be 4 bytes??? The last one being the CheckSum)
Also, the tvmode has me confused, how can it = 3(Disabled) when it's only 2 bits?
PCI DID how is this calculated?
What are these?
FP_IFACE
BR_
Would you give an example of calcutation of the CheckSum?
Last Edit: Jul 3, 2005 at 10:13am by nvflash
Arti
22 00 A5 (Should this not be 4 bytes??? The last one being the CheckSum)
The 4th byte is the checksum, i.e. the one after A5.
PCI DID how is this calculated?
It doesn't. It's interpretation depends on the GPU.
What are these?
FP_IFACE
BR_
Flatpanel interface width and the other one I don't know.
Would you give an example of calcutation of the CheckSum?
Lets take 80 20 C0 80, add them together = 1E0, discardd anything above 8 bits = E0. -E0 = 20. The checksum is 20.
home.nyc.rr.com/arti/
nvflash
Jul 3, 2005 at 11:25am QuoteEditlikePost Options
Post by nvflash on Jul 3, 2005 at 11:25am
Lets take 80 20 C0 80, add them together = 1E0, discardd anything above 8 bits = E0. -E0 = 20. The checksum is 20.
Got it, so the CheckSum for 3F C0 00 7E 80 20 C0 80 00 00 00 00 10 00 00 80
22 00 A5 = 4C
Flatpanel interface width and the other one I don't know.
What difference does 24-bit make vs 12-bit?
Is this just a way to define to the PC's Bios or Mac's Open-Firmware the Width of this bus or can this strap change the width of this bus?
It doesn't. It's interpretation depends on the GPU.
How can I use this to change the DID?
BTW, THANKS!
Arti
Is this just a way to define to the PC's Bios or Mac's Open-Firmware the Width of this bus or can this strap change the width of this bus?
It has to match the hardware. I don't know how much it's currently used as everything seems to use 12 bit interface.
How can I use this to change the DID?
You have to experiment. It probably makes it easier if you AND mask out the existing strap and then see what all of those 4 values give you.
BTW if you want to write the new strapping for the ROMs you may want to use the same approach. "0" it out via AND mask and set it with OR mask.
You could get the correct strapping from your OEM card, but that means erasing the ROM and I have no idea how you can get the ROM back as you'd need a PC with AGP Pro slot.
home.nyc.rr.com/arti/
nvflash
18 BR_ENABLED /BR_DISABLED
Don't fool with this one, I think I made my card pull the no show in a PC and Mac with this one.
Now I'll have to find the Sub_Vendor pin to flash it back, unless you know how to lift one of the pin on an 8-pin serial eprom.
No great loss, I was trying to see if setting up the correct straps for my PCI card would let it work in 10.4.
I think I have a 8-pin serial eprom on an ATI card that was dead so maybe I can erase that and replace it.
Anyway, thanks, I understand this now.
Arti
I got similar results when playing with the nvfalsh programs strap overwrite function.
I lifted the power for the ROM and connected a switch to it. After powering the ROM after booting I was able to erase it with 4.46.
home.nyc.rr.com/arti/
nvflash
Thanks, that worked.
Arti
PCI config register 48
<field name="NV_PBUS_PCI_NV_18_AGP_STATUS_RQ" high-bit="31" low-bit="24">
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_RQ_32" value="0x0000001F"/>
</field>
<field name="NV_PBUS_PCI_NV_18_AGP_STATUS_SBA" high-bit="9" low-bit="9">
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_SBA_NONE" value="0x00000000"/>
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_SBA_CAPABLE" value="0x00000001"/>
</field>
<field name="NV_PBUS_PCI_NV_18_AGP_STATUS_FW" high-bit="4" low-bit="4">
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_FW_NONE" value="0x00000000"/>
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_FW_CAPABLE" value="0x00000001"/>
</field>
<field name="NV_PBUS_PCI_NV_18_AGP_STATUS_RATE" high-bit="2" low-bit="0">
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_RATE_1X" value="0x00000001"/>
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_RATE_2X" value="0x00000002"/>
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_RATE_1X_AND_2X" value="0x00000003"/>
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_RATE_4X" value="0x00000004"/>
<field-value name="NV_PBUS_PCI_NV_18_AGP_STATUS_RATE_1X_2X_4X" value="0x00000007"/>
</field>
PCI config register 4c
<field name="NV_PBUS_PCI_NV_19_AGP_COMMAND_RQ_DEPTH" high-bit="28" low-bit="24">
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_RQ_DEPTH_0" value="0x00000000"/>
</field>
<field name="NV_PBUS_PCI_NV_19_AGP_COMMAND_SBA_ENABLE" high-bit="9" low-bit="9">
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_SBA_ENABLE_OFF" value="0x00000000"/>
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_SBA_ENABLE_ON" value="0x00000001"/>
</field>
<field name="NV_PBUS_PCI_NV_19_AGP_COMMAND_AGP_ENABLE" high-bit="8" low-bit="8">
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_AGP_ENABLE_OFF" value="0x00000000"/>
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_AGP_ENABLE_ON" value="0x00000001"/>
</field>
<field name="NV_PBUS_PCI_NV_19_AGP_COMMAND_FW_ENABLE" high-bit="4" low-bit="4">
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_FW_ENABLE_OFF" value="0x00000000"/>
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_FW_ENABLE_ON" value="0x00000001"/>
</field>
<field name="NV_PBUS_PCI_NV_19_AGP_COMMAND_DATA_RATE" high-bit="2" low-bit="0">
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_DATA_RATE_OFF" value="0x00000000"/>
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_DATA_RATE_1X" value="0x00000001"/>
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_DATA_RATE_2X" value="0x00000002"/>
<field-value name="NV_PBUS_PCI_NV_19_AGP_COMMAND_DATA_RATE_4X" value="0x00000004"/>
home.nyc.rr.com/arti/
rubytuesday
God
*****
rubytuesday Avatar
Posts: 2,336
Jul 6, 2005 at 12:14am QuoteEditlikePost Options
Post by rubytuesday on Jul 6, 2005 at 12:14am
So, using that info, could force my Quicksilver to work at 2X AGP with a 5500?
The kid with the small 5500 in a Cube claims the thing is running crazy hot. Since the cards have always run super-cool in my QS, I don't understand why it would be hot at 2X AGP unless it is just a voltage issue. The lower datarate ROM seems to have helped though he still claims some noise is present.
Also, I tried to flash a 500 today and use the "-g" command to retain original straps. Flashed ine but didn't work as Mac card. Apparently Arti's mod to ignore device id is in "strap" department. Card came up as device id 326 Nvidiia device. Seems like "-g" could be helpful in some way though.
Arti
Global Moderator
*****
Arti Avatar
Posts: 1,744
Jul 6, 2005 at 6:11am QuoteEditlikePost Options
Post by Arti on Jul 6, 2005 at 6:11am
So, using that info, could force my Quicksilver to work at 2X AGP with a 5500?
The ROM tries to change the setup to match the actual hardware, perhaps the driver too, so it's trickier than that. Running the card at 2x would perhaps be useful for performance tests.
I don't understand why it would be hot at 2X AGP unless it is just a voltage issue.
It's a possibility but forcing the card to run at 2x in a QS will not change that. It'll run at 2x datarate with voltage levels of 4x. Bus voltage is set up by hardware.
When I experimented with (or actually fried) an OEM 4MX in a 2x PC I could smell how hot it got. You'll need an actual 2x Mac to test it.
he still claims some noise is present.
DVI noise?
Apparently Arti's mod to ignore device id is in "strap" department.
The DID in the PCI header has to match the actual DID. That's why I'm suggesting to remove that ROM, because it's useless without instructions.
home.nyc.rr.com/arti/
nvflash
Global Moderator
*****
nvflash Avatar
Embrace your dark side.
Posts: 690Male
Member is Online
Jul 6, 2005 at 11:25am QuoteEditlikePost Options
Post by nvflash on Jul 6, 2005 at 11:25am
The DID in the PCI header has to match the actual DID. That's why I'm suggesting to remove that ROM, because it's useless without instructions.
Nope, the DID in the PCI Header must match the DID set in the Strap. That's how it goes for me, my 3 0320's if I want to Strap them to something else I need to change the PCI Header DID to match the strap, not 0320. If I set the header to 0320 and change it in the strap Open FirmWare ignors my fcode Rom. Odd.