Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
I can certainly see why the guy from ten thousand percent settled for 39-01-2060 and carving the middle pin. I can't find proper PCIe Molex 45559-0002 in Europe with lead on shorter than 65 days. Mouser have them, but they Fedex parts from US, so it costs £12 in delivery charges alone to get your two PCIe plugs and 12 tiny pins shipped to Europe. Farnell has pins, but they don't have PCIe plugs, they can ship them from US for additional £15.95. I'm literally scratching my head as to why is it so difficult to get simple proper PCIe connectors. It's not like they were invented yesterday.
 
The PCIE end can be "recycled" from any Molex to 6 pin adapter.

You need something that is round and just fits in the connector end to push the pins back out the wire end.

Most new cards ship with these so you will have what you need.

Mouser number is 45559-0002, as VON said.
 
bahh i'm in the same boat. The sapphire 1g card finally arrived today and i only have 1 of those power cables. (forgot i needed 2!!). I was hoping to get it flashed tonight so i'll have to see if i can put something together.

In the mean time....do you think the sapphire 512 rom that was posted is the best bet to try?
 
bahh i'm in the same boat. The sapphire 1g card finally arrived today and i only have 1 of those power cables. (forgot i needed 2!!). I was hoping to get it flashed tonight so i'll have to see if i can put something together.

In the mean time....do you think the sapphire 512 rom that was posted is the best bet to try?
I think it depends of whether your card is "built by ATi". It that case, I think Atiflash will indicate as board name "Wekiva RV770" and you'd better try the apple ROM. But it's a 1Gig card, so flashing is risky with either rom. In my view, you should make a custom ROM (original BIOS+Mac EFI) as pipomolo42 did. The PC functionalities will not be affected, and you should have better success if the ROM is edited properly.
 
I think it depends of whether your card is "built by ATi". It that case, I think Atiflash will indicate as board name "Wekiva RV770" and you'd better try the apple ROM. But it's a 1Gig card, so flashing is risky with either rom. In my view, you should make a custom ROM (original BIOS+Mac EFI) as pipomolo42 did. The PC functionalities will not be affected, and you should have better success if the ROM is edited properly.

I see what you mean. Well...since it looks like i need to order 1 more power cable maybe pipomolo42 will have some sort of tutorial available by the time it arrives :) Either way i'm really looking forward to trying to get the 1g card to work!
 
You will need to use Hexedit to change device id in the ROM...pretty easy...do a search for "02104094" and replace it with correct string for your card.

