netkas.org forum

General Category => Rom things => Topic started by: tedkoppel on March 26, 2015, 06:58:57 PM



Title: GTX 770 Mac
Post by: tedkoppel on March 26, 2015, 06:58:57 PM
Is there a publically available mac efi rom for the GTX 770 (preferably the 4gb version)?


Title: Re: GTX 770 Mac
Post by: rankel on July 07, 2015, 07:50:19 AM
I am also wondering about this. There are 2gb and 4gb 680 refi roms out there, it shouldn't be a big step for the 770 as its nearly the same card. I almost wonder if you could just change the cosmetics of the 680 rom and flash the 770 with it. there seem to be plenty of people with refi flashed 770s that didn't get them from macvidcards.


Title: Re: GTX 770 Mac
Post by: Spacedust on July 07, 2015, 03:00:09 PM
And it probably wouldn't require soldering new BIOS chip. Same for GTX980.


Title: Re: GTX 770 Mac
Post by: zimmergeil on July 08, 2015, 01:15:44 PM
The 770 card is the exact same as the 680, the only difference is that has faster ram and is clocked a little higher, so you might as well get a 680.


Title: Re: GTX 770 Mac
Post by: rankel on July 14, 2015, 08:48:02 PM
Unless you already HAVE the 770, which is my case. I'm about to try to flash my 770 with the 680 rom. I will report back


Title: Re: GTX 770 Mac
Post by: Fl0r!an on July 14, 2015, 10:29:39 PM
I'm pretty sure that 770 and 680 have different device ids, so force-flashing the wrong ROM will brick it.


Title: Re: GTX 770 Mac
Post by: rankel on July 14, 2015, 11:33:03 PM
Hehe. You can very much tell me "told you so." I did force the flash and it did very much brick the card. I have two of them sitting around, so its not a big deal, I can reflash it later shorting the pins.

So what is the solution? I see plenty of 770s out there being sold with boot screens that never passed macvidcards workbench. Is it a simple matter of modifying the 680 rom with the proper device id for the 770?


Title: Re: GTX 770 Mac
Post by: Rominator on July 15, 2015, 06:04:46 AM
1. Most flashers on Ebay are scumbags. "FireBird" is scumbag #1, rest fall in line behind him. Once they get ahold of a rom, they copy & paste it. "FireBird" used to send out 770s that still said "MacVidCards" in system profiler. He was flashing 2GB roms onto 4GB cards, etc. MacVidCards got the emails wondering why the cards ran like crap.

2. 680 & 770 are in fact basically same card, as mentioned.

3. Yes you can take 680 and change the device id in proper places and it will run on 770s. Finding all of these places is tricky. I was sent a card done this way to "fix". It ran like crap. I seem to recall that with GTX7xx bioses they added more boost states. So a 770 running a 680 BIOS got held back, even if you upped the clocks.

4. Ideally you would mod the Mac EFI to match the 770. And this is what amazes me. Nobody EVER does it themselves. They copy MVC roms and wonder why they have to keep stealing new roms to get next card working. Fermi was hard because there was only 1. But with Kepler there were 2 Mac EFIs. If you can't compare the roms and figure out what changes and why you are a freaking MORON. I'll spell a few things out to clarify.

5. While the Mac 680 could be on any of a variety of EVGA 680 roms, and thus tricky, the K5000 is a rare and limited card. Not so many roms. Think about that.

6. Anyone with a brain and some logic and reasoning could flash any of the 640/650/760/770 cards with ease. But you have to WANT to figure it out. GK110 needs other tweaks that aren't in the base EFI. But the cards I mentioned (and more) can be run from the Mac EFI. Some of the 650/660/670 can NOT work, but others will. Don't know why, no longer care. But it's there guys, all you need to know. (Hint...K5000)

7. Kepler cards rom has 5 parts. Some of these pieces are "keyed" to each other, some aren't. Some have checksums, some don't. The first 1K or 1.5K or 2K is called the "Inforom Image" and will give you no end of trouble. Most notably, nvflash will let you bugger it up, but once it's buggered, it won't let you fix it. You can sometimes recover with the shorting method, but frequently can't. Time to change eeprom chip.

8. PCIE 2.0 switch is a bitch. I only ever figured out functional part, not the cosmetic part. And amazingly, all of the copy & paste clowns have cards that have functional part right, but not cosmetic. Huh. I would gain some respect for someone else who brought something new to the table, like this. Nobody has.

9. There will never be a "Mac 770 rom". There are MANY cards, and they use different RAM, far more variations then the 680. The 680 2GB cards are mostly reference cards, so they can run the Mac rom. 770s run the gamut. And with the 5 rom pieces all needing to dovetail together happily, there won't ever be a 770 rom. I have notes on which roms work on which 770s, more then 10 entries and I still have cards show up that I have to write new ones for.

10. One more time, everything you need to know is in the "public" roms. Final hint, the "leaked" 680 4GB rom has a very interesting story behind it that I can't share. But it was masterfully done. By using the Mac 680 2GB rom as a base they got all functions working, including cosmetic part of PCIE 2.0. The RAM timings for 4GB card were placed in at needed places. This is how we used to do PPC F-Code roms back in the day. But we had Nibitor and Rivatuner to show us those timing strings. No easy way to see them anymore. But between those 3 roms, everything you need to know is there. The fact that upper DVI port function was cut later on in drivers is another interesting story.

Progress does not come from copy & pasting MVC roms. Progress comes from taking things apart, comparing & thinking. Emphasis on thinking. That Florian guy is making huge progress in AMD cards because he is applying thought and comparing things. When I work on roms I am constantly using "Command K" to compare roms. That is how I made 80% of my finds. Netkas uses other methods, but he is much more clever then I. I just look, compare , think, and try things.



Title: Re: GTX 770 Mac
Post by: rankel on July 15, 2015, 06:53:53 AM
Hmm. Thanks for the response Rominator... I think. I appreciate you taking the time to set some things straight. I like how you can be at once supportive and insulting. While I understand how irking it must be to have people copy your work and make you look bad, I don't necessarily think its appropriate to dismiss anyone who can't do what you see as basic and fundamental as a moron. I tried comparing a stock 680 rom and the mac 680 rom just before I saw your post. I was using the compare function and I most certainly COULD tell where changes (insertion, deletion, or change) were made because... Well they are highlighted. WHY they were changed or WHAT they mean... not as obvious. Going by your post that makes me a moron. I say nay, I just have no idea what to look for or what anything means at this point. I think it makes me less of a moron and more of an adventurer in well charted but unknown to me land. I just need to find a good map and learn the basics of the language.

This would be much like me showing you 2 different karyotypes and saying that you are a moron if you can't tell which one belongs to the individual with huntington's disease. I could also show you a bunch of southern blot gels with a single reference taken from you and tell you that you are a fool if you can't pick out the gel that comes from your long lost son.

So, lets keep it friendly. I'm no moron, just in a new place. Computers and building "Hackintosh" computers has been my hobby for a long time, and before I went to med school I was a broadcast engineer through most of my undergraduate. My surface mount soldering skills are still top notch, and my circuit analysis and troubleshooting capacity is well above average. The only thing I'm missing here is the programming knowledge, which is all that is pertinent I'm afraid (with the exception of replacing eeprom chips).

Looks like my next step is to find the K5000 rom and take a look. I need to investigate the best tools to use and read up on the language in these roms. I know the basics of hexadecimal but I have never worked with it.


Title: Re: GTX 770 Mac
Post by: Rominator on July 20, 2015, 11:41:06 PM
For 99% of people, much easier to just get a GTX680 4GB and overclock the rom.

Why reinvent the wheel for 5-10% more performance? In fact, truth to be told, it would be easier to google the threads where people try to turn GTX670 into a K5000 and use a resistor to change 1184 into 1180. Then a 770 could run 680 rom with just RAM changes. For most people this would still be easier then rewriting the rom.

And you missed my point. I wouldn't expect anyone to find answers by looking at 680, as I mentioned. Only by comparing 680 to K5000 changes would I expect someone to get anywhere. And then i would stand by my "moron" assertion. (OK maybe not "moron") What changes in PC part of BIOS in 680? Are same changes in K5000? How about EFI? Comparing those 4 files holds ALL needed info. The info is there, finding Fermi was tricky with just 1 card, but Kepler with 2 cards is much easier.

