PDA

View Full Version : Issues with XFX HD 4870 ZWFC on MacPro




SaldaVonSchwart
Feb 25, 2010, 04:55 PM
Hi,

I apologize in advance if this has already been resolved, but I've been reading through the original 4870 thread and haven't been able to find an answer to my problem. So here it goes:

My system:
MacPro 2006 1,1.
16GB.
Snow Leopard 10.6.2

Monitor: Samsung SyncMaster 206BW
Card I'm dealing with: XFX HD 4870 -- the ZWFC model (1GB)

The original story:
---------------------
If I tried booting into OS X with both the 4870 and the stock nvidia 7300 (to flash from os x) I would get a kernel panic. So, I ended up booting into DOS and using atiflash 3.7.9 to flash the card to the bios supplied by Cindori in his ROMS folder (ROMS/4870/XFX ZWFL & ZWFC/mac modified.rom)

The current status:
----------------------
1. After flashing, the card boots into OS X just fine. I do get the "power cable not connected..." warning, after the desktop is done loading though. I thought this only affected the ZWFL (I have ZWFC) but am I wrong?

2. This is the one thing I would consider an issue: Now, the card will barely run in Windows XP. I tried it both in my mac pro and on a regular Dell PC, both with WinXP and DOS. Basically the card glitches like crazy and you can barely see the image.

Since the card now at least runs in os x, I also tried reflashing with the same Cindori file but this time through his os x flash utility. Same deal. The card works on os x but glitches on windows/dos.

As far as I read, the mac netlists for the card basically leave the dos bios intact and just add the EFI support but I guess this might not be the case. So, any thoughts on the above? Should I be using a different file to flash?

Again, if someone already figured this out then I'm sorry for reposting.

Thanks!

I'm attaching the os x info for the card. I can also provide my card's original bios and the one I flashed to.



Cindori
Feb 25, 2010, 05:01 PM
you can try an OS that wasnt released 10 years ago.
you also never mentioned that the card worked in XP with original rom

SaldaVonSchwart
Feb 25, 2010, 09:38 PM
you can try an OS that wasnt released 10 years ago.
you also never mentioned that the card worked in XP with original rom

Which is the 10-year old OS? DOS? if so, I flashed in DOS because:

1. I wasn't able to flash in os x with the original rom because OS X would not load at all (kernel panic) with the card (with original rom), regardless of whether I had the nvidia 7300 (that came with the mac pro) also hooked up or not.

Specifically, the kernel traps when this guy pops up:
com.apple.ATIRadeonX2000(6.0.6)@0x8d6e1000->0x8d83bfff
dependency: com.apple.iokit.IOPCIFamily(2.6)@0x932000
dependency: com.apple.iokit.IONDRVSupport(2.0)@0x961000
dependency: com.apple.iokit.IOGraphicsFamily(2.0)@0x943000

2. Neither was I able to flash in XP (neither in my macPro nor a Dell desktop) because winflash merely zombies out.

On to the other comment, that I never mentioned whether it worked with the original rom. Yes, the card worked just fine on the DOS/Windows side with the original rom. As a matter of fact when I said it now glitches I mean specifically on the PC side shall we say... as in, I also plugged the card into the Dell PC and it glitches at the motherboard's bios and everything... regardless of Windows.

is it more clear now?

Thanks

ghislain
Feb 26, 2010, 04:24 AM
I have the same mac as you have and a 4870 which works perfectly in both XP (now Windows 7) and OSX. I flashed it with the Pipomolo method which is described in details on the main thread on 4870. Good luck.

Cindori
Feb 26, 2010, 04:29 AM
Xp is 10y old



Make sure you are using a rom of the same revision as your card

SaldaVonSchwart
Feb 26, 2010, 08:35 AM
Xp is 10y old

Ha! Yeah I guess you are right; DOS is like 28 at this point.... (don't quote me on that -- didn't check how old it was, just know it was around when I was born: 1982)

Anyways, so despite XP being old and whatnot, here's the facts again:

