- 积分
- 119
- 最后登录
- 2024-4-26
- 精华
- 0
- 阅读权限
- 20
- 主题
- 22
- UID
- 4639973
- 帖子
- 223
- PB币
- 1136
- 威望
- 5
- 贡献
- 0
- 技术
- 1
- 活跃
- 431
- UID
- 4639973
- 帖子
- 223
- PB币
- 1136
- 贡献
- 0
- 技术
- 1
- 活跃
- 431
|
本帖最后由 一半的人 于 2019-3-4 21:36 编辑
整理后:
1.ACPI Error :Region EmbeddedControl (ID=3) has no handler
2.No Local Variables are initialized for method[ECR2]
3.Initialized Arguments for Method [ECR2]
Arg0 : ****** Name LSTE RegionField *****
4.Method parse/execution failed [\_SB.PIC0.LPCB.H_EC.ECR2]
解析:
1. EmbeddedControl 是一个Operation Region 在ACPI规范中它的ID值为3,
根据ACPI规范中提到,在一个Scope或者Device中的方法不能访问EC等操作域中的字段,
除非在一个固有方法_REG中,指明了EC域中的字段可以使用。
2.方法 ECR2 没有参数
3.ECR2方法的参数LSTE初始化失败,因为这个LSTE是EC域中的字段。还不能访问。
4 .[\_SB.PIC0.LPCB.H_EC.ECR2] 方法的全路径。
修复:
_REG方法上添加如下的内容,OS就会在EmbeddedControl Handler准备好后,调用_REG方法
来暗指EC域可以访问了。
OperationRegion (ECF3, EmbeddedControl, Zero, 0xFF)
Method (_REG, 2, NotSerialized)
{
// Arg0 方法的第一个参数,指示Operation Region 的类型,EC域的为ID=3
// Arg1 方法的第二个参数,指示Operation Region Handler是否准备好
// 1为准备好了 0 没有
}
所以我们在_REG方法所在的作用域内,添加一个字段如:ISAB,用来指示某个字段的可用性。
可以将ISAB添加到_REG方法前面:
Name (ISAB, Zero) //IASB=0
OperationRegion (ECF3, EmbeddedControl, Zero, 0xFF)
Method (_REG, 2, NotSerialized)
{
If (LAnd (LEqual (Arg0, 0x03), LEqual (Arg1, One)))
{
//这个花括号内表示EC域已经可用了,我们改变ISAB的值
Store (1, ISAB)
}
}
在其他的用到LSTE的地方做个判断如:
If (LEqual (IASB, 0x1))
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|