Great that you did med school. My brother is a Dr., but despite the miles from TX to CA I can hear the quacking from here. I wouldn't entrust him with the life of a garden slug yet the state licensing board gave him OK to work on people. My sis is about to finish her PHD, we shall see if it carries more weight with her. The last computer class I took was when I was 14, compiling FORTRAN as I recall. No computer training other then using them, my education all in pointless liberal arts hoo-haa. Care to hear which of Chaucer's works has the greatest relevance in my daily life?

Finding the PCIE 2.0 switch for Kepler was several weeks of trial and error by myself. Netkas finds a good many things by using real tools. I stare at code and try things until i find an answer. IDA is your friend if you can tackle the learning curve, I couldn't and went back to trial & error. Netkas couldn't find Kepler PCIE switch using IDA, I found it by making changes and testing. I know what works but couldn't begin to tell you why. It is unintelligible code to me, but it does what I needed to find. I found it for each and every Nvidia card since GTX260. Always in a different place, never knew how it worked, I just made changes to mimic Mac version in a PC one until it worked. Had no help (except for Maxwell), did it myself just by staring at giant fields of hex code and being logical.


Title: Re: GTX 770 Mac
Post by: rankel on July 21, 2015, 06:31:06 PM
I'm not a practitioner, thank god. I'm in research.

It is not the practicality of the matter so much as a personal endeavor to make it happen for myself. I would just like to be able to do it for myself for the sake of accomplishment.

So I am somewhat confused about where you are telling me to look. It seems you are telling me not to look at the 680 and telling me to look at the 680 at the same time. Would I be well advised to compare the changes between mac and pc 680 to the mac and pc K5000?

Also, I am having a bit of trouble finding information on which sections of the rom are which. I found a great article on the mac elite that describes how to find device ID and such, but no mention of the EFI. The article is pretty old by computer hardware standards but I figure it should still be pretty helpful. I figure it may be part of the "boot settings" section, but I have not gotten to explore any more since my last post.


Title: Re: GTX 770 Mac
Post by: Fl0r!an on July 22, 2015, 01:43:24 PM
@Rominator: I really like those posts! Very interesting to see how you're working and what you've achieved in the past.
Most people don't believe that you can teach astonishingly much to yourself, especially when it comes to computer stuff. They think programming is something like magic and they won't ever be able to do it, so they don't even bother learning it. But in fact the operating principle of a computer is quite simple, there's nothing to be afraid of. Everything is based on logic and simple math. The only problem is to handle the huge amount of data and instructions, which is simple for a machine but not so simple for the human brain.

It's also funny to see that you reveal a quite big lot of information about EFI hacking, but the ebay guys are still not able to do anything on their own. For example in the German eBay you'll only find legacy HD 5770/5870 (mostly without bootscreen), HD 6870, 7950/7970 and Nvidia GTX 680. Not a single Kepler card besides that let alone Maxwell. (Additionally I think the market for hacked GPUs is nowhere near as big here as in the US, but that's a different story. As the eBay history shows, most money is made with legacy HD 5xxx cards, every now and then they sell a "new" R9 card or GTX 680.).

It is not the practicality of the matter so much as a personal endeavor to make it happen for myself. I would just like to be able to do it for myself for the sake of accomplishment.
I can totally understand this kind of motivation and would like to encourage you to pursue this plan, preferably in public. Just start a new thread (or take this one) where you write down what you plan to do, what you've understood so far and what you've already achieved. Would be interesting to read for a lot of people, and maybe every now and then a clever guy would come by and give you a hint.
This also shouldn't hurt MVCs business since Kepler has reached it's end of life, and Maxwell is a different story I guess.

To get you started: Yes, Rominator told you to compare the PC BIOS and the Mac-EFI of GTX 680 and K5000. With the physical differences of these cards in mind, it should be quite easy discover the purpose of different parts in the EFI.
If the structure of Nvidia ROMs is similar to the AMD ROMs (have never looked at one, so I don't know), then it should consist of a PC BIOS part and an attached EFI part. The EFI part might be compressed, so you'd have to decompress it (tools for this are open source). After this, you might either view the raw hex code or disassamble the EFI binary e.g. with IDA Pro. The latter makes many things a lot more obvious, because the assembly instructions will be converted in human-readable code. For data sections this won't be of any use however.



Title: Re: GTX 770 Mac
Post by: rankel on July 22, 2015, 06:30:33 PM
Thank you for the encouragement Fl0r!an. I appreciate it.

Finding the EFI by comparing the 7970 mac vs pc roms was exceedingly simple. There is simply a huge block of additional information at the end of the mac rom. The (what I am assuming is) empty space on either side of the new information is different (Fs instead of 0s). Does this matter? I see that a lot comparing other roms. strings of 0s replaced by strings of Fs.

comparing the 680 roms and K5000 roms is different. I still see a big block of new information at the end of the mac rom, but it shares a little information with the PC rom, and it isn't just an entirely new block at the end of an otherwise identical rom.

I am very much enjoying this. Having a bit of support and a place to keep a log will be fun. If it is OK I will continue posting on this thread. Let me know if it would be more appropriate to start a new thread.


Title: Re: GTX 770 Mac
Post by: rankel on July 31, 2015, 04:13:15 AM
I have not had much time to fool around with things, but I have a few things to note. The Mac Elite has a neat article on NVIDIA roms, but it seems to be pretty outdated. Some of the information is useful, but some no longer applies. In terms of just getting familiar with how roms are put together, I have taken to using a bios editor to change just one thing at a time, and see what changes in the rom (comparing original to edited). This has illustrated simple things such as fan speed, with some limitations. For example, there must be a different part of the rom that dictates more than the minimum and maximum fan speeds; such as sensitivity, change delay, and fan curve.

I am assuming that this is the case with other things too, though I am unsure if they are found grouped together in the rom, or if they are spread out in different areas of the ROM. Much more tinkering is needed. I tried using IDA pro, but I'm not really sure if I am doing it right. there seem to be different ways of opening a file, so I just selected all the default options. The only real usefulness that jumps out at me with some superficial inspecting is that it tells you where functional groups start and stop, a lot like start and stop codons. while this is useful, it still does't tell me what is what.

any hints or suggestions are welcome.

I think my next major step is going into the 2gb 680 rom and changing the device id and refreshing a 770 to see what happens there.


Title: Re: GTX 770 Mac
Post by: Rominator on July 31, 2015, 09:09:36 PM
Mac elite article likely about fcode PPC roms and not even slightly relevant if so.

You don't need to change fan speeds or adjust RAM timings, yet. Primary challenge is changing device I'd in BIOS and EFI.

Modern Nvidia EFI has 5 functional sections, AMD has 2.

1. InFoRom image
2. PC BIOS
3. EFI/UEFI
4. Some weird section
5. Security certificate

All 5 sections need to match for card to work in Mac and Windows.

Probably easier to start learning on Fermi as they only had 2 parts but many
EFI changes and BIOS changes are similar.

I will give a warning, with KEPLER and Maxwell if you make changes to rom that are t properly reflected in the InFoRom inage, it may let you flash the card into a non-functional state but then not let you flash it back, giving the message "failed to merge inforom image". If you do not have means to erase EEPROM you have created a "brick".

Better to start with Fermi.


Title: Re: GTX 770 Mac
Post by: rankel 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!


Title: Re: GTX 770 Mac
Post by: rankel on August 02, 2015, 07:23:36 PM
I rigged a simple switch to make recovering the card a bit easier.


Title: Re: GTX 770 Mac
Post by: Rominator 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.


Title: Re: GTX 770 Mac
Post by: rankel 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?


Title: Re: GTX 770 Mac
Post by: rankel 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...


Title: Re: GTX 770 Mac
Post by: rankel 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...


Title: Re: GTX 770 Mac
Post by: Rominator 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


Title: Re: GTX 770 Mac
Post by: rankel 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.


Title: Re: GTX 770 Mac
Post by: rankel 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.


Title: Re: GTX 770 Mac
Post by: Rominator 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


Title: Re: GTX 770 Mac
Post by: rankel 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.


Title: Re: GTX 770 Mac
Post by: rankel 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



Title: Re: GTX 770 Mac
Post by: rankel 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.


Title: Re: GTX 770 Mac
Post by: rankel 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.


Title: Re: GTX 770 Mac
Post by: rankel 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.


Title: Re: GTX 770 Mac
Post by: Fl0r!an on August 17, 2015, 09:23:20 PM
Inserting
Code:
f.read(1024)
after line 103 of fixrom.py will make it skip the 1024 byte section at the beginning. Results look plausible to me.

EDIT: Whoops, I was looking just for the checksum but didn't realize that this will leave out this 1024 byte section in the resulting file. I'll fix it later.


Title: Re: GTX 770 Mac
Post by: rankel on August 20, 2015, 04:40:12 AM
Something I am doing is structurally wrong. I am attempting a very simple and cosmetic change in the 680 rom, for use with a 680 card. Simply changing the rom revision string, running the headless rom through fixrom, making the changes made by the script in the full rom (with the first 1024 bytes intact) manually, and flashing that rom to the card bricks the card.


Title: Re: GTX 770 Mac
Post by: Fl0r!an on August 20, 2015, 08:03:52 AM
I guess that's what Rominator meant with "sections are interlinked". I'd search for the checksum  (or something similar) in the other sections, maybe by comparing K5000 vs. GTX680.


Title: Re: GTX 770 Mac
Post by: rankel on August 20, 2015, 07:16:28 PM
Yes, I suppose I should look for each checksum manually. Now I am a bit confused about what needs to be done with the checksum. Is it changed by modifying the rom, and needs to be changed back to its original value by changing the 00 or ff bytes at the end of a section, or does it need to be recalculated and changed to its actual value?

There seems to be quite a lot of conflicting information out there, perhaps because checksums are calculated and used in different way for different applications.


Title: Re: GTX 770 Mac
Post by: Fl0r!an on August 25, 2015, 05:08:30 PM
Just dug a little through the Q4000 Fermi EFI. Quite funny that it contains a reasonably long list of Nvidia device IDs, from GTX 480 (which never existed as Mac card if I remember correctly?!) over GTX 280 to legacy 9xxx and 8xxx cards. Seems to have a rather ancient code base  ;D

(http://666kb.com/i/d1izwqyo7whc2xj1z.gif)

Same story for GTX 680 EFI, contains some other Kepler cards and GTX 4xx/5xx Fermis.
Obviously no 770 as this wasn't released back then...


Title: Re: GTX 770 Mac
Post by: Rominator on August 25, 2015, 08:59:44 PM
Yes. I was pretty sure that a 480 was tested but never happened for some reason, possibly power issue.

The NVIDIA EFI got added to over the years, not rewritten.

It has issues with some cards., some output combos and requires extensive work for newer cards. Was pretty amazing and fun figuring it out.


Title: Re: GTX 770 Mac
Post by: Fl0r!an on August 25, 2015, 10:59:40 PM
Did you ever try using the Kepler EFI with a 5xx card? I saw you're selling yours with just 2 functional ports, maybe this would work better since GTX 680 has 4?
Obviously you didn't have a Kepler EFI available when you worked on 5xx, but it would be still very interesting...


Title: Re: GTX 770 Mac
Post by: Rominator on August 25, 2015, 11:38:26 PM
That is limit of the card itself

Even in Windows it only creates 2 desktop images.

I could probably go back and write better roms that allowed some dynamic switching but there is little point now.


Title: Re: GTX 770 Mac
Post by: Sebinouse on August 26, 2015, 05:46:43 PM
Noob question here : how do you manage to get IDA Pro to open your ROMs ?

Mine (Mac 6.2) keeps crashing, I also tried Hopper which cannot open the .rom files ...

Is there any other solution to disassemble .rom files ?


Title: Re: GTX 770 Mac
Post by: Fl0r!an on August 26, 2015, 05:48:40 PM
You have to extract and efi-decompress the EFI part of the rom.


Title: Re: GTX 770 Mac
Post by: Sebinouse on August 26, 2015, 06:10:41 PM
OK and how can I do that ?  ???

I used to play with .fd and .efi ... but with hexfiend (http://ridiculousfish.com/hexfiend/) (simple hex editor) ... but this time it is not that simple ...


Title: Re: GTX 770 Mac
Post by: Fl0r!an on August 26, 2015, 06:38:07 PM
The command line tool 'UEFIRomExtract' can do this automatically (at least I think so, I'm not 100% sure it understands Kepler ROMs).


Title: Re: GTX 770 Mac
Post by: Fl0r!an on August 28, 2015, 08:51:28 PM
Okay Nvidia, here I come...  :D

(https://www.picflash.org/viewer.php?img=Foto288HKUIL.088HKUIL.152140398HKUIL.jpg)




Title: Re: GTX 770 Mac
Post by: Fl0r!an on August 29, 2015, 06:32:49 PM
I guess MVC has seen this picture quite often?  :D
(https://www.picflash.org/viewer.php?img=Foto293ORCN8.083ORCN8.151548063ORCN8.jpg)

And you know this stuff by heart by now? ftp://download.nvidia.com/open-gpu-doc/DCB/1/DCB-4.0-Specification.html (http://ftp://download.nvidia.com/open-gpu-doc/DCB/1/DCB-4.0-Specification.html)  :)
Oh and I'm sure that's no news to you, but that 'NvidiaInfo' app from InsanelyMac is extremely useful. :o


Title: Re: GTX 770 Mac
Post by: Rominator on September 01, 2015, 05:17:35 AM
link not working for me


Title: Re: GTX 770 Mac
Post by: Fl0r!an on September 01, 2015, 06:25:59 AM
link not working for me
Yep, link only works when coming form google, no idea what Nvidia has messed up there...  :D
It's the "Device Control Block 4.0 Specification".


Title: Re: GTX 770 Mac
Post by: rankel on September 01, 2015, 06:57:27 AM
link not working for me

Yes, I just googled it.


Title: Re: GTX 770 Mac
Post by: Sebinouse on September 02, 2015, 09:08:26 AM
link not working for me

The URL got modified :
Code:
url=http://ftp://download.nvidia.com
maybe a ftp (http://ftp://download.nvidia.com/open-gpu-doc/DCB/1/DCB-4.0-Specification.html) link in not supported on this forum which automatically adds http://  ???

Anyway it is nice to see some progress here, for my part nothing relevant found.




Title: Re: GTX 770 Mac
Post by: Fl0r!an on September 26, 2015, 01:01:36 PM
Hey guys,

just a short question (mainly @ MVC/netkas):

Do you know if it's possible for Nvidia cards to make a 'hybrid' EFI which will show boot screens but doesn't have any injection, so the driver will pick the card up in auto-init mode?
With AMD cards this was rather simply done by injecting some garbage as framebuffer, but the Nvdia driver seems to be less robust (keeps crashing). I'm currently removing all ioreg injections from the Kepler EFI (about two thirds done), but I'm currently taking a short break after having bricked my card again :D

In theory this should reduce the necessary work when building a new ROM quite a lot because you wouldn't have to do any modifications to the vBIOS part (DCB, Upper DVI issue, GT640 issue, ...), so have you ever tried that approach?


Title: Re: GTX 770 Mac
Post by: Fl0r!an on September 30, 2015, 07:46:34 AM
Okay, after having patched out every single ioreg injection from the Kepler-EFI the drivers are still crashing  :-\
Maybe the drivers are irritated by the handful of ioreg entries which will be set by the Mac's EFI, or there is a problem when handing the display over from EFI mode to accelerated mode in OS X.
AMD drivers are a lot more robust in this case, as they'll just fall back to auto-init mode when something is wrong with the injected keys.


Title: Re: GTX 770 Mac
Post by: ciggar on February 17, 2016, 09:04:08 PM
Any modified the gtx 680 rom to work on gtx 770???????


Title: Re: GTX 770 Mac
Post by: Rominator on February 18, 2016, 12:52:23 AM
There is not, nor ever will be a "one size fits all" Mac 770 rom.

While the 680 and 770 are based on same basic core, by the time the board partners made the 770 they all went in their own direction with components. Most notably the VRAM, fan(s) and power management varied from card to card. In comparison, most 680 cards, expecially the 2GB ones, used similar parts, hence the ability to use the "Mac rom" on those.

MVC has a partner now in Europe who will be able to write rom and flash your card in a few months.

Whatever you do, don't try to flash 680 rom on it. Could easily lead to a brick.



Title: Re: GTX 770 Mac
Post by: ciggar on February 18, 2016, 05:47:22 AM
Ooo nice if mvc flash cards on europe.....but wher is this mvc partener and how to contact him?????