1. With the original/stock firmware, the card will run just fine in a Dell PC under XP and DOS. It will, however, crash os x on startup if I try booting up, even with the original nvidia 7300 that shipped with the macpro in a second slot. Actually, with just the 4870 inside the mac, I don't get any time of image at bootup or anything.

2. If I flash it under freeDOS on the macpro (using DOS via the nvidia) or on the Dell (using the 4870 itself), the flashing goes just fine and then I can take out the nvidia and the 4870 will run fine (so far) under os x but will glitch under Win/DOS, both in the macpro and the Dell. I am attaching a pic of the cute glitching.

. When flashing I'm always using the mod rom you supplied in a previous post. That is, from your mod folder, the ZWFC & ZWFL one. (because I have an ZWFC)

3. If I now try to reflash with the same mod rom using the os x ATI flashing tool, same deal: we are still at step 2.

4. If I try the Pipomolo method (with the original rom I dumped with GPU-z and the mod rom I've been using all along -- the one supplied by Cindori), the card will no longer run and so I'm back at step 2.


Make sure you are using a rom of the same revision as your card

Well, I'm pretty sure the glitching is rom-related. Thing is, I've been flashing to the rom file you provided for the ZWFC all this time. Others have reported that it worked for them, but it's clearly not working for me.

So how do I make sure that it's the same revision as the card I have?

Also, I'd give the Pipomolo method another try. Like I said, when trying this one out I technically extracted the EFI part from your ZWFC mac mod rom, so maybe it didn't make sense to use your already modded mac rom as the EFI source? If so, where do I get the right EFI part from?

Just for the record, I am a Junior in computer science and have also taken some computer engineering classes for the f of it. So what I'm saying is that I have no experience whatsoever with what we are dealing with here out of lack of information. But I know eeproms, fpgas, implementing bios functions with MUXes, etc... and I can obviously read assembly and C. So my other suggestion would be, if there's no easier way around it, that you tell me any design docs that I should look into. Because if I just dissasemble the rom I doubt I'll make any sense of it without any context.

Thanks!

PS: I'm attaching my original rom (RV770.bin), the Cindori rom I've been using (mac modified.rom) and 2 pics: one is the info that atiflash spits out when I flash under DOS. The other is the very cute glitching feature of the card after flashing (in this case, when booting from UBCD).

The pic of atiflash doesn't read particularly well, so in any case here's the info:
DID: 9440
ASIC: RV770/M98
FLASH: PM25LV010
ROM size: 20000
BIOS: 113-HD487AZWF92

Spanky Deluxe
Feb 26, 2010, 09:00 AM
Hmmm... tbh that second picture of yours doesn't suggest a bad ROM to me, it suggests a bad piece of hardware. You may want to flash the original ROM back to it and if the problem persists in Windows then RMA it.

SaldaVonSchwart
Feb 26, 2010, 09:41 AM
Hmmm... tbh that second picture of yours doesn't suggest a bad ROM to me, it suggests a bad piece of hardware. You may want to flash the original ROM back to it and if the problem persists in Windows then RMA it.

I said this 3 times already but, with the original rom the card doesn't do this. It works just fine.

This only happens after the flashing and only in Windows and DOS.

Cindori
Feb 26, 2010, 11:17 AM
ZWFC does not say anything, there is a bunch of different revisions 1.0, 2.0, 1.2 etc etc and all with different rom. make sure the rom you flash with is of the same Rev.

The Rominator
Feb 26, 2010, 01:05 PM
there is a alot of yapping going on in this thread

OBVIOUSLY you need to look at your original ROM and the ones written for the XFX 4870 ZWXX cards in a hex editor. ROM revision, etc is in early part of ROM, you will know pretty quickly if file is different.

If it is, you will need to use the pipomolo42 method and write a new one. It must be done properly or you will have a brick.

A computer type such as yourself should have no problem with this. My last computer class was in High School, followed by a Liberal Arts Education in TV Production. If I can figure out how to write the silly things, surely you can.

problem solved

SaldaVonSchwart
Feb 26, 2010, 09:15 PM
there is a alot of yapping going on in this thread

OBVIOUSLY you need to look at your original ROM and the ones written for the XFX 4870 ZWXX cards in a hex editor. ROM revision, etc is in early part of ROM, you will know pretty quickly if file is different.

If it is, you will need to use the pipomolo42 method and write a new one. It must be done properly or you will have a brick.

A computer type such as yourself should have no problem with this. My last computer class was in High School, followed by a Liberal Arts Education in TV Production. If I can figure out how to write the silly things, surely you can.

problem solved

I'm sorry, I don't mean to be rude but am I getting the vibe that I'm being "annoying" with my questions?

Cindori
Feb 27, 2010, 06:13 AM
upload your original rom

SaldaVonSchwart
Feb 27, 2010, 06:47 AM
upload your original rom

Ok guys... so.... here's the news: basically SUCCESS . . . FAIL . . .

so, first, the success:
-------------------------
after rominator told me that it should be as easy as:

1. grab my original PC rom
2. do the pipomolo method with EFI from that famous 4870.ROM on my original PC rom

I did exactly that and, obviously, ended up with the right modded bios for my card. After flashing this new rom, the card worked just fine in both os x and Windows.

So my two mistakes were:

1. trying to just flash the pre-made Cindori rom just because it was for a ZWFC, disregarding the version issue. When I checked the versions in the roms, like you said, they were different versions)

