Jump to content
11 posts in this topic

Recommended Posts

Well, I made a DSDT for GA-945GCMX-S2 with the Video, Audio, Network, Powerbutton, HPET, RTC and Aliases fixed. One for GMA950 and another for a Geforce. I put 256MB memory as standard for the Geforce. Who wants to change, to be posted the Debug made the changes.

 

Works with this MOTHERBOARD only.

 

Sorry me for my English.

 

Enjoy.

945GCMX_S2_GMA950.aml.zip

945GCMX_S2_GEFORCE.aml.zip

945GCMX_S2_Debug.zip

Link to comment
https://www.insanelymac.com/forum/topic/147305-dsdtaml-for-ga-945gcmx-s2/
Share on other sites

  • 2 weeks later...
Well, I made a DSDT for GA-945GCMX-S2 with the Video, Audio, Network, Powerbutton, HPET, RTC and Aliases fixed. One for GMA950 and another for a Geforce. I put 256MB memory as standard for the Geforce. Who wants to change, to be posted the Debug made the changes.

 

Works with this MOTHERBOARD only.

 

Sorry me for my English.

 

Enjoy.

 

Thank you for this, it was exactly what i was looking for ;)

Really appreciated

 

-One

Does this work also on 945GCM-S2?

Yes... it works! tested and this works fine =)

 

I have two gfx cards runnuing on efi strings templated by aquamac the EFI studio string for both cards doesn't work...

do you think this one would work for two cards

I don't know... just testing to see =)

  • 1 month later...

Holy {censored}!

Thank you very much, this solved my network problem with other gma-dsdt files.

 

The only thing thats not working is the sound. it is strange, i removed all ALCinject and HDAenabler, and i am using latest appleHDA (1.6.2). In system profile sound looks great, showing many things in the device info, but in system preferences it shows no sound devices for input or output. any ideas?

 

Thanks,

g/

  • 2 months later...

Hi sar4iva,

 

Thank you for the dsdt file. Now I'm able to gets rid NVinject for good. I don't have the same motherboard because mine is a laptop but the code for geforce has been adjusted so that it will works with my hardware. This is my dsdt code for GeForce Go 7300:-

            Device (PEGP)
           {
               Name (_ADR, 0x00010000)
               Device (VGA)
               {
                   Name (_ADR, Zero)
                   Method (_DOS, 1, NotSerialized)
                   {
                       Store (And (Arg0, 0x03), DSEN)
                   }

                   Method (_DOD, 0, NotSerialized)
                   {
                       If (LEqual (PHSR (0x2C, Zero), 0x03))
                       {
                           Return (Package (0x04)
                           {
                               0x00010100, 
                               0x00010200, 
                               0x00010118, 
                               0x00010120
                           })
                       }
                       Else
                       {
                           Return (Package (0x04)
                           {
                               0x00010100, 
                               0x00010200, 
                               0x00010118, 
                               0x00010210
                           })
                       }
                   }

                   [b]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, 0x08
                               }, 

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

                               "model", 
                               Buffer (0x17)
                               {
                                   "GeForce Series Primary"
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "H2P21"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }[/b]

                   Device (CRT)
                   {
                       Name (_ADR, 0x0100)
                       Method (_DCS, 0, NotSerialized)
                       {
                           PHSR (0x25, Zero)
                           If (And (CSTE, 0x0101))
                           {
                               Return (0x1F)
                           }

                           Return (0x1D)
                       }

                       Method (_DGS, 0, NotSerialized)
                       {
                           If (And (NSTE, 0x0101))
                           {
                               Return (One)
                           }

                           Return (Zero)
                       }

                       Method (_DSS, 1, NotSerialized)
                       {
                           If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                           {
                               Store (NSTE, CSTE)
                           }
                       }
                   }

As you can see, the code for geforce (bolded - taken from your dsdt file) was placed according to my hardware configuration. FYI, entry for "Device (PEGP)" & "Device (GFX0)" already exist in my dsdt file but in separate group/function/procedure. This give me headache as where I should put the code until I examine again display information in IORegistryExplorer & then I realize that the display, all the time (when I use NVinject.kext) was listed under VGA@0 in IORegistryExplorer. That is why I put it in VGA procedure/function instead.

 

I include here my dsdt.dsl file for my Acer Aspire 9420 if anybody interested.

dsdt.dsl.zip

Sorry, I should not post it here.

 

Thank you again. :)

 

