PDA

View Full Version : Flash the 4850 !!!




The Rominator
Mar 16, 2009, 02:23 AM
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....



Pressure
Mar 16, 2009, 02:44 AM
But why a whole new thread? ;)

The Rominator
Mar 16, 2009, 04:05 AM
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.

Setmose
Mar 16, 2009, 06:02 AM
Is anybody considering / working that? :apple:

netkas
Mar 16, 2009, 03:57 PM
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

Spanky Deluxe
Mar 16, 2009, 04:46 PM
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!

The Rominator
Mar 16, 2009, 10:01 PM
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.

netkas
Mar 18, 2009, 05:54 AM
The rominator, here is two test roms for you, cerated now with efirom utility

http://rapidshare.de/files/46178909/created_with_efirom.tar.bz2.html

pipomolo42
Mar 18, 2009, 08:13 AM
I think that the rom posted in http://forums.macrumors.com/showpost.php?p=7275556&postcount=230 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.

The Rominator
Mar 18, 2009, 08:32 AM
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.

netkas
Mar 18, 2009, 12:45 PM
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.

pipomolo42
Mar 18, 2009, 01:58 PM
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.

netkas
Mar 18, 2009, 02:47 PM
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.

pipomolo42
Mar 18, 2009, 03:10 PM
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.

The Rominator
Mar 20, 2009, 01:35 AM
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?

pipomolo42
Mar 20, 2009, 11:09 AM
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".

The Rominator
Mar 20, 2009, 04:06 PM
Any ideas where it does the "Power Connected" check?

I would love to disable that and see if card functions.

The Rominator
Mar 22, 2009, 06:46 PM
Reading over the 4870 thread I noticed this:

http://forums.macrumors.com/showpost.php?p=7309502&postcount=421

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.

netkas
Mar 23, 2009, 03:06 PM
Reading over the 4870 thread I noticed this:

http://forums.macrumors.com/showpost.php?p=7309502&postcount=421

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

netkas
Mar 23, 2009, 03:43 PM
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 ;)

The Rominator
Mar 23, 2009, 03:46 PM
| | |
</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.

The Rominator
Mar 23, 2009, 04:24 PM
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.

netkas
Mar 23, 2009, 04:29 PM
ah sorry, now i knpw why natit didnt work on macpros and for you,

(need to remove IONameMatch=display property from plist)

here it is

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

other possible silutions is to remove applegw.kext , but try both so we will know :)

netkas
Mar 23, 2009, 05:24 PM
Ping, any luck ?

The Rominator
Mar 23, 2009, 05:27 PM
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.

netkas
Mar 23, 2009, 05:29 PM
what if u remove applegw.kext and natit.kext ?

new motmot is pointless for 4850, changed nothing for me.

btw, Motmot has known problems with ram speeds, when it tries to change memory speed, it is not going well (more info here - http://netkas.org/?p=85)

try to edit the rom with RBE application and set same memory clocks for every mode there (on second tab), RBE - http://www.techpowerup.com/rbe/

The Rominator
Mar 23, 2009, 06:24 PM
what if u remove applegw.kext and natit.kext ?

new motmot is pointless for 4850, changed nothing for me.

Progress...sorta?

Removed them and booted as before...No More Power Warnings !!!

However...still no QE and CI.

I realized I have Developer Tools on this one.

I have attached the IOReg Report, I think.

Let me know if you need something else.

netkas
Mar 23, 2009, 06:43 PM
ATIRadeonX2000.kext, which is responsable for QE/CI/opengl will not work if aux-power-connected = 0.

The Rominator
Mar 23, 2009, 06:50 PM
Is this a test we can disable in the kext itself?

I just looked and I saw where it polls a sensor, but I am guessing that is a temp onne....not a yes/no switch

netkas
Mar 24, 2009, 03:52 AM
natit was changing this var to 1, so, looks like x2000.kext has problems with your 4850, what bios pipomolo used to make a rom for u ?

The Rominator
Mar 24, 2009, 06:15 PM
natit was changing this var to 1, so, looks like x2000.kext has problems with your 4850, what bios pipomolo used to make a rom for u ?

I'm pretty sure that he used the one the card came with. Card functions just fine in Windows.

I understand that Natit changes the Power COnnected variable to 1...I am just guessing that something else actually polls location of second connection on 4870...which doesn't exist on 4850...and writes in a "0". This happens AFTER the Natit.kext writes in the "1"

Ideally we would find where this polling is being done...say in 2000.kext and simply remove the line it is in.

On a side note...I have found a great use for my not 100% functional 4850.

As long as it is in slot 2, any 4870 placed in slot one will boot just fine in OSX...ie, the EFI loads off the 4850 and allows testing the 4870 BEFORE writing the custom BIOS.

Fer instance...I have a Diamond 4870 1 Gig I bought at Fry's....if I place it in slot 1 next to the 4850 in slot 2 (with no power connected...since it isn't expecting or using much)

The DIamond boots up in OSX just fine. I connect second display to 4870 and it acts VERY unhappy. Within seconds it shuts off and reboots. After I craft and flash the ROM via Pipolomo42's superb scripts, I get exactly the SAME BEHAVIOR.

So having the 4850 is letting me see the END result of ROM flash, before I even build the ROM.

The Rominator
Apr 23, 2009, 03:35 AM
With an EFI ROM from Pipolomo42's method, and Netkas' new Natit & ATI fix...I finally have a working 4850 !!!

Sadly, it still needs the DVI to VGA adapter...but now CI and QE are working.

And it's OpenGL viewer scores tell the tale of a powerful card.

(Beats the 4870x2 with current state of affairs)

Getting closer.

(There is an odd Mouse stutter too)

netkas
Apr 23, 2009, 07:14 AM
truy to swap dvi connections on 4850, to fix stutters.

netkas
Apr 24, 2009, 03:30 PM
to get rid of dvi2vga dongle, install Patched motmot from main 4870 thread.

zmttoxics
Apr 25, 2009, 02:14 AM
Awesome work!

Just a note for you on the power connector issue. If there really was a power issue and the card was bad, it has an led on it that would light to signal the problem.

KPTChristopher
Dec 3, 2009, 05:43 AM
I was wondering with Snow Leopard will the 4850 run natively or do you need to flash it? I'm still using Leopard and have a 4850 lying around, I find it is too noisy to leave in OS X but is fine in Boot Camp when I am playing games in Windows, but I spend more time in OS X and I would prefer a quiet solution.

XanaduRegio
Jan 17, 2010, 07:50 PM
Is anybody still following this thread? I don't wanna return my 4850 but won't have a choice in a few weeks... this card would be so much better than my GeForce 7300.

:confused:

Cindori
Jan 18, 2010, 03:47 AM
you can use netkas injectors.
download my tool in sig

hubchau
Mar 6, 2010, 09:47 AM
you can use netkas injectors.
download my tool in sig

Do you think i could have my Sapphire HD 4850 Toxic running on my Mac Pro 1,1 with Leo 15.5.8 ?

My english isn't perfect so i didn't understand the whole conversation between netkas and The Rominator, so could you please help me ?

BlackKnight
Mar 12, 2010, 07:36 AM
you can use netkas injectors.
download my tool in sig

Hi, I have a Mac Pro 1.1, and just picked up a XFS 4850 1gig the other day. I was looking arround for a 4870/90 but got the 50 for a good price.

I'm on snow leopard, and on Vista x64 in boot camp.

If I'm following the threads correctly, to my understanding, I just load up the card and the originla card goes in the 2nd slot. then I run the ATI tool to use the injector. then I can remove the old card (atix1900xl) and run with just the 4850.

Some of the links say that they now have both DVI running, some say you require the DVI2VGA addapter and run switchres to change resolitions.

Can there be an update on this?

Maybe a single post by one of the Rom Gods that puts all the info in a single post. Having up to date links to the tools would also be great :)

syth
Apr 6, 2010, 05:05 AM
Do you think i could have my Sapphire HD 4850 Toxic running on my Mac Pro 1,1 with Leo 15.5.8 ?

My english isn't perfect so i didn't understand the whole conversation between netkas and The Rominator, so could you please help me ?

Is anyone still monitoring this thread? I'm curious what the current status of the 4850's is since I can not find 4870 or 4890 cards locally (and I really want to buy a card for this locally). 4850's seem to be around though.

The first step of the first post was 'solder on...' so if that's the case, that's not gonna work for me as I can't solder.

The Rominator
Apr 6, 2010, 10:29 PM
I would pass on the 4850.

I just tried it again, wrote a ROM using device id of 4870. Card ran better but still has many issues. Don't know if we will ever have a solid running 4850 in OSX.

And YES, it does require soldering.