DSDT.dsl 4262: Store (\_GPE.MMTB (Local3, \_GPE.OSUP (Local3)), Store (Local2, REG6))
Error 6126 - syntax error, unexpected PARSEOP_STORE ^
Store (REG6, Local2)
Store (0x00F0F000, REG6)
Store (\_GPE.MMTB (Local3, \_GPE.OSUP (Local3)), Store (Local2, REG6))
Release (OSUM)
Acquire (WFDM, 0xFFFF)
Store (One, WKFN)
Release (WFDM)
改成
Store (REG6, Local2)
Store (0x00F0F000, REG6)
Store (\_GPE.MMTB(), Local3)
\_GPE.OSUP (Local3)
Store (Local2, REG6)
Release (OSUM)
Acquire (WFDM, 0xFFFF)
Store (One, WKFN)
Release (WFDM)
Store (REG6, Local1)
Store (0x00F0F000, REG6)
Store (\_GPE.MMTB(), Local2)
\_GPE.OSUP (Local2)
Store (Local1, REG6)
Release (OSUM)
继续编译
DSDT.dsl 76: External (_SB_.PCI0.PEG0)
Error 6074 - ^ Name already exists in scope (_SB_.PCI0.PEG0)
DSDT.dsl 77: External (_SB_.PCI0.PEG0.PEGP)
Error 6074 - Name already exists in scope ^ (_SB_.PCI0.PEG0.PEGP)
DSDT.dsl 78: External (_SB_.PCI0.PEG1)
Error 6074 - ^ Name already exists in scope (_SB_.PCI0.PEG1)
DSDT.dsl 79: External (_SB_.PCI0.PEG2)
Error 6074 - ^ Name already exists in scope (_SB_.PCI0.PEG2)
ASL Input: DSDT.dsl - 14719 lines, 467630 bytes, 5766 keywords
Compilation complete. 4 Errors, 37 Warnings, 53 Remarks, 103 Optimizations
删除
76
77
78
79 行
Return (One)
Warning 3104 - ^ Reserved method should not return a value
If (LEqual (^^^GFX0.HGCK, One))
{
// Return (One)
}
用//注销或删除Return (One)
0x0EC00000,
Error 6043 - ^ Invalid combination of Length and Min/Max fixed flags
0x00004000,
Error 6043 - ^ Invalid combination of Length and Min/Max fixed flags
google搜索“0xFED44FFF - 0xFED40000 + 1=”
0xFEBFFFFF-0xF0000000+1= 出来的数值是正确的,编译却仍报错,把 0x0EC00000,0x00004000改为0x00000000就通过了。
0x09
Error 6126 - ^ syntax error, unexpected PARSEOP_INTEGER
0x04
Error 6126 - ^ syntax error, unexpected PARSEOP_INTEGER
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW)
// 0x09
// 0x04
改为 Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW ())
}
用这组合编译就能避免这错误
iasl -e DSDT.aml SSDT-1.aml -d SSDT-3.aml
OperationRegion (MSID, SystemMemory, EBAS (0x50), Field (MSID, DWordAcc, Lock, Preserve)
Error 6126 - syntax error, unexpected PARSEOP_FIELD ^
OperationRegion (MSID, SystemMemory, EBAS, 0x50)
Field (MSID, DWordAcc, Lock, Preserve)
{
VEID, 16,
Offset (0x40),
NVID, 32,
Offset (0x4C),
ATID, 32
}
OperationRegion (RPCX, SystemMemory, Add (\XBAS (0x8000), Zero, 0x1000), Field (RPCX, ByteAcc, NoLock, Preserve)
Error 6126 - syntax error, unexpected PARSEOP_INTEGER, expecting ')' ^
改为 OperationRegion (RPCX, SystemMemory, Add (\XBAS, 0x8000), 0x1000),Field (RPCX, ByteAcc, NoLock, Preserve)
{
PLD_Revision = 0x1, Error 6105 - ^ Invalid object type for reserved name (_PLD: found Buffer, Package required)
Name (_PLD, Package() { ToPLD (
PLD_Revision = 0x1,
PLD_IgnoreColor = 0x1,
...
PLD_VerticalOffset = 0x0,
PLD_HorizontalOffset = 0x0)}
) // _PLD: Physical Location of Device
DSDT.dsl 11658: If (IGDS (^^^GFX0.GHDS (Zero), Sleep (0x01F4))) {}
Error 6126 - ^ syntax error, unexpectedPARSEOP_SLEEP,expecting ',' or ')'
正确如下
Method (_Q1C, 0, NotSerialized) // _Qxx: EC Query
{
If (LAnd (ECOK (), Ones))
{
If (LEqual (Zero, APTG))
{
If (LNotEqual (OSYS, 0x03E8))
{
If (IGDS)
{
^^^GFX0.GHDS (Zero)
}
}
}
Sleep (0x01F4)
Notify (VPC0, 0x80)
}
}
dsdt.dsl 19910: Local0
Error 6126 - ^ syntax error, unexpected PARSEOP_LOCAL0
正确的应当是这样的
Name (ASBN, Zero)
Method (SBRN, 0, Serialized)
{
If (^^^GFX0.PRST ())
{
Store (^^^GFX0.GCBL (^^^GFX0.CBLV), Local0)
Subtract (0x0A, Local0, Local1)
If (LNotEqual (Local1, LBTN))
dsdt.dsl 18207: Divide (Multiply (DerefOf (Index (PWAC, Local3)), 0x64), 0xFF,
Error 6114 - Result is not used, operator has no effect ^
正确的是这样的
^^^GFX0.AINT (One, Divide (Multiply (DerefOf (Index (PWAC, Local3)), 0x64
), 0xFF, ))
Return (Zero)
Error 6105 - ^ Invalid object type for reserved name (_ROM: found Integer, Buffer required)
Method (_ROM, 2, NotSerialized) // _ROM: Read-Only Memory
{
If (RBUF)
{
Add (Arg0, RBUF, Local0)
Name (VBUF, Buffer (Arg1) {})
OperationRegion (VROM, SystemMemory, Local0, 0x1000)
Field (VROM, ByteAcc, NoLock, Preserve)
{
ROMI, 32768
}
Store (ROMI, VBUF)
Return (VBUF)
}
Else
{
Return (Zero)
}
}
改成Return (Local0) 通过编译 一般是改成Return (Buffer (Zero){})
ssdt-2.dsl 495: Zero
Error 6105 - ^ Invalid object type for reserved name
(_PSS: found Integer at index 0, Package required)
Method (_PSS, 0, NotSerialized) // _PSS: Performance Supported States
{
If (CondRefOf (\_PR.CPU0._PSS))
{
Return (\_PR.CPU0._PSS)
}
Else
{
Return (Package (0x01)
{
Zero
})
解决了,正确的如下
Method (_PSS, 0, NotSerialized) // _PSS: Performance Supported States
{
If (CondRefOf (\_PR.CPU0._PSS))
{
Return (\_PR.CPU0._PSS)
}
Else
{
Return (Package (0x01) {Package (0x06)
{
Zero
}})
ssdt-2.dsl 537: Zero
Error 6105 - ^ Invalid object type for reserved name
(_PTC: found Integer at index 0, Buffer required)
Method (_PTC, 0, NotSerialized) // _PTC: Processor Throttling Control
{
If (CondRefOf (\_PR.CPU0._PTC))
{
Return (\_PR.CPU0._PTC)
}
Else
{
Return (Package (0x02) {Buffer (0x10)
{
Zero
}})
Method (_TSS, 0, NotSerialized) // _TSS: Throttling Supported States
{
If (CondRefOf (\_PR.CPU0._TSS))
{
Return (\_PR.CPU0._TSS)
}
Else
{
Return (Package (0x01) {Package (0x05)
{
Zero
}})
Method (_TSD, 0, NotSerialized) // _TSD: Throttling State Dependencies
{
If (CondRefOf (\_PR.CPU0._TSD))
{
Return (\_PR.CPU0._TSD)
}
Else
{
Return (Package (0x01) {Package (0x05)
{
Zero
}})
> DSDT.asl 694: SRST, 1,
> Error 1051 - ^ Access width of Field Unit extends
> beyond region limit
>
> DSDT.asl 697: ACPW, 1
> Error 1051 - ^ Access width of Field Unit extends
> beyond region limit
OperationRegion(GPIO, SystemIO, 0x1180, 0x3b)
AccessAs(DWordAcc) means (If I understand this properly) get any
variables as 32bit. 39+4 = 3c. Increase your range from 0x3b to 0x3c
and see if it works.
> DSDT.asl 1455: Field(ERAM, AnyAcc, Lock, Preserve) {
> Error 1048 - ^ Host Operation Region requires
> ByteAc
I'd change AnyAcc to ByteAcc here.
修改AnyAcc 为ByteAcc 还有WordAcc DwordAcc QWordAcc
DSDT.dsl 923: Field (U1D3, WordAcc, NoLock, Preserve) 改WordAcc 为AnyAcc
Error 6029 - ^ Access width is greater than region size
DSDT.dsl 925: UR49, 3
Error 6030 - ^ Access width of Field Unit extends beyond region limit
Access width of Field Unit extends beyond region limit
DSDT.dsl 3967: Method (_WAK, 1, NotSerialized)
Warning 3107 - ^ Reserved method must return a value (Integer/Package required for _WAK)
在最后添加 Return(Package(0x02){0x00, 0x00})
Method (_WAK, 1, NotSerialized) // _WAK: Wake
{
}
Return(Package(0x02){0x00, 0x00})
}
DSDT.dsl 18403: Acquire (MUTE, 0x03E8)
Warning 3130 - ^ Result is not used, possible operator timeout will be missed
关于这个错误,变量MUTE 0xXXXX调整为0xFFFF
Acquire (MUTE, 0x03E8)
转换为下面的代码,它必须更换任何它给出错误的位置
Acquire (MUTE, 0xFFFF)
DSDT.dsl 17562: And (Local0, 0x7F)
Error 6114 - ^ Result is not used, operator has no effect
DSDT.dsl 17565: And (Local0, 0x7F)
Error 6114 - ^ Result is not used, operator has no effect
改And (Local0, 0x7F) 为 And (Local0, 0x7F, Local0)
Method (MXMX, 1, Serialized)
{
If (LEqual (Arg0, One))
{
P8XH (One, 0x99, P8XH (Zero, One, Return (One)))
}
Return (Zero)
}
正确如下
Method (MXMX, 1, Serialized)
{
If (LEqual (Arg0, One))
{
P8XH (One, 0x99)
P8XH (Zero, One)
Return (One)
}
If (CondRefOf (\_SB.PCI0.XHC.PS3X))
{
Store (Zero, \_SB.PCI0.XHC.PS3X)
}
PS3X注销或改成上面
If (CondRefOf (\_SB.PCI0.XHC.PS0X))
{
Store (Zero, \_SB.PCI0.XHC.PS0X)
// PS0X 联合编译PS0X 正确为PS0X ()单这样改会出错
}
也可以改为Store(Zero,PS0X) ssdt4.dsl 196: REVI
Error 6126 - ^ syntax error, unexpected PARSEOP_NAMESEG, expecting '('
ssdt4.dsl 529: Arg0
Error 6126 - ^ syntax error, unexpected PARSEOP_ARG0
Return (\_SB.PCI0.GFX0._DSM (MUID, REVI, SFNC, XRG0))
Return (\_SB.PCI0.GFX0.DD02._BCM (Arg0))
|