Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MacVidCards

Suspended
Original poster
Nov 17, 2008
6,096
1,056
Hollywood, CA
Netkas was kind enough to write a ROM for the 4850 si I felt obligated to try it out.

I got an HIS 4850 tonight.

As already posted, this card had a Pmc 64K chip on it. I removed it and soldered on a 128K Atmel in it's place.

I flashed the card with Netkas' rom. The card does not boot into OSX...black screen. It will boot into Windows....where Vista installed a new driver than the one it had for it before the flash. In the SCARY department, the fan wasn't working...I had to manually run it via ATI COntrol. I think it was running by itself before but will need to reflash and verify.

WHen I installed the 4870 with the 4850 and booted into OSX I got some new messages. First a "Low Power" warning and then a Kernel thing I had never seen before:

Sun Mar 15 17:04:31 2009
panic(cpu 2 caller 0x001A9C68): Kernel trap at 0x0064decb, type 14=page fault, registers:
CR0: 0x80010033, CR2: 0x332854c8, CR3: 0x0118e000, CR4: 0x00000660
EAX: 0x21b521b5, EBX: 0x8f3bb008, ECX: 0x09f76800, EDX: 0x332854c8
CR2: 0x332854c8, EBP: 0x8ec3aa28, ESI: 0x09f76800, EDI: 0x0af21478
EFL: 0x00010246, EIP: 0x0064decb, CS: 0x00000008, DS: 0x69c80010
Error code: 0x00000000

Backtrace (CPU 2), Frame : Return Address (4 potential args on stack)
0x8ec3a7e8 : 0x12b4f3 (0x45b13c 0x8ec3a81c 0x1335e4 0x0)
0x8ec3a838 : 0x1a9c68 (0x464700 0x64decb 0xe 0x463eb0)
0x8ec3a918 : 0x1a038d (0x8ec3a930 0x8ec3aa6e 0x8ec3aa28 0x64decb)
0x8ec3a928 : 0x64decb (0xe 0xffff0048 0x8ec30010 0xcb0010)
0x8ec3aa28 : 0x64f0e2 (0x9f76800 0x0 0xaf21474 0xbdd50bfe)
0x8ec3aaa8 : 0x422e29 (0x9f76800 0xaf2146c 0x48 0x8ec3ab28)
0x8ec3aaf8 : 0x64c523 (0x9f4ae00 0x64f0ec 0xaf2146c 0x48)
0x8ec3ab38 : 0x43e858 (0x9f76800 0xaf2146c 0x48 0x0)
0x8ec3ab78 : 0x43f40b (0x667748 0x9f76800 0xaf2146c 0x48)
0x8ec3abd8 : 0x43cfb4 (0xacf5c80 0x3 0x8ec3ac20 0x0)
0x8ec3acf8 : 0x18e4eb (0xacf5c80 0x3 0xaf21468 0x0)
0x8ec3bdb8 : 0x12d506 (0xaf21440 0xafda5a0 0x0 0x0)
0x8ec3bdf8 : 0x126609 (0xaf21400 0x0 0x9c 0x8ec3bee4)
0x8ec3bf08 : 0x198153 (0x8ec3bf44 0x0 0x0 0x0)
0x8ec3bfc8 : 0x1a0977 (0xaa39400 0x0 0x1a30b5 0xaaad790)
No mapping exists for frame pointer
Backtrace terminated-invalid frame pointer 0xbfffe798
Kernel loadable modules in backtrace (with dependencies):
com.apple.iokit.IOHIDFamily(1.5.3)@0x630000->0x668fff

BSD process name corresponding to current thread: Dock

Mac OS version:
9G55

Kernel version:
Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386
System model name: MacPro1,1 (Mac-F4208DC8)


More exciting was the System Profiler:

ATI Radeon HD 4870:

Chipset Model: ATI Radeon HD 4870
Type: Display
Bus: PCIe
Slot: Slot-2
PCIe Lane Width: x1
VRAM (Total): 512 MB
Vendor: ATI (0x1002)
Device ID: 0x9442
Revision ID: 0x0000
ROM Revision: 113-B7710A-318
EFI Driver Version: 01.00.318
Displays:
Display Connector:
Status: No display connected
Display Connector:
Status: No display connected


WHile the 4870 in Slot One reads as:

ATI Radeon HD 4870:

Chipset Model: ATI Radeon HD 4870
Type: Display
Bus: PCIe
Slot: Slot-1
PCIe Lane Width: x16
VRAM (Total): 512 MB
Vendor: ATI (0x1002)
Device ID: 0x9440
Revision ID: 0x0000
ROM Revision: 113-B7710C-176
EFI Driver Version: 01.00.318
Displays:
Cinema HD Display:
Resolution: 2560 x 1600
Depth: 32-bit Color
Core Image: Hardware Accelerated
Main Display: Yes
Mirror: Off
Online: Yes
Quartz Extreme: Supported
Rotation: Supported
Display Connector:

Note the different ROM numbers...I guess Netkas used that ROM.

I had a look inside his and I would SWEAR that he had renamed it "4850" so I don't know where 4870 came from.

Looks promising..More fiddling to do....
 
But why a whole new thread? ;)


Because.....it's .....a....different....card....?

Do I need more reasons than that?

The EFI32 and EFI64 8800GT cards got different threads because they were different cards.....wasteful as that may seem.

The 4870 flash could use some refinement, I am hopeful that pipolomo42 and Netkas and others will continue to help there and that that thread will grow as people flash 4870s and improve the knowledgebase.

The 4850 is a different card with a different Rom and a different set of issues.

People are already getting confused in the 4870 thread over the various iterations of 4870...there is no way we can add the 4850 to that thread and have it make any sense.

If there is some International Thread Shortage and by starting this thread I will deprive someone else of starting another "Look at the great stuff I bought myself with my PILES of Money that you don't have" thread...my humblest apologies to said Proud Consumer.

Meanwhile....the 4850 could be a GREAT card...faster than an 8800GT and potentially cheaper. The fact that it uses EBC EFI means it will run on ALL Mac Pros, not just the shiny new ones.

But, if everyone feels that we have ENOUGH Video Card options for Macs...I'll be happy to give up.
 
Rominator, you see 4870 in system profiler, because this string comes from efi driver, which is compressed and placed to efi rom, so, you cant actualy see string, because its compressed. it can be easy corrected with natit tho.

try to use dvi2vga adater trick - plug dvi monitor to lowest port of 4850 and dvi2vga adapter to other port (only adapter, no cables needed).

And the panic you got is probably the reason why they dont sell macpros with 2 4870 :D

if you will get 4850 woking with osx - run opengl extensions viewer, extensions tab there will show you proper card name.

http://www.realtech-vr.com/glview/download.html
 
Wow, this is a great idea Rominator! This would open up 4850s in crossfire for Boot Camp as an excellent upgrade path for first gen Mac Pro users!
 
4850 sorta working

Noy entirely usable yet.

I tried booting with just the 4850 and addint the monitor and DVI adapter...any and all combos a NO-GO

Then I tried booting with a 2600XT to "see" from in slot 2....boot halted on grey spinning apple screen.

Same case with 8800GT.

SO, I tried putting 4870 in sot 2...PAYDIRT !!!

The 4850 was able to output DVI from either port...as long as DVI adapter was on the other port.

HOWEVER.....It was limited to Single Link from either one...ie, on my 30" all I got was 1280x800, just like upper port of 4870.

So it seems that even with EFI in the ROM, it doesn't work unless it gets EFI from other card. Perhaps pipolomo42's ideas about "Last ROM", etc are needed?

Major league thumbs UP for Netkas !!! I am willing to do whatever testing can be done...but it appears I will need to actually "work" next few days so I will have limited time until Friday.
 
I think that the rom posted in https://forums.macrumors.com/posts/7275556/ won't work, because there is a gap between the PC part and the EFI part.

And when The Rominator uses both a 4850 and a 4870, the EFI driver is read from the 4870 rom, and handles both cards, which means that the EFI driver can handle 4850 too.

Probably a modification of the EFI part is not necessary to get something working.
 
Shoot days.

Real world is ruling now...into a 2 day commercial shoot.

Will play with the cards again shortly, when I have a few minutes.

Update soon.
 
Real world is ruling now...into a 2 day commercial shoot.

Will play with the cards again shortly, when I have a few minutes.

Update soon.

wrong, it works for efi , efi can use 4850 as output device, so it means card works fine, the problems come with osx, which doesnt want to detect outputs on card(known problem for 4850 on osx)

btw, Rominator, once you are back, make plz ioreg -l -w0 -p IODeviceTree > dump.txt with 4850 card installed (before flshing it with new roms), wanna inspect how well rom worked for 4850.
 