kizwan

  • 1 year later...

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

 

DTGP

HPET (to avoid AppleIntelCPUPowerManagement panic)

IRQs

LPC

SBUS

Shutdown

_WAK

RTC

 

# Add method DTGP to the main block, it's used by other patches
#
into method label DTGP remove_entry;
into definitionblock code_regex . insert
begin
Method (DTGP, 5, NotSerialized)\n
{\n
   If (LEqual (Arg0, Buffer (0x10)\n
           {\n
               /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n
               /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n
           }))\n
   {\n
       If (LEqual (Arg1, One))\n
       {\n
           If (LEqual (Arg2, Zero))\n
           {\n
               Store (Buffer (One)\n
                   {\n
                       0x03\n
                   }, Arg4)\n
               Return (One)\n
           }\n
           If (LEqual (Arg2, One))\n
           {\n
               Return (One)\n
           }\n
       }\n
   }\n
   Store (Buffer (One)\n
       {\n
           0x00\n
       }, Arg4)\n
   Return (Zero)\n
}
end;
# Change methods _STA and _CRS into device HPET (to avoid AppleIntelCPUPowerManagement panic)
#
into method label _STA parent_hid PNP0103 remove_entry;
into device name_hid PNP0103 insert
begin
Method (_STA, 0, NotSerialized)\n
{\n
   Return (0x0F)\n
}
end;
into method label _CRS parent_hid PNP0103 remove_entry;
into device name_hid PNP0103 insert
begin
Method (_CRS, 0, NotSerialized)\n
{\n
   Return (ATT3)\n
}
end;
# Remove IRQs from devices PIC, RTC and TMR, and add IRQs to device HPET
#
into device name_hid PNP0000 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0103 code_regex_not IRQNoFlags code_regex Name\s\(([^,]+),\sResourceTemplate\s\(\)\n\s+\{((?:.|\n)*)\}\) replace_matched
begin
Name (%1, ResourceTemplate ()\n
                   {\n
                       IRQNoFlags ()\n
                           {0}\n
                       IRQNoFlags ()\n
                           {8}\n
%2
})
end;
# Change ID of device with _ADR 0x001F0000 (LPC)
#
into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "device-id", \n
           Buffer (0x04)\n
           {\n
               0xb9, 0x27, 0x00, 0x00\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end;
into device label FWH set_label begin FWHD end;
into device label MCH set_label begin MCEH end;
into device label PIC set_label begin IPIC end;
into device label DMAD set_label begin DMAC end;
into device label TMR set_label begin TIMR end;
into device label RTC0 set_label begin RTC end;
into device label COPR set_label begin MATH end;
into device label OMSC set_label begin LDRC end;
into device label IDE1 set_label begin SATA end;
into device label CHN0 set_label begin PRT0 end;
into device label CHN1 set_label begin PRT1 end;
into device label USB0 set_label begin UHC1 end;
into device label USB1 set_label begin UHC2 end;
into device label USB2 set_label begin UHC3 end;
into device label US31 set_label begin UHC4 end;
into device label USB4 set_label begin UHC5 end;
into device label USB5 set_label begin UHC6 end;
into device label USBE set_label begin EHC1 end;
into device label USE2 set_label begin EHC2 end;
into device label PX40 set_label begin LPCB end;
into_all all code_regex DMAD replaceall_matched begin DMAC end;
into_all all code_regex TMR replaceall_matched begin TIMR end;
into_all all code_regex RTC0 replaceall_matched begin RTC end;
into_all all code_regex COPR replaceall_matched begin MATH end;
into_all all code_regex OMSC replaceall_matched begin LDRC end;
into_all all code_regex CHN0 replaceall_matched begin PRT0 end;
into_all all code_regex CHN1 replaceall_matched begin PRT1 end;
into_all all code_regex PX40 replaceall_matched begin LPCB end;
into_all all code_regex USB0 replaceall_matched begin UHC1 end;
into_all all code_regex USB1 replaceall_matched begin UHC2 end;
into_all all code_regex USB2 replaceall_matched begin UHC3 end;
into_all all code_regex US31 replaceall_matched begin UHC4 end;
into_all all code_regex USB4 replaceall_matched begin UHC5 end;
into_all all code_regex USB5 replaceall_matched begin UHC6 end;
into_all all code_regex USBE replaceall_matched begin EHC1 end;
into_all all code_regex USE2 replaceall_matched begin EHC2 end;
into device name_adr 0x001E0000 set_label
begin
PCIB
end;
into_all all code_regex HUB0 replaceall_matched
begin
PCIB
end;
# Insert device SBUS into device PCI0
#
into device name_adr 0x001F0003 parent_label PCI0 remove_entry;
into device label PCI0 insert
begin
Device (SBUS)\n
{\n
   Name (_ADR, 0x001F0003)\n
   Device (BUS0)\n
   {\n
       Name (_CID, "smbus")\n
       Name (_ADR, Zero)\n
       Device (DVL0)\n
       {\n
           Name (_ADR, 0x57)\n
           Name (_CID, "diagsvault")\n
       }\n
   }\n
   Method (_DSM, 4, NotSerialized)\n
   {\n
       Store (Package (0x02)\n
           {\n
               "device-id", \n
               Buffer (0x04)\n
               {\n
                   0x30, 0x3A, 0x00, 0x00\n
               }\n
           }, Local0)\n
       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
       Return (Local0)\n
   }\n
}
end;
# Change method _PTS where Arg0 is 0x05 (shutdown)
#
into method label _PTS code_regex (If\s*\(LEqual\s*\(Arg0,\s*0x05\)\)\s*\n\s*\{\s*\n)(?:[^\n\}]+\n)+(\s*\}) replace_matched
begin
%1
           Store (Zero, SLPE)\n
           Sleep (0x10)\n
