Jump to content

Multiple Video Cards WORKING in 10.6 with EFI Strings/DSDT


DigitalDJ
 Share

60 posts in this topic

Recommended Posts

I wrote this up on my blog just now...but I'm going to post it here for everyone to read and dissect. I've ready so much from InsanelyMac, time to give something back :(

 

This took me quite some time to figure out. Even though I had the right Device Path for both video cards and correct EFI strings, the system would constantly kernel panic upon switching to GUI mode (NVDAResman). NVInject for Leopard seemed to work, but disabled QE/CI and it wasn't 64-bit unless I compiled it myself.

 

Eventually I got it working with JUST EFI strings but I had to change my BIOS to boot with PEG2 (so my secondary card would be my primary display). This wasn't a solution for me. I read up and found that Gigabyte boards seemed to have trouble with two cards and that you'd need to use PEG2 and switch cards around each time you wanted to enter (Snow)Leopard. Well, NO LONGER. Here's the solution. Hoorah! (This may even work in Leopard)

 

Firstly, you will need to modify your EFI Strings. Make sure you have the correct Device Root for each device. Usually PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0) and PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0). To find these, take out your secondary card, boot, run gfxutil -f display, and note it. Shutdown, take out your primary card, insert your secondary card (into it's secondary slot) and repeat.

 

You will then need to add some keys. A typical dual-video card EFI plist is outlined below, the parts that are bolded are what you need to add, the parts in red need to be changed.

 

In my example below I use a NVIDIA GeForce GTX 260 (896MB DVI/DVI) and NVIDIA GeForce 8500 GT (256MB DVI/VGA). You should make sure that the parts I haven't highlighted are also the same in your current EFI string.

 

<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0) (OR THE PCI ROOT OF YOUR PRIMARY CARD use gfxutil)</key>

<dict>

<key>@0,AAPL,boot-display</key>

<data></data>

<key>@0,can-hot-plug</key>

<data></data>

<key>@0,compatible</key>

<string>NVDA,NVMac</string>

<key>@0,connector-type</key>

<data>AAAABA==</data>

<key>@0,device_type</key>

<string>display</string>

<key>@0,display-connect-flags</key>

<data>AAAAAA==</data>

<key>@0,name</key>

<string>NVDA,Display-A</string>

<key>@1,AAPL,boot-display</key>

<data></data>

<key>@1,can-hot-plug</key>

<data></data>

<key>@1,compatible</key>

<string>NVDA,NVMac</string>

<key>@1,connector-type</key>

<data>AAAABA==</data>

<key>@1,device_type</key>

<string>display</string>

<key>@1,display-connect-flags</key>

<data>AAAAAA==</data>

<key>@1,name</key>

<string>NVDA,Display-B</string>

<key>NVCAP</key>

<data>BAAAAAAAAwAMAAAAAAAABwAAAAA=THIS IS DVI/DVI (change it depending in your card)</data>

<key>NVPM</key>

<data>AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</data>

<key>built-in</key>

<data>AA==</data>

<key>VRAM,totalsize</key>

<string>0x38000000 THIS IS 896MB RAM (change it depending on your card)</string>

<key>device_type</key>

<string>NVDA,GeForce</string>

<key>model</key>

<string>NVIDIA GeForce GTX 260 (change depending on card)</string>

<key>name</key>

<string>NVDA,Parent</string>

<key>rm_multiboard_capable</key>

<data>AAAAAQ==</data>

<key>rom-revision</key>

<string>NVIDIA GeForce GTX 260 (change depending on card) OpenGL Engine</string>

</dict>

 

<key>PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0) (OR THE PCI ROOT OF YOUR SECONDARY CARD use gfxutil)</key>

<dict>

<key>@0,AAPL,boot-display</key>

<data></data>

<key>@0,can-hot-plug</key>

<data></data>

<key>@0,compatible</key>

<string>NVDA,NVMac</string>

<key>@0,connector-type</key>

<data>AAAABA==</data>

<key>@0,device_type</key>

<string>display</string>

<key>@0,display-connect-flags</key>

<data>AAAAAA==</data>

<key>@0,name</key>

<string>NVDA,Display-A</string>

<key>@1,AAPL,boot-display</key>

<data></data>

<key>@1,can-hot-plug</key>

<data></data>

<key>@1,compatible</key>

<string>NVDA,NVMac</string>

<key>@1,connector-type</key>

<data>AAAABA==</data>

<key>@1,device_type</key>

<string>display</string>

<key>@1,display-connect-flags</key>

<data>AAAAAA==</data>

<key>@1,name</key>

<string>NVDA,Display-B</string>

<key>NVCAP</key>

