Contribute
Register

<< Solved >> AMD WX4170 dGPU on ZBook G5 17 Laptop

Status
Not open for further replies.
I can't find any big differences in the ROMS except for MemoryTraining:

Screen Shot 2021-05-09 at 1.13.01 AM.png


So I doubt the problem is with the ROM, I'm leaning towards a change in the drivers.

This is an older post from another forum:
ATI-CAT changes1.png


So it's very likely one or more of these changes are causing the Catalina boot stall.
 
Last edited:
I can't find any big differences in the ROMS except for MemoryTraining:

View attachment 518054

So I doubt the problem is with the ROM, I'm leaning towards a change in the drivers.

This is an older post from another forum:View attachment 518055

So it's very likely one or more of these changes are causing the Catalina boot stall.
Wow!!! What’s app you’re using for vbios analyzes?


1. I tried today Catalina and OpenCore. This bootloader destroyed my nvram, now even if I reset nvram in clover, delete nvram on efi partition, my system boot with arguments from OC. I see Open Core in boot menu in bios. I didn’t install it on zbook. I install it on another laptop to prevent something like this ((((( need your help to restore nvram


2. Also I discovered when I booting with discretespoof (sleep dGPU) my IGPU appears to be Discrete in IStatMenus, and that’s possible reason why I getting problems with egpu.

3. How do you think is it possible to enable only edp port by igpu, so this will release other connectors from Intel, and it will be possible to give other ports to dGPU? Because on Windows hdmi and DisplayPort are related to dGPU only when dual gpu is on. if intel only, all ports are powerred by intel in win10. I think that this is possible to do on mac
 
Last edited:
Wow!!! What’s app you’re using for vbios analyzes?
I think it's called ATOMBIOSReader
1. I tried today Catalina and OpenCore. This bootloader destroyed my nvram, now even if I reset nvram in clover, delete nvram on efi partition, my system boot with arguments from OC. I see Open Core in boot menu in bios. I didn’t install it on zbook. I install it on another laptop to prevent something like this ((((( need your help to restore nvram
It's not broken, it's persistent and it's stored in the bios, so it's actually native, like a real mac. You can use the utility that comes with OpenCore to clear this NVRam (it may wipe out other boot settings). Or another option that is not so all or nothing, is to manually remove the arguments using hackintool.
3. How do you think is it possible to enable only edp port by igpu, so this will release other connectors from Intel, and it will be possible to give other ports to dGPU? Because on Windows hdmi and DisplayPort are related to dGPU only when dual gpu is on. if intel only, all ports are powerred by intel in win10. I think that this is possible to do on mac
You could specify framebuffer-portcount and limit that way, but if the connection is done by a variable in ACPI, then this is just "cosmetic"

Screen Shot 2021-05-09 at 11.25.55 AM.png


In my config I also limit iGPU to only one connector.
 
Last edited:
So I edited the Falcon ROM from a real MacBookPro 15,1 and only changed the first 3 ports (I skipped the HDMI and the 5th port in that ROM) and it booted Catalina in Hybrid, recognizing output ports, BUT!!!! the memory config is wrong in the ROM and the system crashes if I use the card or plug a display.

Screen Shot 2021-05-08 at 7.11.19 PM.png


I tried to edit the ROM and correct the memory size, but failed.

So I went back to try and spoof my working ROM and it didn't matter that I changed device-id and the GOP portion, and CSM boot to avoid HP's obscure EFI things... and no matter what, MacOS still recognized it as E067 (WX-4170) instead of EF67 which presumably works.

So either the ZBook's Bios recognizes the card is a 4170 and notifies the drivers skipping the modified ROM info, or the drivers query the card and get a response from the VBios that is not evident in the actual ROM layout.

Spoofing the device-id in config changes the name and probably the driver, but still doesn't work.

So I believe that the compatible ROMs reply to a particular "something" that Catalina's drivers ask, that my WX-4170 ROM doesn't, so it just hangs waiting for an answer that my ROM can't give.

The Falcon ROM may be the closest almost-working test I've done to date, and it may just be a matter of finding how to fix the memory error.
 
New test, I tried again and edited only the first 3 connectors in the PEGATRON ROM and it works!

Only a few issues so far...
No Discrete mode!!!!!! I switched in Bios and of course it wouldn't post like before and I had to open up the ZBook, and take the MXM card out, boot again so the bios switches back to Auto, then card in again, then back to hybrid.
(This screams whitelisting, since the ROM's connectors are now correct and I should have GOP display)

Crappy performance, (about the same as the UHD630) but all the connectors work, correct memory, etc... So i'll try to edit the memory and clock info to try to get it up to WX-4170 standard.

Screen Shot 2021-05-09 at 1.25.51 PM.png

Screen Shot 2021-05-09 at 1.25.20 PM.png
Screen Shot 2021-05-09 at 1.24.03 PM.png
 
Last edited:
Ok I've hit a wall editing that ROM. I can change the clock, TDP, Watts, etc... but there is a disconnect between the values and PP tables and it crashes. PolarisBiosEditor is no good, so I only used it to find the offsets for the changes and manually adjusted and fixed the checksum, and everything in theory looks good, but not working. I tried just changing the clock, then just the power, then also memory configs, and it just went from bad to worse.
Anyways... I have proven that this card can boot and is usable in Catalina using an almost-stock 4150 ROM, and while performance is not up to par with what the card can do, and the little thing about changing to discrete mode will "semi-brick" the laptop, it's a proof of concept.

When I have more time again I'll try to tweak the ROM, or find out what the differences are for the OS, and maybe just keep using the right 4170 ROM and just patch the drivers.

For reference same OpenGL test in proper ROM gives ~1200fps more:

Screen Shot 2021-05-09 at 5.33.58 PM.png



In case anyone wants to play with this new ROM, just be warned that you can't use discrete mode or you'll have to take your machine apart to reset it to a default state.
 

Attachments

  • Pegatron.zip
    113.4 KB · Views: 31
  • 4170-AFFLECK.zip
    105.6 KB · Views: 23
Last edited:
I
New test, I tried again and edited only the first 3 connectors in the PEGATRON ROM and it works!

Only a few issues so far...
No Discrete mode!!!!!! I switched in Bios and of course it wouldn't post like before and I had to open up the ZBook, and take the MXM card out, boot again so the bios switches back to Auto, then card in again, then back to hybrid.

Crappy performance, but all the connectors work, correct memory, etc... So i'll try to edit the memory and clock info to try to get it up to WX-4170 standard.

View attachment 518113
View attachment 518114View attachment 518115
I just noticed your igpu is connected only to lcd-edp, and other ports to mxm? How did you do this?

PolarisBiosEditor bricking gpu. Even if you just save as rom file ...

P.s. use auto at bios and in Windows disable Intel. After reboot, Windows will disable igpu before drivers will be executed. So it is the easiest and safest way to test rom mode.
 
Last edited:
I

I just noticed your igpu is connected only to lcd-edp, and other ports to mxm? How did you do this?
That's the standard hybrid configuration in Bios
PolarisBiosEditor bricking gpu. Even if you just save as rom file ...
Yup it changes the PowerPlay tables just for fun...(not funny)
P.s. use auto at bios and in Windows disable Intel. After reboot, Windows will disable igpu before drivers will be executed. So it is the easiest and safest way to test rom mode.
Nice tip, thanks!

I didn't use auto before because it didn't work very well in MacOS, before I figured out the HDCP connector flag for the LCD, I would get snow on boot. But I guess that's not an issue now. Problem is I loose iGPU in MacOS, but for testing new ROMs is a good option.
 
That's the standard hybrid configuration in Bios
For some reason all ports are occupied by IGPU. Hybrid should work, but not( with m2000m, I have the same problem. I tried without rehabmans ssdt, and still the ports are only Intel. Maybe you done some ssdt patches?
 
For some reason all ports are occupied by IGPU. Hybrid should work, but not( with m2000m, I have the same problem. I tried without rehabmans ssdt, and still the ports are only Intel. Maybe you done some ssdt patches?
No patches, I guess that's one of the changes in G5.

This is the EFI I was using before updating OC. (almost everything is the same though)

 
Status
Not open for further replies.
Back
Top