2. when trying the pipomolo method as a second alternative, I did use my original PC rom but still extracted the EFI part from this same Cindori modded rom.

So ok, my bad... and like I said after using the right roms the card seemed just fine. That's the success part.


Now, onto the failure S:
-----------------------------

Basically, after switching between os x and windows a few times, trying out games and other apps in both and whatnot, I decided to once again switch to windows and play a game for like 3hrs. 3hrs go by and everything is fine. Then I decided to switch back to os x. When windows was shutting down it froze and I had to shutdown the machine. Well... I turned it back on and ..... the card is dead.

I spent the next 2 hrs trying to make it work but nothing. The mac turns on, I hear the chime and the screen never gets any signal/input. I can turn the machine on and fidget as much as I want with the monitor cable but nothing. black screen. If I take the card out and put the original nvidia 7300 then the machine starts up just fine.

:(


So, it looks to me like the whole rom flashing issue is resolved at this point. And I want to say thanks to all you guys for helping me out.

As to what to do next, I don't know whether to consider the card dead and try going the RMA way at this point, or if anyone has any thoughts on this. I guess it could be flashing-related? but then again, it seems a bit odd that it did work just fine on both win and os x for like 4hrs total before dying.

So any thoughts are welcome.

Thanks again!

Cindori: in case you want to take a look here's my original PC rom and the one I flashed into the card and used until it died (I renamed them original and modded just to send them).

Cindori
Feb 27, 2010, 07:15 AM
that modded.rom is very bad,
you using that, I find it amazing the card even worked for a while.


Correct modified rom attached


if you still can boot osx with 7300+4870 then flash using my tool
if not 4870 can boot then try bootcd method


http://web.me.com/jacobcroft/4870Flash/4870Flash.html

Dai Bando
Feb 27, 2010, 03:51 PM
that modded.rom is very bad,
you using that, I find it amazing the card even worked for a while.


Correct modified rom attached


if you still can boot osx with 7300+4870 then flash using my tool
if not 4870 can boot then try bootcd method


http://web.me.com/jacobcroft/4870Flash/4870Flash.html

looking forward to flashing my xfx4870 ordered today–and saving $200.

Frozengeek
Feb 27, 2010, 06:11 PM
Cindori,

I tried your latest modified rom on an hd-487a-zwfc and it doesn't work - flies fine under XP, but power error shuts down the machine on the Mac OS side.

Suggestions? Anyone have a rom that works on the hd-487a-zwfc?

Cindori
Feb 27, 2010, 06:54 PM
did I say it would work on your card?

it was tailor made for OP's card and ZWFC means nothing, there are several ZWFC versions, all with different rom compatabilites, if you read my post 8 posts up you would know that

Nadav35
Feb 27, 2010, 09:27 PM
Has anyone successfully flashed a PC 5870 to work in a 2008-2009 mac pro?

Mackilroy
Feb 27, 2010, 09:54 PM
Has anyone successfully flashed a PC 5870 to work in a 2008-2009 mac pro?

Nope, and no one will until Apple releases one.

Frozengeek
Feb 27, 2010, 10:50 PM
Cindori,

Sorry, didn't mean to offend. Just looking for a solution.

SaldaVonSchwart
Feb 27, 2010, 11:53 PM
that modded.rom is very bad,
you using that, I find it amazing the card even worked for a while.


Correct modified rom attached


if you still can boot osx with 7300+4870 then flash using my tool
if not 4870 can boot then try bootcd method


Cindori, I tried your rom but it didn't work.

With your rom, the card behaves in the following way:

. In the mac, it does nothing. If it's the only card in the machine the machine chimes and after that sits there; the screen gets no signal.

. If I add the nvidia and boot with both cards, I get signal from the nvidia and can go to windows but if I try booting into os x it panics.

. On the Dell PC, the card works fine (so far, apparently).

Any thoughts?


By the way... at this point I made a few comparisons between your version of the modded, my version (the one you said was 'very bad') and the original rom that shipped with the card.

This is what I see so far:

.The original rom is
63732 bytes of data
48908 bytes free (some padding...)
15504 more bytes of data
2928 free bytes at the end

.My mod rom (the bad one) is:
63732 bytes for the "PC section"
264 bytes free (NOOP/spacer)
64148 bytes of what I assume to be the "EFI section"
2928 bytes left free at the end

.Your new mod rom is:
63732 bytes of "PC section"
264 bytes free (NOOP/spacer)
64660 bytes of what I assume to be the "EFI section"
2416 bytes left free at the end

the "PC sections" of both our mod roms differ from the original PC rom in the following way:

First, well the whole second chunk of data (the 15504 bytes) are either gone or mixed in with the "EFI section" or something...

Of the first 6372 bytes:
byte 469: the original is 0x80 and both yours and mine are 0x00 -> this is apparently from the python script.
byte 48105: the original and mine are 0xB8 and yours is 0xBA. No idea about this one.

Still, disassembly of the atom bios from the three roms' first 6372 bytes (original PC, your mod, my mod) shows exactly the same data and command tables...

For the "EFI section"... first off, we obviously have a size difference. Your's is 512 bytes longer.

As for specific byte differences.... there's a ton.

So anyways, let me know if you can think of anything else...

SaldaVonSchwart
Feb 28, 2010, 01:34 AM
Hey, Cindori.... so I was just going through the roms in hex again and... I think you might have used the wrong EFI? like the one for a 4890 instead of 4870?

First, there's the size difference I mentioned in the previous post. And now that I'm going through the files again, I found this at 0x0FAC0:

your rom: ATI Radeon HD 4890
0x(41 54 49 20 52 61 64 65 6F 6E 20 48 44 20 34 38 39 30)

my rom: ATI Radeon HD 4870
0x(41 54 49 20 52 61 64 65 6F 6E 20 48 44 20 34 38 37 30)

basically 0X39 vs 0X37

So now I'm thinking the size difference is also due to the EFI part you put in this rom being from a 4890.

At this point I'm going to ask... why is it that my mod rom was very bad? I did exactly what the pipomolo method said I should

Cindori
Feb 28, 2010, 05:29 AM
lol you are right, I used 4890 EFI, good work on noticing that

your rom was bad because it only had one MCUC


i'll make a new rom in 3 min

SaldaVonSchwart
Feb 28, 2010, 05:46 AM
lol you are right, I used 4890 EFI, good work on noticing that

your rom was bad because it only had one MCUC


i'll make a new rom in 3 min


Sweet! I'm waiting for that new rom .... :)

Now, besides the fact that you are making a new rom and that will most probably mean I'll be all set, I'd really like to understand more about the whole subject.

About the rom I screwed up for instance, can you tell me a bit more about how did I mess it up? I mean, it's obvious that I don't really know too much about the whole rom thing to start with. I just did what rominator told me: use the pipomolo42 instructions. So basically:
. I extracted the EFI part from that one 4870.ROM file that's been around in the original 4870 thread.
. Added the EFI at a certain position in my original PC rom
. Ran the phython script to re-align the new rom.

Now, the problem is that still I was just following instructions without knowing pretty much anything about the ATI rom structure nor the code inside it. With the atomdis I was able to disassemble the pc part of it and surely enough, it's a bunch of code in assembly for the eeprom they use in the card (which I'm not sure which one it is -- an Atmel maybe?)
I can partially understand the different functions in this code but still, without further knowledge of the architecture it's not super clear.

