Results 1 to 10 of 50

Thread: Experiments in refit shell to enable 9400M on MBP 5,1

Threaded View

  1. #11
    Join Date
    Jul 2010
    Beans
    142

    Re: Experiments in refit shell to enable 9400M on MBP 5,1

    Thank Alex for the helpful research work !

    I also did my own experiments, and I have different results on my MacBookPro 5,3.

    I first looked in "About This Mac" under MacOS X, select "Hardware" in the left tree, then "Graphics/Displays".
    Select "NVIDIA GeForce 9400M", and look the value of the "Device ID" field. I have 0x0863.
    Select "NVIDIA GeForce 9600M GT", and look the value of the "Device ID" field. I have 0x0647.

    Then I go to the rEFIt shell.

    When I type "pci -b" I see two entries for display controllers :
    00 02 00 00 ==> Display Controller - VGA/8514 controller
    Vendor 10DE Device 0647 Prog Interface 0
    00 03 00 00 ==> Display Controller - VGA/8514 controller
    Vendor 10DE Device 0863 Prog Interface 0

    and therefore the 2 cards are identified as follows :
    00 02 00 : 9600M GT (0x647)
    00 03 00 : 9400M (0x0863)
    This is the opposite conclusion to yours. Thomas Gerlach seems to agree with me in his post "drivers/video/efifb.c: Framebuffer for NVIDIA 9400M in MacBook Pro 5,1".

    Like you, when I do a "pci 00 02 00" or "pci 00 03 00", I have either all "0xFF" bytes for the disabled card, and an output starting with "DE 10" for the enabled one. The enabled card is the one activated in MacOS X, depending on the "Energy saver" preference pane radio button ("better battery life" or "higher performance").

    Then I do a "devices -b" and I see two entries for NVIDIA :
    E6 B - - 1 2 5 NVIDIA GPU
    E8 B - - 1 5 6 NVIDIA GPU

    Then I do a "dh -b e8" when the 9400M is enabled in "Energy saver", and I see the following parameters :
    Handle E8 (AE6B7498 )
    HorizontalResolution 1440
    VerticalResolution 900
    PixelsPerScanLine: 2048
    FrameBufferBase 0xD0010000
    FrameBufferSize 0x708000
    PCI 00 03 00

    Then I do a "dmpstore -b gpu-power-prefs" and its value is : 01 00 00 00
    Then I do a "dmpstore -b legacyvgahandle" and its value is : 98 74 6B AE 00 00 00 00

    Then I do a "dh -b e6" when the 9600M GT is enabled in "Energy saver", and I see the following parameters ::
    Handle E6 (AE6B7B98 )
    HorizontalResolution 1440
    VerticalResolution 900
    PixelsPerScanLine: 2048
    FrameBufferBase 0xC0030000
    FrameBufferSize 0x708000
    PCI 00 02 00

    Then I do a "dmpstore -b gpu-power-prefs" and it value is : 00 00 00 00
    Then I do a "dmpstore -b legacyvgahandle" and its value is : 98 7B 6B AE 00 00 00 00

    My conclusion is that all EFI variables have the correct values to refer the 9400M or the 9600M GT depending on the card chosen in "Energy Saver", but that the BIOS is not using them
    The only option left is to trying and boot Linux in EFI mode.

    Regards,

    metatech
    Last edited by metatechbe; August 21st, 2010 at 03:03 PM. Reason: Add PixelsPerScanLine: 2048

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •