Contribute
Register

DSDT fix for HP core i7 720QM

Status
Not open for further replies.
Joined
Apr 6, 2010
Messages
38
Motherboard
HP Pavilion dv6-2170ee
CPU
i7-720QM
Graphics
GT 230M
Mac
  1. MacBook Pro
Classic Mac
  1. Classic
  2. LC
  3. PowerBook
  4. SE
Mobile Phone
  1. Android
  2. iOS
i am trying to boot with a DSDT file, to enable all the 4 cores because "cpus=1" only enable one core but the system gives me a kernel panic

i found that the problem is in Illegal If statement which is not in a method, nor at module level
so i commented out the code in the "dsdt Fixed.dsl" file attached (look for text "!!!") ,
Now there is no compiling errors but the system still gives me a kernel panic

kernel_error.jpg
this KP when i used "cpus=1"
kernel_panic_2.jpg
this KP when i used normal boot or "arch=i386" or normal boot

Code:
/* !!! Illegal If statement, not in a method, nor at module level 

                If (IGDS)
                {
*/
                    Device (PXSX)
                    {
                        Name (_ADR, Zero)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            If (PDSX)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

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

/*
                }
                Else
                {
// !!! END Illegal If statement, not in a method, nor at module level 
*/
                    Device (J380)
                    {
                        Name (_ADR, Zero)
                        OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
                        Field (PCFG, ByteAcc, NoLock, Preserve)
                        {
                            DVID,   32, 
                                    Offset (0x2C), 
                            SSID,   32, 
                                    Offset (0xAC), 
                            D3EF,   8, 
                                    Offset (0xB2), 
                            LAT0,   8, 
                                    Offset (0xCF), 
                            ATRB,   8, 
                                    Offset (0xD3), 
                            PMC0,   8
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            If (LNotEqual (DVID, 0xFFFFFFFF))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (_RMV, 0, NotSerialized)
                        {
                            If (LEqual (ED3E, One))
                            {
                                If (LEqual (OSYS, 0x07D9))
                                {
                                    Return (Zero)
                                }
                                Else
                                {
                                    Return (Zero)
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Device (J381)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            If (LEqual (OSYS, 0x07D9))
                            {
                                Return (Zero)
                            }
                            Else
                            {
                                Return (One)
                            }
                        }
                    }

                    Device (J382)
                    {
                        Name (_ADR, 0x02)
                        Method (_RMV, 0, NotSerialized)
                        {
                            If (LEqual (OSYS, 0x07D9))
                            {
                                Return (Zero)
                            }
                            Else
                            {
                                Return (One)
                            }
                        }
                    }

                    Device (J383)
                    {
                        Name (_ADR, 0x03)
                        Method (_RMV, 0, NotSerialized)
                        {
                            If (LEqual (OSYS, 0x07D9))
                            {
                                Return (Zero)
                            }
                            Else
                            {
                                Return (One)
                            }
                        }
                    }

                    Device (J384)
                    {
                        Name (_ADR, 0x04)
                        Method (_RMV, 0, NotSerialized)
                        {
                            If (LEqual (OSYS, 0x07D9))
                            {
                                Return (Zero)
                            }
                            Else
                            {
                                Return (One)
                            }
                        }
                    }
/*
                }

// !!! END Illegal If/Else statement, not in a method, nor at module level 
*/

i attached the untouched DSDT and the fixed one also the kernel panic picture , so pleeeeeeease take a look
and thanx in advance :)

DSDT.zip
 

Attachments

  • kernel_error.jpg
    kernel_error.jpg
    257.8 KB · Views: 958
  • kernel_panic_2.jpg
    kernel_panic_2.jpg
    479.9 KB · Views: 958
  • DSDT.zip
    79.5 KB · Views: 148
Errr?

I'm still a super n00b at DSDT hacking, but this doesn't appear to be your DSDT... or if it is, it's a seriously weird one. Looks like an SSDT with an OEM SLIC injection (freebie windows, perchance? ;)

Here's the top (and relevant to you) of mine :

Code:
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20091214
 *
 * Disassembly of ./dsdt.aml, Tue Mar 30 21:55:53 2010
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0000C768 (51048)
 *     Revision         0x01 **** ACPI 1.0, no 64-bit math support
 *     Checksum         0xA2
 *     OEM ID           "G60VX"
 *     OEM Table ID     "G60VX001"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20051117 (537202967)
 */
DefinitionBlock ("./dsdt.aml", "DSDT", 1, "G60VX", "G60VX001", 0x00000001)
{
    Scope (_PR)
    {
        Processor (P001, 0x01, 0x00000810, 0x06) {}
        Alias (P001, CPU0)
    }

    Scope (_PR)
    {
        Processor (P002, 0x02, 0x00000810, 0x06) {}
        Alias (P002, CPU1)
    }

    Scope (_PR)
    {
        Processor (P003, 0x03, 0x00000810, 0x06) {}
        Alias (P003, CPU2)
    }

    Scope (_PR)
    {
        Processor (P004, 0x04, 0x00000810, 0x06) {}
        Alias (P004, CPU3)
    }
[code]

See those Alias (P00x, CPUx) etc, lines? Get rid of them, and replace references to CPUx with P00x. OSX is getting confused, and thinks there's eight cores instead of four.

If when you get it working, the mouse jumps around and thinks act generally weird, you'll also want VoodooTSCSync, which synchronizes the cores.
 
did you ever get a dsdt for this machine? i have damn near the same machine (i think)
It's an hp dv6t i7 720qm nvidia 230m

I'm having some trouble getting things working
 
Stone-D said:
Errr?

I'm still a super n00b at DSDT hacking, but this doesn't appear to be your DSDT... or if it is, it's a seriously weird one. Looks like an SSDT with an OEM SLIC injection (freebie windows, perchance? ;)

Here's the top (and relevant to you) of mine :

See those Alias (P00x, CPUx) etc, lines? Get rid of them, and replace references to CPUx with P00x. OSX is getting confused, and thinks there's eight cores instead of four.

If when you get it working, the mouse jumps around and thinks act generally weird, you'll also want VoodooTSCSync, which synchronizes the cores.
i applied everything you can imagine

1) the aliases are already not present
2) i tried replacing (P00x, CPUx) but nothing happened
3) i tried adding VoodooTSCSync and changing the number of cores to 4 but nothing happened
i think it is it's a seriously weird one :banghead:
 
wonslung said:
did you ever get a dsdt for this machine? i have damn near the same machine (i think)
It's an hp dv6t i7 720qm nvidia 230m

I'm having some trouble getting things working

ok that a very good thing, i am now making a guide for all HP i7 users to share our info

it will be great to compile a dsdt.dsl using DSDTSE for Windows XP, Vista and 7 (Thx yehia2amer)
and send it here
 
Sephira said:
I have a Clevo w860cu with 720qm + pm55 chipset

Have all cores available and Speedstep enabled from DSDT.

Let me know if you want a copy of my DSDT for perusal (c:

yes please :thumbup: , it will be great to put the unfixed dsdt.dsl and the fixed one

please anyone who got a 720QM or 820QM, just send your dsdt.dsl unfixed and fixed
and your status (using cpus=1 or not , all cores are working or not)
thanks
 
please anyone who got a 720QM or 820QM, just send your dsdt.dsl unfixed and fixed
and your status (using cpus=1 or not , all cores are working or not)
thanks
 
Sephira said:
Strange though...

I just booted without my DSDT and I still get all 4 (8) cores.

1) thanks for your dsdt's :)
2) please check this
[*] Go to /Applications/Utilities/Activity Monitor
[*] press on the application icon right click
[*] choose monitors then floating cpu window then vertical
[*] if you see all the cores but only one working (you are having my problem :banghead:)
if you see all the cores and they are all working (green indicators in all the 8 cores you are a lucky man :clap: )

3) please don't forget to give me a feedback, it will be great to send a picture, thanks
 
is that a dsdt for an hp?
i need one for an hp dv6t-2000-cto
 
Hi all. I have an Hp Dv8t with the same hardware as yehia2amer, except I have the intel wifi card. And all of my cores are working. I did all the things yehia2amer described, in fact I was following a post he was commenting on at the Evosx86 team page. What I have discovered is if I use my corrected dsdt.aml, I would also kernel panic. But what I also discovered is if I don't use a dsdt.aml at all, all my cores are working. Even though I get some errors when I am booting up pertaining to them. I am running SnowLeopard 10.6.3, using the legacy_kernel hack for 10.6.3. I installed 10.6.0. and then used the 10.6.3. combo update. There are plenty of tutorials on how to do this. I then installed the attached package, and that was it. No dsdt.aml

G4sho
 
Status
Not open for further replies.
Back
Top