<data>BAAAAAAAAwAEAAAAAAAABwAAAAA=THIS IS DVI/VGA (change it depending in your card)</data>

<key>NVPM</key>

<data>AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</data>

<key>built-in</key>

<data>AA==</data>

<key>VRAM,totalsize</key>

<string>0x10000000THIS IS 256MB RAM (change it depending on your card)</string>

<key>device_type</key>

<string>NVDA,GeForce</string>

<key>model</key>

<string>NVIDIA GeForce 8500 GT(change depending on card)</string>

<key>name</key>

<string>NVDA,Parent</string>

<key>rm_multiboard_capable</key>

<data>AAAAAQ==</data>

<key>rom-revision</key>

<string>NVIDIA GeForce 8500 GT(change depending on card) OpenGL Engine</string>

</dict>

 

That should allow you to boot to Snow Leopard under PEG2, with CI/QE. No more Kernel Panics! But we're not done. Lets finish the job to allow no BIOS changes (i.e. booting from PEG1):

 

Now we need to patch DSDT.aml. Gather your DSDT.dsl file using iasl (or whatever you prefer). Open it up in TextEdit and search for:

 

Device (PCI0)

 

Add the following devices under it:

 

Device (PEGP)

{

Name (_ADR, 0x00010000)

Device (GFX0)

{

}

}

 

Device (GFX1)

{

Name (_ADR, 0x00060000)

}

 

It should look like:

 

Device (PCI0)

{

 

Device (PEGP)

{

Name (_ADR, 0x00010000)

Device (GFX0)

{

}

}

 

Device (GFX1)

{

Name (_ADR, 0x00060000)

}

 

Name (_HID, EisaId ("PNP0A03"))

 

Replace the _ADR fields with the Device Path Number. For example, in my EFI string above I have PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0) and PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0). Replace these numbers in those fields. If you have something like..."1C" instead of just "6" you'll have something like Name (_ADR, 0x001C0000).

 

Recompile the DSDT with iasl -sa and replace the file. Reboot and hoorah, you're done. If you have a translucent bar at the top, QE/CI is working. Boot up time will be about 30-40 seconds longer. I don't know why this is, but it's a good trade off. If you need help with NVCAP or VRAM values try here.

 

Oh and sorry for the horrible spacing :D

 

Have fun!

Link to comment
Share on other sites

The reason you're experiencing longer boot time is because the GPU Debug info being generated to /var/log/kernel.log. Take a look at the kernel log file and you'll see a long listing of "GPU Debug Info" and time needed to dump those message are exactly the delay of the boot time. I guess the system probably encountered some error in dual display card config and output those GPU debug log.

 

I'm using dual ATI cards and also experiencing a longer boot time. I'm trying to disable the secondary card by manually modifying dsdt.dsl, but not successful. If you know how to disable a graphics card being picked up by OSX, please help.

Link to comment
Share on other sites

I went through all my Console logs, couldn't find any significant error to do with graphics.

 

WindowServer.log shows:

 

Sep 02 23:10:32 [70] CGXMappedDisplayStart: Display0 : boot screen

Sep 02 23:10:32 [70] CGXMappedDisplayStart: Display0 : no display alias property

Sep 02 23:10:32 [70] CGXMappedDisplayStart: Display1 : boot screen

Sep 02 23:10:32 [70] CGXMappedDisplayStart: Display1 : no display alias property

Sep 02 23:10:32 [70] CGXMappedDisplayStart: Display2 : boot screen

Sep 02 23:10:32 [70] CGXMappedDisplayStart: Display2 : no display alias property

Sep 02 23:10:32 [70] CGXMappedDisplayStart: Display3 : no display alias property

Sep 02 23:10:32 [70] GLCompositor: GL renderer id 0x01022610, GL mask 0x00000003, accelerator 0x0000311f, unit 0, caps 0x00000003, vram 896 MB

Sep 02 23:10:32 [70] GLCompositor: GL renderer id 0x01022610, GL mask 0x00000003, texture units 8, texture max 8192, viewport max {8192, 8192} extensions 0x0000000f

Sep 02 23:10:32 [70] GLCompositor: GL renderer id 0x02022606, GL mask 0x0000000c, accelerator 0x00003b1f, unit 2, caps 0x00000003, vram 256 MB

Sep 02 23:10:32 [70] GLCompositor: GL renderer id 0x02022606, GL mask 0x0000000c, texture units 8, texture max 8192, viewport max {8192, 8192} extensions 0x0000000f

Sep 02 23:10:32 [70] AGCAttach: Couldn't find any matches

Sep 02 23:10:32 [70] CGXPerformInitialDisplayConfiguration