And you said my rom only had one MCUC. I have no idea what this is. Again, I think because I have no idea about ATI's architecture. And about the EFI side of things... is it a matter of reading the EFI spec on the EFI website or is it an ATI specific thing too? (I k now EFI is not ATI specific, but I mean if the EFI side of the card is an ATI specific thing in terms of implementation).

So as you can see, I have a lot of questions.... I don't know, if you can/want It'd be really cool if you give me a few pointers. I actually like doing all the work myself, only that I don't know where to start.

Thanks!

Cindori
Feb 28, 2010, 06:10 AM
try this

SaldaVonSchwart
Feb 28, 2010, 06:31 AM
try this

Still not working man ... :(

Thanks for all the trying still...

Don't know if it's got anything to do, but this rom you just gave me seems to have a different structure after the 63732 first bytes. Basically, the whole Motmot and Radeon HD 4870 header seems to be missing (in all the other roms it starts at 6400 and the Radeon thing usually shows up around 64196)

Frozengeek
Feb 28, 2010, 06:31 PM
I don't know what I did wrong, but now my MP won't boot if I have the XFX card in any slot. Even tried with my gt120 still in.

So I decided this flashing thing ain't for me. Guess I'm not smart enough.

If anyone is interested in profiting from my tragedy, I'm ebaying this probably very usable card.

http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=200444936156&ssPageName=ADME:L:LCA:US:1123

SaldaVonSchwart
Feb 28, 2010, 08:43 PM
I don't know what I did wrong, but now my MP won't boot if I have the XFX card in any slot. Even tried with my gt120 still in.

So I decided this flashing thing ain't for me. Guess I'm not smart enough.

If anyone is interested in profiting from my tragedy, I'm ebaying this probably very usable card.

http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=200444936156&ssPageName=ADME:L:LCA:US:1123

Dude, you don't necessarily need to get rid of your card. I mean you can do whatever you want of course haha, but I'm just saying. The card is not dead or a lost cause.

Let me give you a little background on the whole flashing deal:

So, I'll assume you don't know much about it. If you do I'm sorry that I'll sound a bit repetitive.

The rather simplified version is as follows:

The hardware in these cards is perfectly capable of working with any machine that implements PCI-E. PC's with PCIE and the MacPro, for instance fall into this category. So this means the card can work on both PCs and Macs. Now, the card has, among many other components, one IC (integrated circuit -- a chip) which acts as a general controller for the card. That is, this chip is the one that initializes the card, provides all the info that a machine wanting to use the card needs (for the machine to discover the card -- know what it's dealing with and what this card's capabilities are) and establishes a bridge between the hosting machine and the GPU (graphics processing unit -- like your comp's CPU but specific to graphics) in the card.

This controller is of type eeprom (electrically erasable programable read-only memory). The name eeprom is sort of a misnomer at this point because, being electrically-erasable and therefore re-programmable, it is not properly a read-only memory. But anyways this name is an extension of the original ROM chips which back in the day were hard-coded (by burning internal fuses in the chip) at the factory and, once programmed, could no longer be modified. The name just stuck in the industry as the ROM technology evolved throughout the years.

Technically, what we are doing here is flashing new firmware. That is, flashing implies that we erase the data inside the eeprom and upload new software to it. The software is the so-called ROM files, and again we speak of rom but they are firmware. This is another borderline term at this age, but it's basically software meant to run in a dedicated IC and mainly for controlling / interfacing purposes, as opposed to regular macro-scale software running in the context of an OS.

So, back to the story. Computers also have their own eeprom chips with their own firmware. This firmware is executed when the machine starts up, before any OS loading. When a machine starts up, before loading the os at all, one of the things the firmware does is to poll the buses (PCI for instance) to discover any devices plugged to the machine's motherboard. Any devices found, are queried for their info (model, make, capabilities,etc...) and are assigned a memory address so that the CPU in the computer can address them for future use.

So the sequence, sort of, is: machine's firmware in the machine's eeprom polls and queries the PCI bus-> the firmware in the eeprom's of different devices in the PCI bus (such as the video card) in turn, query their own hardware in the card and then report this info back to the machine's firmware. This way, by the time the OS starts loading, the kernel has enough info on what devices are present, what their characteristics are and what drivers to load up to interface with them in the context of the os.

So let's put all this together now. The main difference between a PC and a Mac at bootup time, that we are concerned with for the purposes of the card, is that the firmware involved in a PCs start up process is what we call the 'old-world' BIOS. BIOS historically means basic input output system and it's a firmware arquitecture for implementing this whole (simplified) process I (sort of) explained. In other words, a certain way of accomplishing this process. Macs, have for some time now been using a different version of the truth, called EFI (extensible firmware interface).

So Macs and PCs both go through this whole start up, discovery process. Only that PCs do it by implementing a BIOS architecture and Macs use an EFI architecture. The PC video cards we are dealing with here have BIOS-type firmware in their eeproms. So this means that if you plug them in a PC, they get along just fine with the PCs BIOS-based start up sequence and everything goes fine. If you plug the card in a Mac, however, this is not the case, because you are basically having the Mac's EFI trying to comunicate with a device in the PCI bus that speaks another language all together, mainly BIOS (this is somewhat figurative -- remember, BIOS or EFI are not 'languages'). So the symptom of plugin in the PC card with the original PC firmware (PC bios, PC rom, whatever you want to call it) is logical: the mac chimes and after that..... black screen. nothing. Basically, the Mac can't communicate with the eeprom in the card and can't do anything about it. The OS cannot start either, because OS X at least in its default state needs some standard output device in the form of a video interface.

If you plug in now another card, a mac one, and now you have 2 cards in the machine the story is different. Now, at start up, pre-os, again the mac can't communicate with your PC card. But it can certainly poll and query your second mac card, and this is the one that it adds to the list of devices that the kernel will need to load a driver for. This is why with the second card, you at least do get a grey screen in the mac and maybe even the apple logo.

At this point, though, this is where I am not entirely sure how the story continues... just because I've never looked into the os x booting process yet (I mainly do audio software these days). It appears that, at some point, in the process of loading drivers for the different devices, the kernel still runs into the 'foreign' card and something gets messed up. Maybe the kernel has mismatched info or sees some PCI device and has basic info on it and still tries to install a driver to interface with it (crash logs seems to imply this). In either case, something goes wrong and the machine will usually give you a so-called kernel panic because the attempt to interface with the PC card goes wrong.