wrong, it works for efi

I tried booting with just the 4850 and addint the monitor and DVI adapter...any and all combos a NO-GO

SO, I tried putting 4870 in sot 2...PAYDIRT !!!

The 4850 was able to output DVI from either port...as long as DVI adapter was on the other port.

From what The Rominator describes here, I'm not sure the EFI driver in the 4850 rom works, but rather that the 4870's EFI driver manages both cards.

Just like people who could do crossfire with one Mac and one PC card (can't remember if it was 8800GT, 3870 or 1900XT) : the EFI driver was handling both cards.

And in our case, there is clearly a gap (filled with 0x00) between 0xf400 and 0xf800 in the "4850_corrected.rom" hosted on rapidshare, which I don't think is allowed by the spec.
 
From what The Rominator describes here, I'm not sure the EFI driver in the 4850 rom works, but rather that the 4870's EFI driver manages both cards.

Just like people who could do crossfire with one Mac and one PC card (can't remember if it was 8800GT, 3870 or 1900XT) : the EFI driver was handling both cards.

And in our case, there is clearly a gap (filled with 0x00) between 0xf400 and 0xf800 in the "4850_corrected.rom" hosted on rapidshare, which I don't think is allowed by the spec.

4870 rom cant attach to 4850 beause in 4870 rom it's clearly writen - attach only to 9440 1002 device.
 
4870 rom cant attach to 4850 beause in 4870 rom it's clearly writen - attach only to 9440 1002 device.

Yes it can. These fields in the PCIR structure are not checked before executing the firmware.

For instance, I used a 7900GS in my mac pro, without flashing it, thanks to the Apple 7300 GT that I had connected as well, and whose EFI Driver was managing the 7900GS.

And in the 8800GT EFI driver's PE32 binary, there is a table of allowed vendor and device ids, which includes a lot of different Geforce8 cards.
 
4850 Update

Per request, I did an IOPCI Dump and then tried a new 4850 ROM that pipolomo42 did.

The Good news:

Upon booting with 4850 in all by itself, I got the familiar flash onto the display, right after gong. To me this means EFI was accepted / worked. This quickly switched to Apple grey screen with spinning thing.

The Bad News:

After a few moments, the screen went blank. I added a DVI to VGA adapter to other DVI port and screen came back. However, it is at 1280x800. This applies to either port (as long as adapter is on the other one) Neither CI or QE is working. OpenGL viewer says that Apple Software Renderer is running and reports 0Mb of VRAM.

So, something is still not right. I will be happy to send IOPCI dumps from either ROM to anyone who is interested. I am attaching the flash screen, and the others.

I forget to add what may be rather important. There is a low power warning that comes up with every boot. Perhaps the card is not being allowed to "turn on" fully due to it thinking that it has no power.

I tried it connected to either PCIE power cable and got same result. Interestingly, when attempts were made to get the PCIE X1900GT ROM for PPC to run the X1950GT AGP card, the same warning came up and card failed to work at all. (I recall this...did not experience it myself)

Since this is only card to complain about power, I have to believe that it is the card. Since 4850 has only one plug, perhaps it is polling a location that only exists on 4870?
 

Attachments

  • 0319092215.jpg
    0319092215.jpg
    824 KB · Views: 571
  • 4850#2.jpg
    4850#2.jpg
    85 KB · Views: 900
  • 4850 ogl-.jpg
    4850 ogl-.jpg
    57 KB · Views: 529
  • power warning.jpg
    power warning.jpg
    26.4 KB · Views: 515
For reference, I just took the 4850 pc vgabios, and appended the mac 4870 efi rom. I changed the PCIR structure of the mac efi rom, so that the device id would match the one of the 4850, but did no modification to the PE32 binary content.

Now, I just don't know if the issues we have with screen resolution, analog (VGA) output, dual link DVI, and some outputs being deactivated, are caused by issues between the vga bios and the EFI driver or by the MacOSX driver itself.

By the way, in the PE file, between offsets 0x1ba7e and 0x1bada, there is a pattern that repeats over 6 bytes, and might be a table of all device IDs that the EFI driver will try to handle.

It contains device IDs: 9440 to 9449, 944b to 944f, and 9456. Looks like it explicitely excludes Mobility Radeon HD 4850, which has ID 944a, and includes only Desktop 4850 and 4870 based cards, and the ATI FirePro V8700.

So, according to this, the 4870X2 (which has ID 9441) should work, and I think it's only required to flash one of the two roms, to include the EFI driver once, and it should then handle both "cards".
 
Crucial Info

Reading over the 4870 thread I noticed this:

https://forums.macrumors.com/posts/7309502/

I would never have run a 4870 with only one cable but the behavior he describes EXACTLY matches the current state of 4850. Since it only has ONE power cable that can be connected, OSX thinks it is "one down" and doesn't engage it.

So if we could disable the "Power connected" check I think the cards might be as workable as the 4870 with pipolomo42's ROM fix.

It must be in the EFI part of ROM.....so I am guessing we need to decompress it before finding the place where this is checked.

Anyone got any ideas?

I made another small change to the last test rom. I found an instance of "4094" that seemed like it to should have been changed to "4294"

However this made no difference in behavior.

Okey DOke, I have attached the IOReg dumps from Netkas and Pipolomo's ROMs.

Hopeful that someone has an idea how to quelch the "Power Connected" check.
 

Attachments

  • Netkas_dump.txt.zip
    253.8 KB · Views: 505
  • pipolomo42_dump.txt.zip
    165.4 KB · Views: 636
Reading over the 4870 thread I noticed this:

https://forums.macrumors.com/posts/7309502/

I would never have run a 4870 with only one cable but the behavior he describes EXACTLY matches the current state of 4850. Since it only has ONE power cable that can be connected, OSX thinks it is "one down" and doesn't engage it.

So if we could disable the "Power connected" check I think the cards might be as workable as the 4870 with pipolomo42's ROM fix.

It must be in the EFI part of ROM.....so I am guessing we need to decompress it before finding the place where this is checked.

Anyone got any ideas?

I made another small change to the last test rom. I found an instance of "4094" that seemed like it to should have been changed to "4294"

However this made no difference in behavior.

Okey DOke, I have attached the IOReg dumps from Netkas and Pipolomo's ROMs.

Hopeful that someone has an idea how to quelch the "Power Connected" check.


| | | "AAPL,aux-power-connected" = <00000000> - thats why u getting warning.
it can be fixed with natit i think, also natit will fix card name for ya, will upload proper version in a bit.
----
here what two keys this natit will set:

<key>ATI Radeon 4800 Series</key>
<dict>
<key>AAPL,aux-power-connected</key>
<data>
AQAAAA==
</data>
<key>model</key>
<string>ATI Radeon HD 4850</string>
</dict>

http://rapidshare.de/files/46298132/Natit.kext.tar.bz2.html

The Rominator, can I haz DeviceTree dumo from you with pipomolo's rom ?

ioreg -l -w0 -p IODeviceTree > IODT.txt
 
here is how i now ripped of efi driver from rom

dd if=roms/macpro/4870.rom of=./radeon_efi_compressed.efi bs=1 skip=63840 count=48800

./EfiDecompress.macosx radeon_efi_compressed.efi radeon_efi_decompressed.efi



thanks to pipomolo for efi tools for osx ;)
 
| | |
</dict>


The Rominator, can I haz DeviceTree dumo from you with pipomolo's rom ?

ioreg -l -w0 -p IODeviceTree > IODT.txt


Attached...and I will try your Natit now and report back. Note that I am now hooked to a Dell 2407 via DVI...the 4850 does 1920x1200 just fine there...so the 1280x800 res via both outs before was it's only response to doing 30" via Single Link.

Fingers crossed on the Natit / Power Connector thing.
 

Attachments

  • IODT.txt.zip
    165.4 KB · Views: 581
Not this one.

I have done multiple reboots, seems that this Natit didn't fix either thing.

Is it possible that these two properties get polled again AFTER Natit loads?

I should mention that sometimes after killing the "Low Power" warning it will pop up again...something is being triggered again it seems. If we could stop it from ever searching for a number....kill it in the ROM, it would be good.

The name still reads "ATI Radeon HD 4870"

I installed the Natit.kext twice.

I used kext helper to reset permissions to System...verified with a Get Info.

It just seems that whatever properties it is setting are getting re-set later in boot process.
 
Ping, any luck ?

Bad luck.

First installed new MotMot...rebooted 4850...no change.

Installed Natit and reboot. Boot seems normal but massive corruption/ broken screen on 30".

Reboot on 2407 via DVI results in ALMOST normal desktop...but with artifacting as if overclocked or using incorrect RAM timings. Cursor moves but unable to click on anything.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.