Permanently Disable 2011 15"/17" MacBook Pro Dedicated GPU - gMux IC Bypass

Discussion in 'MacBook Pro' started by dosdude1, Aug 25, 2018.

  1. dosdude1, Aug 25, 2018
    Last edited: Oct 10, 2018

    dosdude1 macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #1
    Recently, I figured out a very good solution to PERMANENTLY disable the dedicated AMD video card on a 2011 15"/17" MacBook Pro (MacBookPro8,2/8,3)! For those of you who don't know, MacBook Pros that utilize dynamic GPU switching between a dedicated GPU and integrated GPU use an IC known as the "gMux" chip. This is simply an off-the-shelf micro-controller, programmed with special firmware that switches active GPUs on-the-fly in a MacBook Pro system. This IC has 3 sets of LVDS lines connecting to it: The LVDS output lines from the dedicated GPU, the LVDS output lines from the integrated GPU, and the LVDS lines connecting to the connector for the display. In order to accomplish dynamic GPU switching, all this IC does is, when told to by the system, routes the correct set of LVDS lines to the display's LVDS output on the logic board.

    In order to permanently keep the dedicated GPU disabled, there are 2 options:

    - Option A, which will be detailed below, is to hard-wire the LVDS output lines from the integrated graphics straight to the lines connecting to the display.
    - Option B would be to re-program the gMux IC (which is simply a Lattice LFXP2 micro-controller), with a custom firmware to disable the GPU switching functionality. I may experiment with this in the future, but doing so requires special hardware that I don't have. This would, of course, be the optimal solution, though.

    Performing the Modification ("Option A")

    Before I get started with the explanation, I just want to make it clear this this is a VERY tedious modification, and requires precision soldering equipment. Use of a microscope is recommended.

    To begin, here is a brief look at the schematic, and the main premise of this mod. In the following pictures, you can see how the LVDS data lines appear for both the integrated graphics output, dedicated graphics output, and the LVDS output for the display (EG for dedicated GPU, IG for integrated GPU, and CONN of course for connector). You can see how this data line corresponds with each set of LVDS lines. There are 12 total LVDS lines (6 pairs).

    Screen Shot 2018-08-25 at 9.39.48 PM.png Screen Shot 2018-08-25 at 9.40.06 PM.png Screen Shot 2018-08-25 at 9.43.05 PM.png

    In order to perform this modification, the first thing that needs to be done is to remove the gMux IC. EDIT: Do NOT remove the gMux IC. After further experimentation, I found that leaving it in place will allow you to achieve full graphics acceleration WITHOUT flashing the system firmware at all. Simply proceed with the wiring, with the gMux IC in place.

    Once the chip is removed and the pads are cleaned, each LVDS data line from the LVDS_IG side needs to be connected to its corresponding data line on the LVDS_CONN side. Of course, to do this, the use of small bodge wires is required. I used 0.1MM jumper wire (which can be purchased here). A wire needs to be used to connect each IG data line to its respective point on the CONN side.

    Here is a wiring diagram that will help you do this very easily. This one is for a 15" machine, but I will update this post with the 17" one once I make it.

    2011-15-inch-gMux-bypass.jpg

    Once all the data lines are soldered properly, there are still a couple more lines that need to be soldered. We'll start with the clock lines. If you look on the schematic, you will notice that there is one set of clock lines on the LVDS_IG side (LVDS_IG_A_CLK), but 2 sets on the LVDS_CONN side (LVDS_CONN_A_CLK and LVDS_CONN_B_CLK). All you need to do in this instance is connect the A_CLK pair from the IG side to the A_CLK resistor pair on the CONN side. Then, simply connect the A_CLK pair to the B_CLK pair on the CONN side as well.

    The next thing we need to do is pull the LVDS_DDC_SEL_IG rail high. To do this, all you need to do is connect the high side of this rail's pulldown resistor (R6982) to the PP3V3_S0 rail. I connected it to a capacitor near the backlight IC (C9711), as it was the easiest and closest source of PP3V3_S0 to that point of the board. This routes the necessary LVDS DDC clock lines to the integrated GPU.

    The last few things we need to wire up are the enable rails for the LCD backlight and LCD panel power, as well as the PWM signal for the backlight. The first wire simply needs to bridge the following rails: LCD_PWR_EN, LVDS_IG_PANEL_PWR, and LCD_BKLT_EN.

    The last wire will be used to wire the backlight PWM signal. The purpose of this signal is to control the backlight brightness level. Now, normally, the PWM signal is generated by the gMux IC. However, since the gMux IC is no longer in place, it cannot provide this signal (and even if you were to leave it in place, it still would not be able to provide this signal. I may be wrong on this, but feel free to test if you want.) As such, we will simply be wiring this rail to the LVDS_IG_BKL_ON rail. Unfortunately, what this means is that the backlight will remain at a fixed brightness, and be uncontrollable from the OS.

    UPDATE: I have finished working on a new solution for backlight brightness control! You can read about, and see this modification in action here.

    Finally, once all that is wired up, the system should be good to go! The final product will look something like this:

    IMG0007.jpg

    Last Step

    After all your wiring is complete, you will need to cut power to the dedicated GPU, otherwise it will simply produce waste heat. To do so, all you need to do is remove the resistor that supplies power to the GPU VCORE regulator IC, R8911.

    At last, once all that is complete, you are now done! You will now have a fully working 2011 15" or 17" MacBook Pro, running off ONLY integrated graphics! No OS X modifications are necessary, and it is not reliant on any NVRAM variable (obviously). This, short of making custom firmware for the gMux chip, is the BEST solution for rectifying the defective AMD GPU issue on these machines. The only issues are the lack of brightness control as mentioned earlier, and the external display port will not work. Other than that, though, everything works perfectly!

    I have a video showing the mod in detail here.

    IMG_7865.jpg
     
  2. LogicalApex macrumors regular

    Joined:
    Nov 13, 2015
    #2
    Very cool mod and lots of detail.

    Not sure why I would want to disable the dGPU other than for the learning aspect.
     
  3. DeanPSN macrumors regular

    DeanPSN

    Joined:
    May 21, 2018
    Location:
    Dublin, Ireland
    #3
    Because he is reffering to 2011 15/17" models which have failed dGPUs, as most 2011 suffers from this.
     
  4. LogicalApex macrumors regular

    Joined:
    Nov 13, 2015
    #4
    Thanks. It makes a lot more sense now!
     
  5. maerz001 macrumors 6502a

    maerz001

    Joined:
    Nov 2, 2010
    #5
    Whats the difference in functionality to the long thread about a software solution without the need of soldering?
     
  6. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #6
    That solution will require you to repeat the whole process every time you do an OS update, and when you reset the PRAM. It also requires that all AMD kexts be deleted from Mac OS. Yes, it works, but it is not a permanent solution like this is.
     
  7. Audit13 macrumors 68030

    Audit13

    Joined:
    Apr 19, 2017
    Location:
    Toronto, Ontario, Canada
  8. ajcgn macrumors regular

    ajcgn

    Joined:
    Oct 19, 2014
    Location:
    Toronto, Ontario
    #8
    I had my 2011 15” MBP reballed a little over three and a half years ago. It finally gave out, the same repair shop did a hardware bypass of the dgpu a few weeks ago for free. Not being a tech guy at all, it sounded similar to Option A above, obviously I will never know for sure.

    On the downside I have no brightness control (as the OP stated) and the no sleep software I used to use when I closed the lid is now useless, as the screen would stay on. Occasionally when I edit photos in Aputure 3 the screen goes wonky, but comes back.

    On the plus side, I’ve got my MBP back and I’m keeping it until it dies :)
     
  9. JMVB, Aug 27, 2018
    Last edited: Aug 27, 2018

    JMVB macrumors member

    JMVB

    Joined:
    May 16, 2016
    #9
    Very cool mod, dude

    IMO, if your mod doesn't enable the output port, not worth it

    Out there is a script which take 1 minute to run.
    Just boot in single user mode and type "bash roxy"
    And with the bash roxy, you actually have backlight control...

    BTW, there is no need to delete the AMD kexts if you remove the R8911
     
  10. Mr_Brightside_@ macrumors 68030

    Mr_Brightside_@

    Joined:
    Sep 23, 2005
    Location:
    Toronto
    #10
    Do you have a link to this?
     
  11. JMVB macrumors member

    JMVB

    Joined:
    May 16, 2016
  12. Eriamjh1138@DAN macrumors 6502

    Eriamjh1138@DAN

    Joined:
    Sep 16, 2007
    Location:
    BFE, MI
    #12
    Dosdude1, where are you getting those cad layouts of the pub and components? Only someone who works for Apple and has ten actual gerber/cadence files would be able to produce such things. You don’t have to answer, I guess.

    But good work. You must have access to the actual design schematics (none of which you’ve posted). Layouts are not schematics (not to me, anyway).

    But keep it up. Too bad we can’t keep dimming. Too bad there isn’t an easier way.
     
  13. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #13
    I used the schematics for the board. I actually had a copy linked in the OP, but I had to remove it due to MacRumors forum rules that I wasn't aware of. However, the schematics can easily be found by Googling. The 15" board is an 820-2915, and the 17" board is an 820-2914.
     
  14. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #15
    Just a quick update: I've found that performing this modification, but leaving the gMux chip in place, gets the system working with full graphics acceleration without needing to flash the system firmware. I have updated the OP to reflect this, along with a slightly revised wiring diagram.
     
  15. Pearl Wisdom macrumors member

    Joined:
    Sep 25, 2009
    #16
  16. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #17
    It will fail again in the future. I've replaced these GPUs myself, and believe me, they WILL fail again. AMD never made a revised chipset that wasn't defective, which is the main reason why.
     
  17. trifero macrumors regular

    Joined:
    May 21, 2009
    #18
    I take my hat off to you.
    --- Post Merged, Sep 2, 2018 ---
    I can confirm that. 3 substitutions in the last 2 years
     
  18. Matejh macrumors newbie

    Matejh

    Joined:
    Jul 5, 2014
    #19
    Hi, dosdude1

    I have tried your solution on Late 2011 MacBook Pro 15 with HiRes Mate Display.
    Unfortunatelly it doesn't work for me.
    I connected all LVDS lines, Removed R8911 to disable GPU and connected enable lines for LCD anf Backlight.
    I get the image, but no backlight. During boot I get small rectangles on the screen and soon afterwards kernel panic and reboot. I made some measurements:
    • LVDS_DDC_SEL_IG gives me only 2.5V when connected to PP3V3_S0
    • bridged rails: LCD_PWR_EN, LVDS_IG_PANEL_PWR, and LCD_BKLT_EN get only 0.7V (hence no backlight). Without bridge VDS_IG_PANEL_PWR gives me 3.3V after connecting one of LCD rails it drops to 2.5V (I get backlight if it is LCD_BKLT_EN) and with both to 0.7 V (no backlight)

    any idea?
     
  19. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #20
    Thanks for the info, I actually just tried this mod on another system, and had the exact same issue. I got it working by revising the wiring like so:

    - Connect LVDS_IG_BKL_ON to LCD_BKLT_EN
    - Connect LVDS_IG_PANEL_PWR to LCD_PWR_EN
    - Connect PP3V3_S0 to LCD_BKLT_PWM

    After making these changes, it should turn the display and backlight on, and work normally. I'll update the wiring diagram to reflect these changes.
     
  20. Tommy c macrumors regular

    Joined:
    Sep 9, 2012
    Location:
    Pocono PA
    #21
    I pmed you about this thread. Just wanted to let you know.
     
  21. Matejh macrumors newbie

    Matejh

    Joined:
    Jul 5, 2014
    #22
    Thanx dosdude1

    it works now, but I still get screen with artefacts (see attachment) after a while following a restart.
    then it doesn't boot unless I do SMC reset first and then it boots again.
     

    Attached Files:

  22. dosdude1 thread starter macrumors 68000

    dosdude1

    Joined:
    Feb 16, 2012
    #23
    I'd check your wiring... You probably have some of the LVDS lines connected incorrectly.
     
  23. Matejh macrumors newbie

    Matejh

    Joined:
    Jul 5, 2014
    #24
    I have checked them at least 5 times... It is strange that it works perfectly for a while and then it happens.
    I have 3 more MacBook Pros like this one. I will try another one and we'll see if it is the same issue.
     
  24. Matejh macrumors newbie

    Matejh

    Joined:
    Jul 5, 2014
    #25
    Thanx dosdude1

    your solution works... I applied it to 4 MacBook Pros allready.
    The first one had graphic artefacts due to bad RAM slot.
    There is a russian version on Youtube which is slightly different and also works.
    I maneged to merge both of them to make it as simple as possible without the need to take out the logicboard.
     

Share This Page