So what are we doing when we flash the card? the idea is, we leave the BIOS code inside the firmware and we also add an EFI section of code which (I'd assume) does exactly the same as the BIOS code but comforming to the EFI architecture. In this way, if the card is in a machine with BIOS, the BIOS section of the card can communicate with this machine. If the card, in contrast, is in an EFI machine, then it can still communicate with this machine too, through it's EFI section of code. Makes sense?

Last, this firmware is specific to your card. I mean, there's a a lot of code that is going to be shared between different cards of the same manufacturer and if the cards are, say ... ZWFC's or something between those too. But still, the cards can be different revisions. And different revisions imply some firmware code in the eeprom has changed. So this is why you can't just flash the card with someone else's firmware unless you are positive they have the same card as you, down to the revision of the firmware. And the only way to figure out the revision of the firmware is by examining the firmware itself.

So what most probably happened to your card is that you flashed it to the firmware that Cindori made me. This firmware was unfortunately wrong, because he made a mistake and used the EFI section of a 4890 card and not a 4870. But besides that, it might also not been even the right BIOS section for your card, because you and me might have different revisions of the same card.

So your card is in a state of induced-brickness shall we say (as in it's brick right now but it's not permanent).

For one, you might have the wrong BIOS in it... so the card might still work in a PC (thought it might be glitchy because the BIOS inside it might be trying to do things that are not exactly right for the hardware actually present in the card).

Also, you definitely have the wrong EFI in it. So on the OS X side of things (on the EFI side we should say), things are definitely wrong. The EFI firmware in the card is going to try and do / report things that are totally mismatched in terms of the hardware actually present in the card.


The first thing you can do, if you haven't done so already, is to flash the card back to the orginial PC rom. Then you have once again the card fully functional in PC world as it shipped.

The second step would be to try to come up with the right BIOS/EFI hybrid firmware for your card. This is what I personally have been trying to do for a few days now with no success. The process basically amounts to:

1. Backup your original PC firmware
2. Extract the EFI firmware from a suitable mac firmware file for your card
3. merge these BIOS and EFI parts into one hybrid firmware
4. realign some jump tables here and there to account for the nasty-ass merging you just did.

The above steps are basically, the pipomolo method. Personally I haven't had 100% success with it so far...

I have at least one doubt about the above process. How do I make sure that the EFI firmware I'm extracting from a ROM file in step 2 is the right one? Because since there's different BIOS code for different revisions of the card, I'd assume there might as well be different EFI versions for different revisions of the card too. That's one thing I'm unsure about.

Still, say there only one EFI version of the code for a 4870. And say I have been using the right EFI code all along. I'm still having problems. So I wonder, is my problem then with re-aligning the code? The thing about this is that we are just executing a script that someone made. So, personally, I can't really tell too much how the code is really being modified. If I had a way of reading both the BIOS and EFI sections in either assembly (with references of course) or, better yet, in C, then I could better understand if the final firmware makes sense or not.

But that's a whole other story.

Anyways, this whole thing turned super long!!! I don't know, hope it's at least somewhat interesting. And yes, I might have totally got something I said wrong within all this stuff.....

Cindori
Feb 28, 2010, 08:52 PM
bricked cards can almost 100% be reflashed if you use a PC booting DOS and perhaps a 2nd GPU to run display.

either way, if you've given up you've given up. you need to find the spirit before you find a way to repair the card.


i'll take a 2nd look at your rom tomorrow, Salda..

SaldaVonSchwart
Feb 28, 2010, 08:57 PM
bricked cards can almost 100% be reflashed if you use a PC booting DOS and perhaps a 2nd GPU to run display.

either way, if you've given up you've given up. you need to find the spirit before you find a way to repair the card.


i'll take a 2nd look at your rom tomorrow, Salda..

Thanks a bunch Cindori! :)

Like I said, you might want to check the fact that the last rom you made me didn't seem to have the "Radeon header" at all in the EFI section .... that's the one thing I noticed.

Thanks!

Cindori
Feb 28, 2010, 09:09 PM
y but your original didnt either:)

anyway off tobed

SaldaVonSchwart
Feb 28, 2010, 09:16 PM
y but your original didnt either:)

anyway off tobed

Damn this roms!!

Ok, let me know.

Thanks again!

