Jump to content
samersh94

DSDT & NVIDIA 9500 GT

Recommended Posts

Hi all,

I have a XFX 9500 GT 1GB graphics card.

I've extracted the ROM from it using NVFLASH and I want to calculate the NVCAP from it. I've used "NVCAP MAKER" but I failed after adding the result in the DSDT.

Also I want to know how to calculate the buffer length in a DSDT Code, Should I count then add one then convert to hex?

Link to comment
Share on other sites

Add 0x before and , after each 2 digits, see example here http://Olarila.com/forum/viewtopic.php?f=19&t=609


Your method to calculate buffer size is correct (actually the "add one" part is only for strings), but you can just leave it blank and the compiler will count, see example in the link above.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

It does but It's not working. So Should I use the NVEnabler's one ?

You can try. There's some info about it in this topic

http://www.insanelymac.com/forum/index.php?showtopic=215236

 

What about the non-string values, I mean how the buffer size is calculated?

Just count, don't add one.


Again, you don't need to calculate, just leave it blank, the compiler will count.

                                Buffer ()
                               {
                                   ...
                               }

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

        Device (PCI0)
       {
           Name (_HID, EisaId ("PNP0A03"))
           Name (_ADR, Zero)
           Name (_UID, One)
           Name (_BBN, Zero)
           Method (_S3D, 0, NotSerialized)
           {
               If (LEqual (OSFL, 0x02))
               {
                   Return (0x02)
               }
               Else
               {
                   Return (0x03)
               }
           }
           Device (PEGP)
           {
               Name (_ADR, 0x00030000)
               Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Name (_SUN, One)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x1A)
                           {
                               "@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"
                               },

                               "AAPL,slot-name", 
                               Buffer (0x07)
                               {
                                   "Slot-1"
                               },

                               "device_type", 
                               Buffer (0x0C)
                               {
                                   "NVDA,Parent"
                               },

                               "model", 
                               Buffer (0x10)
                               {
                                   "GeForce 9500 GT"
                               },

                               "", 
                               Buffer ()
                               {
                                   ""
                               },

                               "NVPM", 
                               Buffer (0x1C)
                               {
                                   0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   0x00, 0x00, 0x00, 0x00
                               },

                               "NVCAP", 
                               Buffer ()
                               {
                                   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 
                                   0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 
                                   0x00, 0x00, 0x00, 0x00
                               },

                               "rom-revision", 
                               Buffer (0x0F)
                               {
                                   "62.94.4B.00.96"
                               },

                               "vendor-id", 
                               Buffer (0x04)
                               {
                                   0xDE, 0x10, 0x00, 0x00
                               },

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x40
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

 

I've made this code but it's not working at all, I don't know where the error comes from!

NOTE: NVCAP obtained from NVEnabler 64.kext


My IORegistryExplorer: http://imageshack.us/photo/my-images/804/ioreg.png/

Link to comment
Share on other sites

_ADR of PEGP is wrong, should be 0x00010000 according to your ioreg (pci-bridge@1).


You can remove this part

                                "",
                               Buffer ()
                               {
                                   ""
                               },

Also delete the size of Package inside _DSM.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

like this one:

                                                                "reg",
                                                               Buffer (0x78)
                                                               {
                                                                       /* 0000 */      0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0008 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0010 */      0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02,
                                                                       /* 0018 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0020 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
                                                                       /* 0028 */      0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0030 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0038 */      0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02,
                                                                       /* 0040 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0048 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
                                                                       /* 0050 */      0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0058 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0060 */      0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02,
                                                                       /* 0068 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                                       /* 0070 */      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00
                                                               },

 

Also what is the EDID? is it necessary?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...
The popup will be closed in 15 seconds...