%2
end;
into method label \_PTS code_regex (If\s*\(LEqual\s*\(Arg0,\s*0x05\)\)\s*\n\s*\{\s*\n)(?:[^\n\}]+\n)+(\s*\}) replace_matched
begin
%1
           Store (Zero, SLPE)\n
           Sleep (0x10)\n
%2
end;
into definitionblock code_regex . code_regex_not OperationRegion\s*\(PMRS insert
begin
OperationRegion (PMRS, SystemIO, 0x0430, One)\n
Field (PMRS, ByteAcc, NoLock, Preserve)\n
{\n
       ,   4, \n
   SLPE,   1\n
}
end;
# Insert return into method _WAK to fix warning
# (for Gigabyte motherboards)
#
into method label _WAK code_regex Return\s\(\s*\n?\s*Package\s*\n?\s*\(0x02\)\s*\n?\s*\{\s*\n?(?:\s*Zero,?\s*\n?){2}\s*\}\s*\n?\s*\) remove_matched;
into method label _WAK insert
begin
Return (Package (0x02)\n
{\n
   Zero, \n
   Zero\n
})
end;
into method label \_WAK code_regex Return\s\(\s*\n?\s*Package\s*\n?\s*\(0x02\)\s*\n?\s*\{\s*\n?(?:\s*Zero,?\s*\n?){2}\s*\}\s*\n?\s*\) remove_matched;
into method label \_WAK insert
begin
Return (Package (0x02)\n
{\n
   Zero, \n
   Zero\n
})
end;
# Change the length of IO segment in device RTC to 0x02 (fix CMOS reset)
#
into device name_hid PNP0B00 code_regex (IO\s\((?:\s*[^,]+,\s*(?:\/\/\s.*)?\s*\n)+\s*)(\dx\d+)(,\s*(?:\/\/\s.*)?\s*\n\s*\)) replace_matched begin %10x02%3 end

 

Patches.txt

 

GMA 950 DESKTOP

# Insert device PEGP into device PCI0
#
into device name_adr 0x00020000 parent_label PCI0 remove_entry;
into device label PCI0 insert
begin
Device (PEGP)\n
{\n
   Name (_ADR, 0x00020000)\n
   Device (GFX0)\n
   {\n
       Name (_ADR, Zero)\n
       Method (_DSM, 4, NotSerialized)\n
       {\n
           Store (Package (0x1A)\n
               {\n
                   "device_type", \n
                   Buffer (0x08)\n
                   {\n
                       "display"\n
                   }, \n
                   "model", \n
                   Buffer (0x07)\n
                   {\n
                       "GMA950"\n
                   }, \n
                   "built-in", \n
                   Buffer (One)\n
                   {\n
                       0x01\n
                   }\n
               }, Local0)\n
           DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
           Return (Local0)\n
       }\n
   }\n
}
end

GMA950_desktop.txt

 

wowlf.png

×
×
  • Create New...