netkas.org forum
December 03, 2020, 02:21:05 AM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Information for registering users http://forum.netkas.org/index.php/topic,2246.0.html
 
   Home   Help Search Login Register  
Pages: 1 [2] 3 4
  Print  
Author Topic: GTX 770 Mac  (Read 71388 times)
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #15 on: August 01, 2015, 09:04:29 PM »

I'm just trying to see where everything is. It seems like as good a way to go about it as any other.

I don't have access to any Fermi Mac roms, at least not that I am aware of. I did not think there were any public roms ever made for fermi.

I am not too concerned with having to replace EEPROMS. I actually think I have a multi-eeprom programmer/eraser around here somewhere, but I'd have to do some digging through old boxes.

And advice on how to identify where each of the 5 parts begins and ends?

Thanks!
Logged
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #16 on: August 02, 2015, 07:23:36 PM »

I rigged a simple switch to make recovering the card a bit easier.


* IMG_3728.JPG (215.84 KB, 960x720 - viewed 1504 times.)
Logged
Rominator
Hero Member
*****
Offline Offline

Posts: 2346



« Reply #17 on: August 04, 2015, 02:48:23 AM »

Pin 1 to ground?

I have found that doesn't always allow a reflash, at least on the GK110 cards.

And I would seriously consider learning on Fermi. Don't know if we ever would have gotten everything figured out for Kepler if we hadn't done Fermi first. Basically, Fermi has 2 part rom like AMD still does. The things you have to do for Fermi you still have to do for Kepler, but more things got added by having 3 additional rom parts. More tie ins and more checksums.
Logged

Before asking a question, check your "Personal Settings" and be sure that you have "Brain Services" set to "On".
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #18 on: August 04, 2015, 03:57:17 AM »

Something I have noted: hex 55aa seems significant, perhaps marking a section header or some sort thereabouts. (this might be obvious to some, but I am starting from absolute scratch).

I'm sure pin 1 to ground works fine, but my experience with eeproms is serial data/output to ground (pin 5 to 4). Funny, I had to flash an eeprom for an RDS encoder a few evenings ago, I found my programmer (along with sheets of old EPROMS I had forgotten about, I used to repair arcade cabinets for a local arcade). First time I have used it in ages.

The switch worked this time around, allowing me to confirm that the flash of the 680 rom onto the 770 had in fact taken (to ill effect). It also allowed me to re-flash the original 770 rom, and the card works as normal.

If it does not work in the future I have a nice tapered Weller chisel tip the exact width of an 8 pin IC that I use for exactly this purpose (actually I use it for LMC555 chips but whatever).

I found the k4000 mac rom, but at first glance (<5minutes) it's drastically different from the PC k4000 rom. Is this the only Fermi mac rom, or do you suggest something else?
Logged
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #19 on: August 04, 2015, 05:35:05 AM »

I tried an incredibly barbaric thing: I went into the 680 2gb mac rom, changed everything (4 spots total) that said Hex: 8011 to 8411 and the 2 text: 680 to 770. Used the KGB tool to fix the checksum. (i'm not sure if this actually works or not).

(Speaking of checksums, does each section have it's own checksum? in that event, does each need to be checked and calculated manually with any changes?)

Flashed it to the 770 sc acx I have been using thus far. It didn't work. Bricked the card again. Boo.

Next I'm going to look at the 770 rom and see if hex: 8411 shows up in all the same(ish) spots that hex: 8011 does in the 680 rom.

Till next time...
« Last Edit: August 04, 2015, 05:55:24 AM by rankel » Logged
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #20 on: August 04, 2015, 07:13:50 PM »

I had an interesting experience. I changed the 680 mac 2gb rom in only the two places that 8011 is expressly used as a device ID (after DE10) changing 8011 to 8411. Flashing this rom to the 770 produces NO noticeable change. it boots fine, still shows up as a 770 in device manager, benchmarks the same, and lacks any of the desired behavior in OS X (boot screen, pcie info).

I thought maybe the stock rom was ghosting on the rom since I have flashed it so many times by now, but I flashed the rom onto a different 770 (this time a 2gb ftw model) and the same results, it acts as if its running on the stock rom...
« Last Edit: August 04, 2015, 10:18:08 PM by rankel » Logged
Rominator
Hero Member
*****
Offline Offline

Posts: 2346



« Reply #21 on: August 05, 2015, 05:34:42 AM »

k4000 is a Kepler

The Mac Quadro 4000 is a Fermi

Looks similar, very different card.

55aa is section header, look up PCI.

Always after 55aa is length of that section expressed in hex as a number of 512 byte blocks
Logged

Before asking a question, check your "Personal Settings" and be sure that you have "Brain Services" set to "On".
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #22 on: August 05, 2015, 07:25:36 PM »

Ahh, I see. Ok. didn't figure the 4000 and k4000 were different cards. Thanks for the tip.
Logged
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #23 on: August 05, 2015, 10:34:20 PM »

I'm having trouble making sense of the section length. So if a header reads 55aa7a that means the section is 122x512 bytes long, 62,464 bytes long. I don't see how this can be given that the next place 55aa shows up is at 22,347 bytes into the rom.

Do you suggest any particular reading on this stuff, Rominator? I'm not sure how old is too old, and there seems to be quite a bit of different places to read up on this.
Logged
Rominator
Hero Member
*****
Offline Offline

Posts: 2346



« Reply #24 on: August 06, 2015, 10:20:20 PM »

remember, "55aa" isn't always a rom header, it can also be a value or code string.

Scroll down to 62,464
Logged

Before asking a question, check your "Personal Settings" and be sure that you have "Brain Services" set to "On".
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #25 on: August 08, 2015, 10:58:35 PM »

Yes, when followed by all the expected values it serves as a header (55aa followed by a length, some other stuff, then the PCIR value, and the same length value 15 or 16 bytes over). Any tips on where my thinking might be wrong in interpreting section length?

Scrolling down to 62,464 is just a random spot in a different section from what I can tell.


* 62464.jpg (235.31 KB, 1137x1313 - viewed 1589 times.)
« Last Edit: August 08, 2015, 11:36:46 PM by rankel » Logged
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #26 on: August 09, 2015, 04:10:47 AM »

Ok, OK! Ill call myself a moron here. So the very first 55aa is found at 1024, which makes the offset the section should end at 1024 bytes larger, 63,488, which IS a new section header. Ok.

More later

Logged
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #27 on: August 14, 2015, 08:31:34 PM »

Progress: I am wondering if the EFI is compressed, making direct changes difficult, or perhaps impossible. I pasted in the EFI section of the 680 rom into the 770 rom. It behaves the same way as changing all the device ID locations in the 680 rom: it boots like the PC card, and runs like the PC card. No changes that I can detect. From reading through Fl0r!an's port mapping thread, I see he had a similar issue, and it was suggested that he needed to fix the checksum and OpRom of each section. I am confident that I can learn how to find and recalculate the cecksums, however I don't know what an OpRom is, how to fix it, or if nvidia roms even have them. a basic google doesn't tell me anything. perhaps it is short for something? Option Rom perhaps? but that doesn't make sense (at this point) since its is being refered to as a small part of a section that needs to be "fixed" much like a checksum.  It is suggested that the fixrom script will do this for you, but I am under the impression that it is for ati roms only, perhaps not though, as I see Rominator saying he used it for nvidia roms.  I will have to investigate further. Any advice on locating and fixing the OpRom in a given section is very appreciated (id settle for telling me what the hell it is, and if nvidia roms have them).

Even with changing the device ID locations (one in inFoRom section and one in the EFI section) nvflash still makes me use the -4 command to force the flash, so there is a device ID somewhere in the rom that I can't see by just opening the rom in a hex editor. This leads me to believe that the EFI portion may be compressed. I need to do some more reading as I have no idea how that might be done. Any tips on good reading is appreciated.

I did, just out of curiosity, change the device ID of the card itself with a resistor addition, making the card report as a 680 instead of a 770. The regular 2gb 680 mac rom runs fine on it, and has very similar performance to the 680. This gives me confidence that the only thing that needs changing is the device-id in the rom to get the card booting properly, and that I am simply unable to locate one of the device ID locations due to compression of the EFI or something else like that.
« Last Edit: August 14, 2015, 08:42:45 PM by rankel » Logged
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #28 on: August 17, 2015, 05:27:14 AM »

I attempted to use fixrom.py to fix the OpRom and checksum, but I got an error of "OpRom at 0 is not valid"
Code:
Traceback (most recent call last):
  File "/fixrom-1.py", line 104, in <module>
    op_rom = OpRom(f.read())
  File "/fixrom-1.py", line 40, in __init__
    raise TypeError("OpRom at %d is not valid" % offset)
TypeError: OpRom at 0 is not valid

I read somewhere that fixrom.py is only for two part roms, which obviously won't work for kepler roms.

So how does one fix the OpRom for a kepler rom? I will do more research, hopefully someone can help out with a tip.
Logged
rankel
Not Newbie
*
Offline Offline

Posts: 22


« Reply #29 on: August 17, 2015, 09:08:44 PM »

I was able to get fixrom to run by deleting the data in front of the first section header, but I don't think it did what it needed to do.
Logged
Pages: 1 [2] 3 4
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!