View Single Post
 
Old 05-27-2010, 05:31 PM
qwong77 qwong77 is offline
Cheetah
 
Join Date: Feb 2010
Posts: 2
Working, additional tips

Thanks, was able to get it to work based on the 3 main points posted.

Some additional details for those who may read this in the future:

1. iASL (I used iASLMe_32Bit_28_04_2010) which decompiles dsdt.aml to dsdt.dsl produces some pretty buggy code. When re-compiling its own code without changes, it produces these errors:

a. "Invalid combination of Length and Min/Max fixed flags"
Solution: formula for length is Max-Min+1

b. "found ZERO, requires Buffer"
Solution: the original code says this:


Code:
Method (_CRS, 0, NotSerialized)
            {
                If (OSFL ())
                {
                        Return (Zero)
                }
                Else
                {
                    Return (LCRO (^^PCI0.IMAP.PR0E))
                }
            }
Modify by storing a ZERO in the referenced variable/buffer(???), then return it:

Code:
Method (_CRS, 0, NotSerialized)
            {
                If (OSFL ())
                {
    
                        Store (Zero, ^^PCI0.IMAP.PR0E)                
                        Return (LCRO (^^PCI0.IMAP.PR0E))
                }
                Else
                {
                    Return (LCRO (^^PCI0.IMAP.PR0E))
                }
            }
2. Following Method was missing from my .dsl file which is called from Dreamwatcher's first step



Code:
Method (DTGP, 5, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                {
                /* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                /* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
 
                {
                    If (LEqual (Arg1, One))
                        {
                        If (LEqual (Arg2, Zero))
                            {
                            Store (Buffer (One)
                            {
                            0x03
                            }, Arg4)
                            Return (One)
                            }
 
                        If (LEqual (Arg2, One))
                            {
                            Return (One)
                            }
                        }
                }
 
            Store (Buffer (One)
            {
            0x00
            }, Arg4)
            Return (Zero)
        }
3. Replaced instances of "HDAC" with "HDEF" (2 places)

Last edited by qwong77; 05-27-2010 at 05:34 PM.
Reply With Quote