overdue-scratch

Author Topic: DSDT patch for Windows 7  (Read 13704 times)

0 Members and 1 Guest are viewing this topic.

Perch

  • Entrant
  • Posts: 4
DSDT patch for Windows 7
« on: March 24, 2010, 10:34:15 AM »
I've discovered, that wrong OS detection in DSDT affects not only OS X. When I upgraded to Windows 7 from Vista I got CPU locked on 50% of frequency and not working sleep ie same symptoms as under OS X. So I really need to patch DSDT for both OS X and Windows 7. Is it posible?

Blackosx

  • Forum Moderator
  • Posts: 1150
Re: DSDT patch for Windows 7
« Reply #1 on: March 26, 2010, 08:19:41 AM »
Hi Perch

Windows 7 should run just fine using your motherboards' BIOS supplied by the manufacturer. If not then you should contact said manufacturer. Chameleon will not do anything other than allow Windows 7 to boot normally.
10.10.5 / 10.11 GM1 | Asus Maximum IV Gene-Z | i7-2600 3.40GHz | 4GB | Radeon 5770 1GB

Perch

  • Entrant
  • Posts: 4
Re: DSDT patch for Windows 7
« Reply #2 on: March 26, 2010, 04:44:50 PM »
There is no Windows 7 support for my notebook. But I understand, that adding this feature to Chameleon is complicated. Thanks for reply.

Gringo Vermelho

  • Forum Moderator
  • Posts: 611
  • The gray monster energy hat
Re: DSDT patch for Windows 7
« Reply #3 on: March 27, 2010, 03:38:00 AM »
AFAIK Windows Vista and 7 use the same "Windows 2006" OSPM code in the DSDT table, so there should be no change. Unless..

Did you SLIC 2.1 mod your BIOS before installing Windows 7?

 
« Last Edit: March 27, 2010, 04:03:50 AM by Gringo Vermelho »
10.9.5 - ASUS P8Z77-V Pro - i5 3570K - GTX 660 - Chameleon 2.3 svn-r2xxx
How to...
Install Chameleon: http://forum.voodooprojects.org/index.php/topic,649
Make your own Chameleon boot CD: http://forum.voodooprojects.org/index.php/topic,484.msg2131.html#msg2131

Perch

  • Entrant
  • Posts: 4
Re: DSDT patch for Windows 7
« Reply #4 on: March 29, 2010, 08:51:07 AM »
I dumped DSDT from ASUS K50:
Code: [Select]
        Name (OSFG, Zero)
        Name (OS9X, One)
        Name (OS98, 0x02)
        Name (OSME, 0x04)
        Name (OS2K, 0x08)
        Name (OSXP, 0x10)
        Name (OSVT, 0x20)
        Name (OSEG, 0x40)
        Name (OSW7, 0x80)
        Name (SLMT, Zero)
        Method (MSOS, 0, NotSerialized)
        {
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Windows 2001"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2006"))
                {
                    Store (OSVT, OSFG)
                }

                If (_OSI ("Linux"))
                {
                    Store (OSEG, OSFG)
                }

                If (_OSI ("Windows 2009"))
                {
                    Store (OSW7, OSFG)
                }

                If (_OSI ("Linux"))
                {
                    Store (OSEG, OSFG)
                }

                If (_OSI ("Windows 2009"))
                {
                    Store (OSW7, OSFG)
                }

                Return (OSFG)
            }
            Else
            {
                If (MCTH (_OS, "Microsoft Windows"))
                {
                    Store (OS98, OSFG)
                }
                Else
                {
                    If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
                    {
                        Store (OSME, OSFG)
                    }
                    Else
                    {
                        If (MCTH (_OS, "Microsoft Windows NT"))
                        {
                            Store (OS2K, OSFG)
                        }
                        Else
                        {
                            Store (OSXP, OSFG)
                        }
                    }
                }
            }

            Return (OSFG)
        }
As you can see interface name is different. And yes, I did SLIC 2.1 mod.
Up: DSDT from K50 in attachment.
« Last Edit: March 29, 2010, 09:00:15 AM by Perch »

Gringo Vermelho

  • Forum Moderator
  • Posts: 611
  • The gray monster energy hat
Re: DSDT patch for Windows 7
« Reply #5 on: March 30, 2010, 07:37:16 AM »
It's strange that there's no Windows 7 support for your laptop when it obviously has specific DSDT code for it.

I'm sure there must be a way to patch DSDT for Windows..?
« Last Edit: March 30, 2010, 07:49:42 AM by Gringo Vermelho »
10.9.5 - ASUS P8Z77-V Pro - i5 3570K - GTX 660 - Chameleon 2.3 svn-r2xxx
How to...
Install Chameleon: http://forum.voodooprojects.org/index.php/topic,649
Make your own Chameleon boot CD: http://forum.voodooprojects.org/index.php/topic,484.msg2131.html#msg2131

Perch

  • Entrant
  • Posts: 4
Re: DSDT patch for Windows 7
« Reply #6 on: March 30, 2010, 08:29:30 AM »
It's not my notebook. My device is ASUS G1Sn. I took DSDT from K50 as an example of W7 specific code. My DSDT in attach.
I tried to patch BIOS firmware but it is very inconvenient way, because  patched file after compilation should not be longer than the original and there is always an element of risk in BIOS re-flashing.
« Last Edit: March 30, 2010, 08:43:49 AM by Perch »