Sep 02 23:10:32 [70] Display 0x2b284b10: MappedDisplay Unit 0; Vendor 0x10ac Model 0xa019 S/N 809717075; online enabled (0,0)[1680 x 1050], Rotation 0, base addr 0x107100000

Sep 02 23:10:32 [70] Display 0x2b38470e: MappedDisplay Unit 2; Vendor 0x10ac Model 0xe009 S/N 808994124; online enabled (-1680,0)[1680 x 1050], Rotation 0, base addr 0x117301000

Sep 02 23:10:32 [70] Display 0x3f003f: MappedDisplay Unit 3; Vendor 0xffffffff Model 0xffffffff S/N -1; offline enabled (4384,0)[1 x 1], Rotation 0, base addr 0x117301000

Sep 02 23:10:32 [70] Display 0x2b28500d: MappedDisplay Unit 1; Vendor 0x10ac Model 0xa019 S/N 843470412; online enabled (1680,0)[1680 x 1050], Rotation 0, base addr 0x107100000

Sep 02 23:10:33 [70] Display 0x2b284b10: MappedDisplay Unit 0; ColorProfile "DELL 2007WFP"

Sep 02 23:10:33 [70] Display 0x2b38470e: MappedDisplay Unit 2; ColorProfile "DELL 2005FPW"

Sep 02 23:10:33 [70] Display 0x2b28500d: MappedDisplay Unit 1; ColorProfile "DELL 2007WFP"

 

Doesn't look too abnormal.

Link to comment
Share on other sites

Hmm, I guess ATI & Nvidia behave differently. Here is my /var/log/kernel.log for the GPU Debug message dump which resulted in over 40 seconds delay in startup.

 

Sep  2 18:24:50 simons-Mac kernel[0]: Ethernet [AppleYukon2]: Link up on en0, 100-Megabit, Full-duplex, Symmetric flow-control, Debug [796d,6f48,0de1,0200,45e1,4000]
Sep  2 18:24:51 simons-Mac kernel[0]: ATY,Lamna: Not usable
Sep  2 18:25:01 simons-Mac kernel[0]: ** Device in slot: SLOT--1 **
Sep  2 18:25:01 simons-Mac kernel[0]: ** GPU Debug Info Start **
Sep  2 18:25:01 simons-Mac kernel[0]: 0x00009598
Sep  2 18:25:01 simons-Mac kernel[0]: 0x000000d6
Sep  2 18:25:01 simons-Mac kernel[0]: 0x00000001
Sep  2 18:25:01 simons-Mac kernel[0]: 0x00000018
Sep  2 18:25:01 simons-Mac kernel[0]: 0x0000feae
Sep  2 18:25:01 simons-Mac kernel[0]: 0x00000001
Sep  2 18:25:01: --- last message repeated 1 time ---
Sep  2 18:25:01 simons-Mac kernel[0]: 0x00009598
..
..
Sep  2 18:25:46 simons-Mac kernel[0]: 0xdbc4972f
Sep  2 18:25:46 simons-Mac kernel[0]: 0xd67c415a
Sep  2 18:25:46 simons-Mac kernel[0]: ** GPU Debug Info End **
Sep  2 18:25:48 simons-Mac kernel[0]: NTFS driver 3.0 [Flags: R/W].

Link to comment
Share on other sites

  • 2 weeks later...

I have both my cards working by injecting half that info via DSDT, without using EFI strings. I did try you method and I loose QE/CI.

 