SaldaVonSchwart
Mar 1, 2010, 01:09 AM
In the meantime.... I got me the EFI spec 1.10 and the EFI writer's guide 1.10. Cool stuff....

now I just need an EFI disassembler and, ehhh ... time to digest about 1000 pages of docs.

I'm going to start reading this stuff at some point.

Cindori
Mar 1, 2010, 07:01 AM
fixed it

SaldaVonSchwart
Mar 1, 2010, 07:38 AM
Dude! It totally ****ing works!!!!

Thanks a bunch!

Ok. Now that my card's up and running. Would you mind telling me exactly what you did so I can learn? or at least tell me where to look for more info?

Like I said before, I literally followed pipomolo's method, which really amounts to a no-breainer: grab original rom, grab mac rom, execute 3 bash lines and 1 python script. In this respect, I obviously did have the 'right' original pc rom. So my only guess is that I had the wrong mac rom to extract the EFI section from. But maybe there's something else I'm missing...

If you did it the pipomolo way, please tell me what did you do different. If you did it through some other method, then still tell me about it if you don't mind.

Thanks again!

Cindori
Mar 1, 2010, 08:06 AM
you have to account for adjusting the tables, the pipmolo method works for some roms but usually you have to push the last mcuc a bit down or it will be overwrited

peloche has some guides in his sig

the problem with my first rom was that it was made in the middle of the night and I made some misses

SaldaVonSchwart
Mar 1, 2010, 06:05 PM
So you mean just the two links to flashing for 4890 in his sig?. Specifically, the graph on how to modify the rom via 0xed?

I have a few questions, if you don't mind telling me a bit about it:


1. Are you using just a hex editor then or are you disassembling the BIOS and/or EFI code to see the actual jump addresses?

2. Then the whole jumptable issue is with the bios section of the rom and not with the EFI part?

3. My concern here would be, right now it's relatively possible to follow instructions and getting it done all in a hex editor, but say this mcuc's are in different places in another rom (say, for instance, in a new rom for another card or something). Unless you actually know what the hex translates to in assembly there's no way you can find them in the hex editor. So my initial guess would be that you'd need to use atomdis to dissasemble the pc rom.

4. Is there only one EFI rom for each model of card (model here I mean marketing ner. such as 4870)? Cause if not how do you know you are extracting the EFI from the right mac rom? or how do you get a hold of, say, the right EFI rom for a 4870 rev. x?


I'm just trying to understand it all better, just in case someone ever needs help and maybe I can help them out like you helped me.

Thanks!

BTW, I think besides the fact I'd still like to learn about the process, this thread is sort of done, huh?

Frozengeek
Mar 2, 2010, 09:36 AM
Thanks for the support, guys. Yeah, this card is probably fine and can be fixed lickety split, but I've already got bidders so I'm moving on in life.

My kudos to you superstars. I'll hackintosh my C2D for fun this weekend and to get my mojo back...

Best wishes,

Frozengeek

kchila
Mar 3, 2010, 08:10 PM
So my motherboard and graphics card crapped out on me at the same time. Rather than buy a new graphics card from Apple (and waist a ton of money), I thought I'd just do this. I have a MacPro1,1 and am going to get my Mac back tomorrow, without a graphics card. First off, will I even be able to boot my Mac without a graphics card and use VNC to access my mac? Either way I can't install Natit because I wouldn't be able to boot. I am considering getting the same graphics card. But basically, now that I have the option. Which graphics card should I buy? Where should I buy it? And what method am I going to have to use to get this all working?

audio_inside
Jul 11, 2010, 01:50 AM
Hi,
My system:
MacPro 2006 1,1.
16GB.
Snow Leopard 10.6.2

Monitor: Samsung SyncMaster 206BW
Card I'm dealing with: XFX HD 4870 -- the ZWFC model (1GB)

What Rev is your ZWFC? I have G.1 and haven't seen a ROM for it yet.

-Steve

Update: Link to G.1 ROM in this post: http://forums.macrumors.com/showpost.php?p=10534659&postcount=63