Jump to content
EwinRacing Flash Series Gaming Chairs
Khenglish

[HARDWARE MOD] P150EM dGPU direct output WIP

Recommended Posts

dGPU-3dm01.png

 

With lots of motherboard mods & Prema BIOS mods, The P150EM's single partially implemented eDP port is ALIVE. The 980 is now free of the shackles of Optimus!

 

But not without problems... no image on boot, 980 cannot run faster than pstate 5, no backlight control (always on 100%).

 

With the P5 limitation the best I can clock the GPU is around 825/5010. Basically only really old stuff can see a benefit from direct output that outweighs the 40% frequency drop, so here's 3dm01!

 

A big thanks to Prema for getting me this far.

  • Thumbs Up 3

Share this post


Link to post
Share on other sites

I now have backlight on/off control. Not sure how to approach the brightness selection issue. dGPU always says it wants full brightness & iGPU brightness selection just floats.

 

Mods done:

 

No P150EM eDP cable exists. Built one from 2 other cables.

Moved 10 small caps routing the iGPU to eDP to the empty dGPU circuit.

Added jumper to enable dGPU DP detection (I would have had this mod working over a year ago if I noticed this jumper missing sooner).

Shorted brightness control to 3.3V.

Removed iGPU backlight toggle & replaced with 3.3V short (dGPU backlight toggle not routed off of MXM slot & thus inaccessible).

eDP logic voltage changed from 5V to 3.3V. I did send 5V to the display and it survived.

 

Prema enabled the dGPU's DP port D in the MXM module in the BIOS, along with a lot of other things I don't know about.

Edited by Khenglish
  • Thumbs Up 1

Share this post


Link to post
Share on other sites

Those are hard core mods ! Really interesting ! Your P150EM would be able to run VR titles then :)

Share this post


Link to post
Share on other sites

BIOS image, and P-states faster than P5 are now working!

 

A vBIOS Prema made for my 980(m?) a while back that we thought was a failure actually fixes most problems for some reason. The eDP even works in Windows with an unmodified system BIOS, despite all MXM outputs flagged as disabled in BIOS and the iGPU set as the primary GPU.

 

Unfortunately this vBIOS clocks memory very poorly, with 6.6ghz set as default, which isn't even quite stable. Setting the card down to P1 and overclocking P1 works fine though, much better than overclocking P5.

 

But hey I now see on boot!

 

edp boot.jpg

 

Now since dGPU is the boss, I see Prema's vBIOS mod text.

 

edp boot 2.jpg

Edited by Khenglish

Share this post


Link to post
Share on other sites

So I figured out how to mod memory clocks (checksum location is different from standard 980m vBIOS). This let me drop P0 mem clocks to 6.2ghz, and from there I can overclock to whatever it can handle. 6350 appears to be fully stable max mem clock. So now I can use P0 for regular use, just with poor memory clocks.

 

The default voltage is 1.168V with this odd vBIOS. Since this is a 1.3V max voltage vBIOS & 980m load line regulation is all wrong, 1.168V drops to 1.13V under load at the voltage regulation, with at core voltage some unknown amount slightly lower. When topping out clocks for the voltage (~1320MHz) I've had the card hit 220W under full load... and my cooling capacity tops out at around 200W. This is a bigger problem than the memory clocks. Hopefully @Prema can save me.

 

I noticed on the 980m that over 2/3 of the voltage feedback reading circuit is missing, and this may be why the 980m voltage regulation is so terrible (At the VRM the 1.3V vBIOS is about 40mV too low, while 1.2V vBIOS is around 40mV too high). I have a dead 980m with still functional core voltage that I will test my ideas on (not gonna risk sending 3.3V to my working 980...). Unfortunately I do not have the 980m PCB schematic, but I do have the VRM schematic, so I have to guess a little at what's wrong.

Edited by Khenglish

Share this post


Link to post
Share on other sites

Hi, I have a p150em and want to drive a 4k monitor at 60Hz by connecting it directly to dGPU (7970m) via the eDP connector (only DP pins needed). Is this possible without any hardmare mods?

Share this post


Link to post
Share on other sites
1 hour ago, p150em_user said:

Hi, I have a p150em and want to drive a 4k monitor at 60Hz by connecting it directly to dGPU (7970m) via the eDP connector (only DP pins needed). Is this possible without any hardmare mods?

 

No, the 2nd post details the required hardware modifications.

Share this post


Link to post
Share on other sites

Can you please provide more details on the necessary hardware modifications? Looking at your post and the service manual it is still not clear to me what exactly needs to be done, from what I can tell I need to connect DP wires to lines which exist but are not connected to anything.

 

Edit: there is also a confusing "dGPU DISPLAY PORT" page in the service manual, which seems not be be connected to the dGPU at all

Edited by p150em_user

Share this post


Link to post
Share on other sites
1 hour ago, p150em_user said:

Can you please provide more details on the necessary hardware modifications? Looking at your post and the service manual it is still not clear to me what exactly needs to be done, from what I can tell I need to connect DP wires to lines which exist but are not connected to anything.

 

Edit: there is also a confusing "dGPU DISPLAY PORT" page in the service manual, which seems not be be connected to the dGPU at all

 

I can provide more details, but it will take a while to create something someone can follow.

 

A lot of the service manual is copy/paste from the previous highly similar P150HM, which was dGPU output only but otherwise extremely similar to the P150EM. Because of this some schematics are mislabeled.

Share this post


Link to post
Share on other sites

I'd just like clarifications on 2 things:

1. can I solder wires from a DP cable directly to the dGPU eDP lines?

2. why did you need to add a jumper? it seems the dGPU HPD is already connected to the same place as the iGPU HPD

Share this post


Link to post
Share on other sites
On 11/22/2016 at 7:21 PM, p150em_user said:

I'd just like clarifications on 2 things:

1. can I solder wires from a DP cable directly to the dGPU eDP lines?

2. why did you need to add a jumper? it seems the dGPU HPD is already connected to the same place as the iGPU HPD

 

1. You can, but that doesn't really help you and you may as well use the socket.

2. The jumper is present on the motherboard schematic, but pulled for actual production. In the motherboard schematic anything listed with a * means it was in design, but pulled for production.

 

Also I found on NBR where Darcoder modded a P375SM for 40 pin eDP for 4K displays that you can break up the glue on the eDP cable at the motherboard connector, and pull out and replace the wires as needed. He cut the glue with a razor then pushed the pins out with a needle. This seems to be much better than my cut and resolder method.

Share this post


Link to post
Share on other sites

@Prema modified me another vBIOS for the 980 and now P0 and display on boot work with the 980 core switched over to an MSI 980m board (I damaged the clevo 980m board when switching memory chips). There seems to be something wrong with the P150EM system BIOS that is compensated for by a modified vBIOS. An added bonus is the memory now clocks higher than ever with 7.8 GHz usable in benchmarks. I got a 3K display, but am having problems getting a 40-pin eDP cable that's close enough to modify.

 

Here's an interesting picture from September where I was running both LVDS and eDP at the same time. Unfortunately the picture quality was poor.

 

20160924_131112.jpg

Edited by Khenglish

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Khenglish
      Due to a stupid accident by me, I acquired a 980m with a chunk knocked out of the core. Not wanted to scrap a perfectly good top end PCB for parts, I wanted to replace the core. You can see the gouge in the core to the left of the TFC918.01W writing near the left edge of the die.
       
      First I had to get the dead core off:
       

       
      With no sellers on ebay selling GM204 cores, my only option was to buy a full card off ebay. With no mobile cards under $500,I had to get a desktop card. And with this much effort involved to do the repair, of course I got a 980 instead of a 970.
       
      Below is the dead 980 I got off ebay:
       

       
      You can see for some reason someone removed a bunch of components between the core and PCI-E slot. I have no idea why anyone would do this. I tried the card and it was error 43. PCB bend seemed to be too little to kill the card, so those missing components had to be it.
       
      GPUs can be dead because someone removed or installed a heatsink wrong and broke a corner of the core off, so buying cards for cores on ebay is a gamble. This core is not even scratched:
       

       
      Preheating the card prior to high heat to pull the core:
       

       
      And core pulled. It survived the pull:
       

       
      Next is the 980 core on the left cleaned of solder. On the right is the original 980m core:
       

       
      Next I need to reball the 980 core, and lastly put it on the card. I am waiting for the BGA stencil to arrive from China. It still has not cleared US customs:
       
      https://tools.usps.com/go/TrackConfirmAction?tLabels=LS022957368CN
       
      When that shows up expect the core to be on the card in 1-2 days.
       

      So some potential issues with this mod besides me physically messing up:
       
      I believe that starting with Maxwell Nvidia started flashing core configuration onto the cores, like intel does with CPUID. I believe this because I found laser cuts on a GK104 for a 680m, but could not find any on two GM204 cores. In addition, Clyde figured out device IDs on the 680m and K5000m. They are set by resistor values on the PCB. The 980m has the same resistor configuration as the 680m for the lowest nibble of the Device ID (0x13D7), but all of the resistors are absent. Filling in these resistors does nothing. Resistors do exist for the 3 and D in the device ID. Flashing a 970m vBIOS on my 980m did not change the device ID or core configuration. If this data is not stored on the PCB through straps or the vBIOS, then it must be stored on the GPU core.
       
      So I expect the card with the 980 core to report its device ID as 0x13D0. The first 12 bits pulled from the PCB, and last 4 from the core. 0x13D0 does not exist. I may possibly be able to add it to the .inf, or I may have to change the ID on the board. With the ID's 0 hardset by the core, I can only change the device ID to 0x13C0, matching that of a desktop 980.
       
      An additional issue may be that the core may not fully enable. Clyde put a 680 core on a K5000m and never got it to unlock to 1536 CUDA cores. We never figured out why.
       
      Lastly, there was very tough glue holding the 980m core on. When removing this glue I scraped some of the memory PCB traces. I checked with a multimeter and these traces are still intact, but if they are significantly damaged this can be problematic for memory stability. I think they are OK though, just exposed.
       
      Due to Clyde's lack of success in getting his 680 core to fully unlock I am concerned I might not get 2048. If I don't at least I should still have a very good chip. Desktop chips are better binned than mobile chips (most 980s are over 80% ASIC quality, while most 980ms are below 70%). In addition this 980 is a Galax 980 Hall of Fame, which are supposedly binned out of the 980 chips. Having a 90%+ ASIC would be great to have. The mid 60s chips we get in the 980m suck tons of power.
       

      I want to give a special thanks to Mr. Fox. This card was originally his. He sent me one card to mod and one to repair. I repaired the broken one and broke the working one. The broken one is the one I've been modding.
       
×

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.