RehabMan
Moderator
- Joined
- May 2, 2012
- Messages
- 181,015
- Motherboard
- Intel DH67BL
- CPU
- i7-2600K
- Graphics
- HD 3000
- Mac
- Mobile Phone
I added FixMutex=true in config.plist the result are same too.."battery_status = 0xb"
Look at your _STA method:
Code:
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (ECA2)
{
If (And (BNUM, One))
{
Return (0x1F)
}
}
Return (0x0B)
}
So, we can conclude that ECA2 is zero or BNUM is not set.
ECA2 is set in _REG:
Code:
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (LAnd (LEqual (Arg0, 0x03), LEqual (Arg1, One)))
{
Store (Zero, ECAV)
Store (One, ECA2)
So, we must conclude that _REG is not being called, or the related code with BNUM is not being called (I didn't look at it in detail).
I'm not sure why, but it could be EC corruption.
This is wrong:
Code:
OperationRegion (XCF3, EmbeddedControl, Zero, 0xFF)
Field (XCF3, ByteAcc, Lock, Preserve)
{
SMDX, 256,
BC0H, 8,
BC1H, 8,
BC2H, 8,
BC3H, 8,
BDT0, 8,
BDT1, 8,
BCY0, 8,
BCY1, 8,
BXMA, 64,
BYMA, 64,
RTP0, 8,
PTP1, 8,
B0ET, 8,
B1ET, 8,
BTM0, 8,
BTM1, 8,
B0PV, 8,
B1PV, 8,
BAC0, 8,
BAC1, 8,
BDC0, 8,
BDC1, 8,
BDV0, 8,
BDV1, 8,
BFC0, 8,
BFC1, 8,
BCR0, 8,
BCR1, 8
}
The offsets are not correct.
For example, SMD0 (which SMDX is an overlay for) is at offset 0x1c, not 0:
Code:
Offset (0x18),
SMPR, 8,
SMST, 8,
SMAD, 8,
SMCM, 8,
SMD0, 256,
And B1CH is at offset 0x60 (replaced by BC0H/BC1H/BC2H/BC3H), not 0x20:
Code:
Offset (0x60),
B1CH, 32,
You will need to fix SSDT-BATT, then do EC reset. Then test again.
There may be other mistakes in here... you should check your work carefully.
Last edited: