That rom doesn't modify the BAR1 size soft strap bits so I guess they purposefully decided to make it 256MB.Attached below. It is the ROM which produced the lspci-output, posted before.
I explained BAR sizing in an earlier post. It's also explained in the PCI Local Bus specification.So what should the correct output for 512MB be instead of
?Code:00008014:a0000008.f0000008
The 4 least significant bits are flag bits. 8 = bit 3 = prefetchable flag.
f0000000 represents the size of the BAR. ffffffff is written to the BAR and when we read it back, only the first 4 bits were modified successfully which means the address must be a multiple of 256MB (2^28 = 10000000).
For 512MB, BAR should return e0000000.
a0000000 is the current address of the BAR and must be a multiple of the BAR size. a0000000 is actually a multiple if 512MB. I suppose you have other PCI devices that use the 90000000 address.
Probably?So don't the values OGLDM shows for VRAM (used and free) mean that it is working / 512MB are available to the system?
I suppose a manufacturer can set the hard straps/soft straps however they like.Shouldn't hard straps be set to 512MB for any 512MB-card (like the PNY 6200 is) in the first place? So, in this case, if the soft straps in the ROM are used at all, they seem to do more harm than good.
Maybe 256MB BAR is perfectly valid for a 512MB VRAM PCI card. It may be more compatible that way.
If you want to try 512MB BAR (with my nvramrc patches for Open Firmware versions before 2004), then try setting the 20 bytes at 0x58 to c3c36ffe 08108001 ffffff7f 00000080 2200a5b1
Code:
thesoftstraps="$(readsoftstraps ./6200/ROMs/PNY_512_Mac.rom)"
dumpheading ; dumponesoftstraps "$thesoftstraps" ; echo
newsoftstraps="$(setsoftstraps "$thesoftstraps" 0 23 2 3)"
dumpheading ; dumponesoftstraps "$newsoftstraps" ; echo
CHECKSUM RESULT┬┐ SOFTSTRAPS0 RESULT SOFTSTRAPS1 RESULT
EXPECTED CHECKSUM┬┐ ││ 33222222222211111111110000000000 33222222222211111111110000000000
AND0 OR0 AND1 OR1 CHECKSUM┬┐ ││ ││ 10987654321098765432109876543210 10987654321098765432109876543210
c3c3efff 08100000 ffffff7f 00000080 2200a5b1 b1 00 -----------0------0100----0010-- 1-------------------------------
CHECKSUM RESULT┬┐ SOFTSTRAPS0 RESULT SOFTSTRAPS1 RESULT
EXPECTED CHECKSUM┬┐ ││ 33222222222211111111110000000000 33222222222211111111110000000000
AND0 OR0 AND1 OR1 CHECKSUM┬┐ ││ ││ 10987654321098765432109876543210 10987654321098765432109876543210
c3c36ffe 08108001 ffffff7f 00000080 2200a5b1 b1 00 -------11--0------0100----0010-- 1-------------------------------
I am interested in seeing it work as 512MB BAR.Just to be complete I suppose. Just bothers me that I had this working before and it doesn't work now.