(This is Endian flopped 1002 (ATI) 9440 (Dev id of 4870 512)

I am assuming that 1 Gig cards have different dev id.

For second power cable you could use the Molex to 6 pin for one of the temporarily.
 
You will need to use Hexedit to change device id in the ROM...pretty easy...do a search for "02104094" and replace it with correct string for your card.

(This is Endian flopped 1002 (ATI) 9440 (Dev id of 4870 512)

I am assuming that 1 Gig cards have different dev id.

For second power cable you could use the Molex to 6 pin for one of the temporarily.

hmm...do you know where in a 2009 you'd plug the molex into? The super drive cables only have sata on them?
 
I've never seen a sata to pcie conversion, but there are sata to molex:

http://www.newegg.com/Product/Product.aspx?Item=N82E16812123137

You could do sata to molex to pcie. I don't know if it would actually work though.

It wouldn't work, he would need oddity - like sata socket/male to molex plug (RB-413):
RB-413.jpg

Then PCI-E molex Y splitter. And thread it through the back. I think second motherboard->6 pin PCIe will be just easier.
 
You will need to use Hexedit to change device id in the ROM...pretty easy...do a search for "02104094" and replace it with correct string for your card.

(This is Endian flopped 1002 (ATI) 9440 (Dev id of 4870 512)

I am assuming that 1 Gig cards have different dev id.

For second power cable you could use the Molex to 6 pin for one of the temporarily.

It would appear the 512/1024MB cards bear the same device ID (http://forums.techpowerup.com/showthread.php?t=85883, also saw it mentioned on a couple other forums), so I would hope that makes it easier to flash the 1GB cards.

I'm running with a early '08 octo-2.8 and looking to attempt to upgrade my 8800 by flashing one of these:
http://www.newegg.com/Product/Product.aspx?Item=N82E16814102801

Been watching this thread since it's inception...so I have some hope this will ultimately work. I would just assume it's an issue of properly accounting for the larger memory table.
 
So, here is how I do it:

- get the Mac 4870 rom available in this thread (named 4870.ROM)
- get the 128k vgabios of your PC card (named pc4870.rom)
- get tyhe fixrom.py script that I attached here

run the following commands in a shell (either MacOS X or Linux)
Code:
dd if=4870.ROM of=efi.part bs=1 skip=63488 count=49152
blocknum=`printf %d "'\`dd if=pc4870.rom bs=1 skip=2 count=1 2>/dev/null\`"`
size=$(($blocknum * 512))
dd if=efi.part of=pc4870.rom bs=$size seek=1 conv=notrunc
python fixrom.py pc4870.rom pc4870.rom

first one extracts the efi part of the Mac rom
then get the number of 512 bytes blocks of the bios part of your pc rom
then converts it to a size in bytes
then injects the efi part right after the bios part
then the script fixes last rom indicators and checksums

You can then flash the pc4870.rom to your card, using FreeDOS for instance

If you want to do manual modifications to either part of the rom, don't forget to run the fixrom.py script after.

This should work with most (if not all) of the 4870 cards. If it doesn't work for you, just pm me a link to your pc vgabios.

EDIT : MAKE SURE YOU HAVE EXTRACTED THE FULL 128K OF YOUR CARD'S ROM BEFORE TRYING ANYTHING, OR ELSE IT WON'T WORK!
ALSO, MAKE SURE YOUR PC 4870 ROM FILE IS ACTUALLY NAMED "pc4870.rom" IF YOU GET AN ERROR MESSAGE LIKE "dd: bs must be between 1 and 2147483647"
 

Attachments

  • fixrom.py.zip
    1 KB · Views: 2,405
Hi,

Not sure if you already know about it, but Intel's EFI Developer Toolkit (EDK) contains an utility called EfiRom, which can be used to join BIOS/EFI images
together. It can also be used to dump hybrid ROMs, like the 4870.ROM in this thread. Do you know how it relates to the procedure outlined above ?

Here's this utility's output on 4870.rom, for instance :

Code:
>efirom -d 4870.rom
Image 1 -- Offset 0x0
  ROM header contents
    Signature              0xAA55
    PCIR offset            0x0260
    Signature               PCIR
    Vendor ID               0x1002
    Device ID               0x9440
    Length                  0x0018
    Revision                0x0000
    DeviceListOffset        0x00
    Class Code              0x030000
    Image size              0xF800
    Code revision:          0x0B11
    MaxRuntimeImageLength   0x00
    ConfigUtilityCodeHeaderOffset 0x5441
    DMTFCLPEntryPointOffset 0x2049
    Indicator               0x00
    Code type               0x00
Image 2 -- Offset 0xF800
  ROM header contents
    Signature              0xAA55
    PCIR offset            0x001C
    Signature               PCIR
    Vendor ID               0x1002
    Device ID               0x9440
    Length                  0x0018
    Revision                0x0000
    DeviceListOffset        0x00
    Class Code              0x030000
    Image size              0xC000
    Code revision:          0x0000
    MaxRuntimeImageLength   0x00
    ConfigUtilityCodeHeaderOffset 0x00
    DMTFCLPEntryPointOffset 0x00
    Indicator               0x80   (last image)
    Code type               0x03   (EFI image)
  EFI ROM header contents
    EFI Signature          0x0EF1
    Compression Type       0x0001 (compressed)
    Machine type           0x0EBC (EBC)
    Subsystem              0x000B (EFI boot service driver)
    EFI image offset       0x0160 (@0xF960)

Its help gives out :

Code:
Usage: EfiRom [options] [file name<s>] 

Copyright (c) 2007, Intel Corporation. All rights reserved.

Options:
  -o FileName, --output FileName
            File will be created to store the ouput content.
  -e EfiFileName
            EFI PE32 image files.
  -ec EfiFileName
            EFI PE32 image files and will be compressed.
  -b BinFileName
            Legacy binary files.
  -l ClassCode
            Hex ClassCode in the PCI data structure header.
  -r Rev
            hex Revision in the PCI data structure header.
  -n
            not to automatically set the LAST bit in the last file.
  -f VendorId
            Hex PCI Vendor ID for the device OpROM.
  -i DeviceId
            Hex PCI Device ID for the device OpROM.
  -p, --pci23
            Default layout meets PCI 3.0 specifications, specifying this flag will for a PCI 2.3 layout.
  -d, --dump
            Dump the headers of an existing option ROM image.
  -v, --verbose
            Turn on verbose output with informational messages.
  --version
            Show program's version number and exit.
  -h, --help
            Show this help message and exit.
  -q, --quiet
            Disable all messages except FATAL ERRORS.
  --debug [#,0-9]
            Enable debug messages at level #.



I'm attaching a build of efirom to this post.

Best regards,


AG
 

Attachments

  • efirom.zip
    15.7 KB · Views: 683
Not sure if you already know about it, but Intel's EFI Developer Toolkit (EDK) contains an utility called EfiRom, which can be used to join BIOS/EFI images
together. It can also be used to dump hybrid ROMs, like the 4870.ROM in this thread.

efirom's purpose is, as you pointed out, to pack a vgabios and a EFI PE32 into one single rom image.

It would be useful for us if we had to edit the content of the EBC binary, which we don't, luckily.

And efirom can only display headers info of an existing rom image, it cannot dump a rom image from a card, or extract binaries from a rom image. But the latter is quite easy to do using dd, actually.
 
pipomolo, it's not easy because pe image is compressed.

althought it's easy to dump anything from efi memory, using efi shell :)

here is what i believe to be radeon efi pe driver, use to create new firmwares - http://rapidshare.de/files/46178699/radeon_rv770.efi.html

I'm using it this way

./efirom -o 4850_only_name_change.rom -b ./macpro/4850rom/RV770.bin -ec ./radeon_rv770_4850.efi -l 30000 -f 1002 -i 9442

it ignores classcode for efi part for whatever reason :(

and, since u have to cary about MCuC part, u need only to create efi part and integrate it using ur manual.

./efirom -o ohai_efi.rom -ec ./radeon_rv770.efi -l 30000 -f 1002 -i 9440

why it can be usefull ? well, if there will be a fixed framebuffer driver for 4870/4850 and it will have other name than Motmot, we will need to edit some strings in efi driver.

hm. it opens possibilities to create roms for 8800gt/gts512 9800gt/gtx with their native bioses.
 
bahh i'm in the same boat. The sapphire 1g card finally arrived today and i only have 1 of those power cables. (forgot i needed 2!!). I was hoping to get it flashed tonight so i'll have to see if i can put something together.
About those bloody cables... :rolleyes:
Will a PCI-E splitter work, if one already has a cable (I have one with the radeon X1900XT)?
That is much cheaper than another apple-molex to PCI-E cable.
Still, I would be reluctant to connect the two plugs of the 4870 to a single molex. Will it melt? Will I blow a fuse, run out of power during a game? :D :eek:
I suppose there is a good reason for the two plugs on the 4870.

EDIT: it turns out the 4870 does not consumes more power than the X1900XT, so this should be ok. Why the two power plugs on that card?
 

Attachments

  • outletpc_2045_2549990.gif
    outletpc_2045_2549990.gif
    8.1 KB · Views: 4,514
About those bloody cables... :rolleyes:
Will a PCI-E splitter work, if one already has a cable (I have one with the radeon X1900XT)?
That is much cheaper than another apple-molex to PCI-E cable.
Still, I would be reluctant to connect the two plugs of the 4870 to a single molex. Will it melt? Will I blow a fuse, run out of power during a game? :D :eek:

I took two feeds off an optical bay molex plus a pcie feed for a 3870x2 and an X1900XT on a MacPro 1,1 and all seemed fine. Loaded up COD4, pressed mouse button to fire and the MacPro shut down. Red LEDs were indicating CPU A+B failures but this was linked to the PSU crapping out on the molex connector which was drawing more juice than it was designed for.

Eventually got a pcie power splitter Y cable and ditched the X1900 for a 3870.

Going to replace both with a flashed 4870 now. Might reduce my electricity bills also...
 
4870 draws considerably more power than X1900. The reason why you have two connectors on the card is because it is expected to draw more than 10 Amps on 12V rail. Unless there is some documentation to suggest dual molex cable in mac pros is on rail rated to 24Amps+ keep in mind they were originally only supposed to power two combo drives drawing 25W each.

Later on today I will hook up my regular PC to wattmeter, first with PCI card, then with 4870 and tell you exactly how much power it draws under load.
 
I wonder what the total saving on getting a flashed card over an apple card is?

What would the break down be? If you factor in extras needed plus the cost of your time?
 
At current UK prices you can buy PC version of 4870 around £140-150 mark, Apple Store price is £280, so it's almost two to one. Additionally, availability of cards from Apple varies between 4 and 6 weeks from day to day, whereas you can grab PC one from any shop with next day delivery.

Another advantage, already hinted in this thread, is that you can actually edit the rom before merging with EFI and improve on clock speeds.
Once we sort out quick availability of cables it's a no brainer. I'm waiting for delivery guys to knock on my door today and tomorrow and as soon as I have all the gubbins and gismos I'll try and post quick instructions how to crimp yourself a cable in a jiffy or two for under a tenner.
 
The cost is perhaps one of the less important reasons for flashing a card. It's not only a matter of principles, but there are also a couple of people who enjoy playing around with electronic devices (including me) therefor this can be considered as a hobby. There are not much occasions to fiddle about the hardware in Apple computers, and this is one of the rare situations where the work can lead to something very useful...
 
pipomolo, it's not easy because pe image is compressed.

althought it's easy to dump anything from efi memory, using efi shell :)

Well, it's quite easy to do actually : the EFI SDK provides an implementation of the compression & decompression algorithms. I can post binaries for simple compression and decompression tools this evening.

And by the way, I wouldn't trust something dumped from ram as there is some possibility that it was altered during execution.

why it can be usefull ? well, if there will be a fixed framebuffer driver for 4870/4850 and it will have other name than Motmot, we will need to edit some strings in efi driver.

True. But until we actually know what to edit, the simple copy & paste of the compressed binary using dd is far enough.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.