QE/CI working with DSDT only no EFI strings:

            Device (PEG1)
           {
               Name (_ADR, 0x00010000)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Device (GFX1) // <-- GeForce 8800GT
               {
                   Name (_ADR, Zero)
                   Name (_SUN, 0x0B)
                   Method (_PRW, 0, NotSerialized)
                   {
                       Return (Package (0x02)
                       {
                           0x0B, 
                           0x04
                       })
                   }

                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x16)
                           {
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer (0x18)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type",
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x17)
                               {
                                   "NVIDIA Geforce 8800 GT"
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "3173a"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

           Device (PEG2)
           {
               Name (_ADR, 0x00060000)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Device (GFX2) // <-- GeForce 8500GT
               {
                   Name (_ADR, Zero)
                   Name (_SUN, 0x0C)
                   Method (_PRW, 0, NotSerialized)
                   {
                       Return (Package (0x02)
                       {
                           0x05, 
                           0x04
                       })
                   }

                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x16)
                           {
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer (0x18)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x10
                               }, 

                               "device_type",
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x17)
                               {
                                   "NVIDIA Geforce 8500 GT"
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "3169a"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

 

QE/CI not working with DSDT only no EFI strings:

            Device (PEG1)
           {
               Name (_ADR, 0x00010000)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Device (GFX1) // <-- GeForce 8800GT
               {
                   Name (_ADR, Zero)
                   Name (_SUN, 0x0B)
                   Method (_PRW, 0, NotSerialized)
                   {
                       Return (Package (0x02)
                       {
                           0x0B, 
                           0x04
                       })
                   }

                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x2E)
                           {
                               "@0,AAPL,boot-display", 
                               Buffer (0x01)
                               {
                                   ""
                               }, 

                               "@0,can-hot-plug", 
                               Buffer (0x01)
                               {
                                   ""
                               }, 

                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,connector-type", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x40
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,display-connect-flags", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x00
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               },

                               "@1,AAPL,boot-display", 
                               Buffer (0x01)
                               {
                                   ""
                               }, 

                               "@1,can-hot-plug", 
                               Buffer (0x01)
                               {
                                   ""
                               }, 

                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,connector-type", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x40
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,display-connect-flags", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x00
                               }, 

                               "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer (0x18)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

			                "NVPM", 
			                Buffer (0x20) 
			                { 
			                	/* 0000 */    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
			                	/* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
			                	/* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
			                	/* 0018 */    0x00, 0x00, 0x00, 0x00 
			                }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "built-in", 
                               Buffer (0x01)
                               {
                                   0x00
                               }, 

                               "device_type",
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x17)
                               {
                                   "NVIDIA Geforce 8800 GT"
                               }, 

                               "name", 
                               Buffer (0x0B)
                               {
                                   "NVDA,Parent"
                               }, 

                               "rm_multiboard_capable", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "3173a"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

           Device (PEG2)
           {
               Name (_ADR, 0x00060000)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Device (GFX2) // <-- GeForce 8500GT
               {
                   Name (_ADR, Zero)
                   Name (_SUN, 0x0C)
                   Method (_PRW, 0, NotSerialized)
                   {
                       Return (Package (0x02)
                       {
                           0x05, 
                           0x04
                       })
                   }

                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x2E)
                           {
                               "@0,AAPL,boot-display", 
                               Buffer (0x01)
                               {
                                   ""
                               }, 

                               "@0,can-hot-plug", 
                               Buffer (0x01)
                               {
                                   ""
                               }, 

                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,connector-type", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x40
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,display-connect-flags", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x00
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               },

                               "@1,AAPL,boot-display", 
                               Buffer (0x01)
                               {
                                   ""
                               }, 

                               "@1,can-hot-plug", 
                               Buffer (0x01)
                               {
                                   ""
                               }, 

                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,connector-type", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x40
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,display-connect-flags", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x00
                               }, 

                                "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer (0x18)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

			                "NVPM", 
			                Buffer (0x20) 
			                { 
			                	/* 0000 */    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
			                	/* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
			                	/* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
			                	/* 0018 */    0x00, 0x00, 0x00, 0x00 
			                }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x10
                               }, 

                               "built-in", 
                               Buffer (0x01)
                               {
                                   0x00
                               }, 

                               "device_type",
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x17)
                               {
                                   "NVIDIA Geforce 8500 GT"
                               }, 

                               "name", 
                               Buffer (0x0B)
                               {
                                   "NVDA,Parent"
                               }, 

                               "rm_multiboard_capable", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "3173a"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

Link to comment
Share on other sites

Hi kdawg,

 

Did you manage to boot from PEG1 without problems with this method?

Do you get the additional 30-40 seconds of boot delay that DigitalDJ is experiencing?

 

thanks for your data on this, I'm running a EP35DS3P and I'm forced to boot from PEG2 for my two cards to be recogniced and I do not like it at all.

 

Ric

Link to comment
Share on other sites

I have a GA-EP45-UD3P system with dual 8400GS cards in it. I have it working in 10.5.8 starting up in PEG2, but I would also be interested in the DSDT only solution so it could be booted into 10.6 or 10.5 without having to switch the BIOS each time.

 

Update: I accidentally got it working by using a hard drive I put together for my P35-DS3L. It is working just using PEG in the BIOS also. I would be most interested if someone who knows what they are doing could take a look at what I used on the hard drive including a copy of the DSDT.dsl file and tell me why this is working. I made a text file with the pertinent info and it is located here:

 

http://groups.google.com/group/hq-a/files

 

The file name is accident.zip. It's only about 250k, so please take a look at it and let me know what I did! Also how do I now go about patching the DSDT for the sound on my UD3P which has a ALC889a instead of the ALC888 which is in my DS3L. Thanks

Link to comment
Share on other sites

Hi,

 

