DSDT Fixer
- Mactopia
- 5979
- 3
Mactopia님의 기기정보
예전에는 꽤 유명했는데 out-date 된 감이 조금 있습니다.
심심하면 한번 사용해보세요. 감사합니다.
List of fixes:
GENERIC FIXES
CPU Aliases (not included from 1.1.5 version as Snowleopard doesn´t need this patch).
Error Maximum error count (200) exceeded 24:External (^CPU0._PPC)
Error 1061 -Object does not exist ^ (\C001)
Error 1061 -Object does not exist ^ (\_PR.C000)
Warning 1077 -Reserved method has too many arguments ^ (_OSC requires 4)
Warning 1081 -Reserved method must return a value ^ (Integer/Package required for _WAK)
Warning 1087 -Not all control paths return a value (TGET)
Warning 1087 -Not all control paths return a value (FGET)
Warning 1088 -Not all control paths return a value ^ (STM_)
Warning 1088 -Not all control paths return a value ^ (WMAB)
Warning 1088 -Not all control paths return a value ^ (PAPR)
Warning 1088 -Not all control paths return a value ^ (_OSC)
Warning 1088 -Not all control paths return a value ^ (ECRB)
Warning 1088 -Not all control paths return a value ^ (ECWB)
Warning 1088 -Not all control paths return a value ^ (ECSB)
Warning 1088 -Not all control paths return a value ^ (PAPR)
Warning 1088 - Not all control paths return a value ^ (_WED)
Warning 1088 - Not all control paths return a value ^ (WMCA)
Warning 1088 - Not all control paths return a value ^ (WMCB)
Warning 1088 - Not all control paths return a value ^ (WMCD)
Warning 1088 - Not all control paths return a value ^ (WMCE)
Warning 1088 - Not all control paths return a value ^ (WMCF)
Warning 1088 - Not all control paths return a value ^ (HKDS)
Warning 1088 -Not all control paths return a value ^ (DRUL)
Warning 1088 -Not all control paths return a value ^ (BTST)
Warning 1088 -Not all control paths return a value ^ (EVNT)
Warning 1088 -Not all control paths return a value ^ (SECV)
Warning 1088 -Not all control paths return a value ^ (SEFA)
Warning 1088 -Not all control paths return a value ^ (SECT)
Warning 1088 -Not all control paths return a value ^ (SGFD)
Warning 1088 -Not all control paths return a value ^ (C28F)
Warning 1092 -Called method may not always return a value
Warning 1099 -Unknown reserved name ^ (_BCQ)
Error 1094 -Missing ResourceSource string (required)
Warning 1099 -Unknown reserved name ^ (_S5D)
Warning 1103 -Possible operator timeout is ignored
Warning 1105 -Result is not used, operator has no effect ^
Warning 1105 -Possible operator timeout is ignored ^
Warning 1106 -Result is not used, operator has no effect ^
Warning 2026 -Reserved method must return a value (_WAK)
Error 4001 - String must be entirely alphanumeric ^ (*pnp0c14)
Error 4014 -From ACPI CA Subsystem ^ (AE_NOT_FOUND Failure from namespace lookup)
Error 4051 -Method local variable is not initialized ^ (Local0)
Error 4081 -Use of reserved word ^ (_T_0)
Error 4081 -Use of reserved word ^ (_T_1)
Error 4081 -Use of reserved word ^ (_T_2)
Error 4081 -Use of reserved word ^ (_T_3)
Error 4081 -Use of reserved word ^ (_T_4)
Error 4081 -Use of reserved word ^ (_T_5)
Error 4095 -syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_DEFINITIONBLOCK
Error 4096 -syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_DEFINITIONBLOCK
Error 4096 -Invalid character (0x2D), expecting ASL keyword or name ^
Error 4117 -Length is larger than Min/Max window ^
Error 4122 -Invalid combination of Length and Min/Max fixed flags ^
Error 4123 -Min/Max/Length/Gran are all zero, but no resource tag
Error 4124 -Non-hex letters must be upper case ^ (pnp0c14)
Error 4125 -_HID string must be exactly 7 or 8 characters ^ (NVRAIDBUS)
Remark 5048 -Initializer list shorter than declared package length ^
Remark 5072 -Effective AML package length is zero ^
Remark 5074 -Recursive method call ^ (ECBR)
Remark 5111 -Use of compiler reserved name ^ (_T_O)
Remark 5111 -Use of compiler reserved name ^ (_T_N)
Remark 5111 -Use of compiler reserved name ^ (_T_M)
Remark 5111 -Use of compiler reserved name ^ (_T_L)
Remark 5111 -Use of compiler reserved name ^ (_T_K)
Remark 5111 -Use of compiler reserved name ^ (_T_J)
Remark 5111 -Use of compiler reserved name ^ (_T_I)
Remark 5111 -Use of compiler reserved name ^ (_T_H)
Remark 5111 -Use of compiler reserved name ^ (_T_G)
Remark 5111 -Use of compiler reserved name ^ (_T_F)
Remark 5111 -Use of compiler reserved name ^ (_T_E)
Remark 5111 -Use of compiler reserved name ^ (_T_D)
Remark 5111 -Use of compiler reserved name ^ (_T_C)
Remark 5111 -Use of compiler reserved name ^ (_T_B)
Remark 5111 -Use of compiler reserved name ^ (_T_A)
Remark 5111 -Use of compiler reserved name ^ (_T_9)
Remark 5111 -Use of compiler reserved name ^ (_T_8)
Remark 5111 -Use of compiler reserved name ^ (_T_7)
Remark 5111 -Use of compiler reserved name ^ (_T_6)
Remark 5111 -Use of compiler reserved name ^ (_T_5)
Remark 5111 -Use of compiler reserved name ^ (_T_4)
Set a routine to change all P00X cpu code to CPUX (This routine has been disabled, seems some ssdt calls P00X CPU code).
DELL specific fixes
Error 4001 - String must be entirely alphanumeric ^ (*pnp0c14)
Qosmio specific fixes:
Maximum error count (200) exceeded
LENOVO specific fixes
Warning 1099 -Unknown reserved name ^ (_VPC)(_CFG)
Warning 1100 -Statement is unreachable ^
Error 4014 -From ACPI CA Subsystem ^ (AE_NOT_FOUND Failure from namespace lookup)
Error 4064 -Object does not exist ^ (Z000)(Z001)(Z002) etc....
ASUS specific fixes
Maximum error count (200) exceeded (wrong if-else statements)
MSI specific fixes
(AMD) A7599
Maximum error count (200) exceeded (wrong if-else statements)
AMD SB700 Chipset specific fixes
Maximum error count (200) exceeded
GIGABYTE specific fixes
Warning 1100 -Statement is unreachable ^
Warning 1106 -Result is not used, operator has no effect ^
_WAK return for USBx4, USBx5, USBx6
INTEL specific fixes
Error 4123 -Min/Max/Length/Gran are all zero, but no resource tag ^ (QWordMemory)
ACER specific fixes
Warning 1077 -Reserved method has too many arguments ^ (_OSC requires 4)
Warning 1088 - Not all control paths return a value ^ (Several methods repaired)
HP specific fixes.
ACPI Error: ACPI path has too many parent prefixes (^) - reached beyond root node (20101013/nsaccess-526)
Warning 1088 -Not all control paths return a value ^ (NVIF)
Warning 1088 -Not all control paths return a value ^ (_PSR)
Warning 1088 -Not all control paths return a value ^ (_HOT)
Warning 1088 -Not all control paths return a value ^ (_CRT)
Warning 1088 -Not all control paths return a value ^ (_PSV)
Warning 1088 -Not all control paths return a value ^ (_Q16)
Warning 1088 -Not all control paths return a value ^ (_PSR)
Error 4047 -Initializer list longer than declared package length ^
Error 4057 -Name already exists in scope ^ (_S3D)
Error 4064 -Object does not exist ^ (LNKA)(LNKB)(LNKC), etc....
Error 4080 -Invalid object type for reserved name ^ (found BUFFER, requires Package)
Error 4096 -syntax error, unexpected PARSEOP_ZERO ^
Error 4096 -syntax error, unexpected PARSEOP_IF ^
Error 4096 -syntax error, unexpected PARSEOP_ELSE ^
Error 4096 -syntax error, unexpected PARSEOP_DEVICE, expecting $end ^
Error 4122 -Invalid combination of Length and Min/Max fixed flags ^
IRQ reallocation. ---------------------------------------------------------------------------------------------------------------------------------------
Will clean IRQ´s from RTC, TMR and IPIC/PIC, reallocating Irq 0 and Irq 8 to HPET.
CMOS reset fix.---------------------------------------------------------------------------------------------------------------------------------------
Will change the value of length inside RTC to 0x02 to be snow leopard compliant.
DTGP method.---------------------------------------------------------------------------------------------------------------------------------------
Needed for some hacks that inject information in DSDT.
IDE KP fix.---------------------------------------------------------------------------------------------------------------------------------------------
Some intel IDE controllers will panic with Snow Leopard, this hack courtesy of TheKing will solve it.
Code:
Device PATA on DSDT (0x001F0001)
OperationRegion (IDET, PCI_Config, 0x40, 0x04)
Field (IDET, WordAcc, NoLock, Preserve)
{
M1, 16,
M2, 16
}
Method (_INI, 0, NotSerialized)
{
Store (0xE307, M1)
Store (0xC000, M2)
}
Insert into _wak method:
Method (_WAK, 1, NotSerialized)
{
\_SB.PCI0.PATA._INI ()
Laptop FN fix.---------------------------------------------------------------------------------------------------------------------------------------
This hack will add information about the laptop keyboard into the DSDT, allowing the system to recognize the FN key.
Code:
Device (PS2K)
{
Name (_HID, EisaId ("PNP0303"))
Name (_CID, EisaId ("PNP030B"))
Method (_DSM, 4, NotSerialized)
{
Store (Package ()
{
"AAPL,has-embedded-fn-keys",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Gigabyte HPET kernel panic.---------------------------------------------------------------------------------------------------------------------------------------
Some Gigabyte boards will panic cause the HPET code when using native powermanagement for CPU, this fix replace the code that panics with this one:
Code:
Name (ATT4, ResourceTemplate ()
{
})
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Method (_CRS, 0, NotSerialized)
{
Return (ATT3)
}
USB EHCI fix.---------------------------------------------------------------------------------------------------------------------------------------
Will solve some usb problems.
Code:
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0C)
{
"AAPL,current-available",
0x05DC,
"AAPL,current-extra",
0x04B0,
"AAPL,current-in-sleep",
0x09C4,
"device-id",
Buffer (0x04)
{
0x3A, 0x3A, 0x00, 0x00
},
"AAPL,clock-id",
Buffer (One)
{
0x01
},
"device_type",
Buffer (0x05)
{
"EHCI"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
USB UHCI fix.---------------------------------------------------------------------------------------------------------------------------------------
Will solve some usb problems.
Code:
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Speedstep support hack:---------------------------------------------------------------------------------------------------------------------------------------
This hack will inject some information on SBUS, SBRG/LPCB to activate drivers needed for Speedstep.
SSDT code may be needed for Speedstep and is not injected with this fix.
Code:
SBUS:
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"name",
"pci8086,3a30",
"device-id",
Buffer (0x04)
{
0x30, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
LPCB/SBRG:
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x18, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Power button fix.---------------------------------------------------------------------------------------------------------------------------------------
This fix will change _HID to _CID on power button code to make it appear power menu on OSX.
Code:
Name (_CID, EisaId ("PNP0C0C"))
Mactopia
댓글 3
이거 자신의 dsdt를 수정(optimizw)해주는건가요?
얼마나 최적화해주는 건지 궁금하네요.
수고하셨습니다.