I got single cards working, no problem. The only thing is that IORegexplorer tells me both cards are on PCI0@0, pci-bridge@1 and pci-bridge@6, I tried your method and get kernel panics.

I'm kinda lost, just don't know where to start trying...I added a gfx0 and a gfx1 entry under the PCI0 entry of my DSDT-file, but no luck.

Link to comment
Share on other sites

Noobishi question here, but on the decompiling and recompiling of the DSDT, the iasl commands are done in linux, or is there an addon for OS X that is iasl? Because my OS X terminal does not recognize iasl, but I recognize it from Linux.

Link to comment
Share on other sites

  • 2 weeks later...
Hi kdawg,

 

Did you manage to boot from PEG1 without problems with this method?

Do you get the additional 30-40 seconds of boot delay that DigitalDJ is experiencing?

 

thanks for your data on this, I'm running a EP35DS3P and I'm forced to boot from PEG2 for my two cards to be recogniced and I do not like it at all.

 

Ric

 

Sorry for the late response.

 

Yeah I can boot via PEG1 with no problems or delays. I wanted to try DigitalDJ's method to see if there was any difference between the two techniques.

Link to comment
Share on other sites

Noobishi question here, but on the decompiling and recompiling of the DSDT, the iasl commands are done in linux, or is there an addon for OS X that is iasl? Because my OS X terminal does not recognize iasl, but I recognize it from Linux.

 

You need to run it as a script, so try ./iasl and that should work for you.

Link to comment
Share on other sites

This is the method that has brought me as far as I could get. Using EFI strings without patching dsdt all got stuck just before switching to GUI mode upon booting. This method at least switches on, but all black.

 

I know to fix this by turning on PEG2 in bios but... I have no option for that. I am using a DFI LanParty DK P45-T2RS Plus.

 

Any suggestions? I really want this third monitor going =)

Link to comment
Share on other sites

  • 1 month later...

Kdawg,

 

I have tried the method in this thread with EFI strings in order to get my 2 7900gs 256mb video cards to work but only get a black screen at the login window and the card's fan spinning very fast (even booting PEG2). Therefore, I want to try your method with the DSDT. I want to know how you were able to find the correct values to put in your DSDT. Since we share a common motherboard and revision I am hoping to use your code with my values for vram and nvcap. Is there any other variable in your code I need to find out for my cards. I have tried many different techniques (efistrings, nvinject) and all give the same result. Please let me know how you were able to get all this information. I will be eternally grateful. Thanks in advance.

Link to comment
Share on other sites

Well I have just solved my problem. I have it working with just modified DSDT using your code. I adjusted the nvram values for my card and used your nvcap. It only works booting with the PEG bios option for me though.

 

Hi Shajiver,

 

Can you publish your system configuration?

And when you say "it only works booting with the PEG option" what you mean? You boot with the PEG or PEG2 option? Which motherboard do you have?

 

I have two 7300GT running great with EFI strings and PEG2 on Giga EP35ds3P but I'd really like to boot in PEG.

 

thanks.

 

Ric

Link to comment
Share on other sites

Sorry for the vagueness. I am running a gigabyte ep45-ud3p with an intel core 2 quad 2.6ghz processor and two bfg nvidia7900gs 256mb cards. Booting with chameleon rc2. When I refer to the peg option, I am talking about the bios option for peg1 or peg2. With this modified dsdt everything works perfectly, but if I try to boot with the bios set to PEG2 (like you are having to do now) then the system hangs.

 

I have heard many people saying they would rather boot in PEG1 than PEG2, but in system profiler both cards show up as being x8 bus. I think when you have 2 cards both slots revert to x8, even though the top slot is x16. Either way, the dsdt method works great so if you want to boot PEG1 as your primary then you should try it. I just used kdawgs code and my nvram values. His nvcap matched mine (I pulled my values from nvflash) and it worked like a charm!

Link to comment
Share on other sites

I have heard many people saying they would rather boot in PEG1 than PEG2, but in system profiler both cards show up as being x8 bus. I think when you have 2 cards both slots revert to x8, even though the top slot is x16. Either way, the dsdt method works great so if you want to boot PEG1 as your primary then you should try it. I just used kdawgs code and my nvram values. His nvcap matched mine (I pulled my values from nvflash) and it worked like a charm!

 

@shajiver,

 

Thanks for your answer. I'll try it. In my case PEG1 is better because in my motherboard (P35 chipset) PEG1 is x16 and PEG2 is just x4. That's the problem.

By the way, any chance that you post your DSDT? It would help me compare with mine.

 

cheers

 

Ric

Link to comment
Share on other sites

 Share

×
×
  • Create New...