Mald0n, I followed the guide and had good success for most part.
I need help to handle couple issues
I patch these..
* BDC, 16, BTIF. GBTI
Offset (0x8D),
* BFC, 16, BTIF. GBTI
Offset (0x91),
* BPR, 16, BTST
* BCR, 16, GBTI
* BRC, 16, BTST, GBTI
* BCC, 16, GBTI
* BPV, 16, BTST, GBTI
* BCV2, 16, GBTI
* BCV3, 16, GBTI
* BCV4, 16, GBTI
* BSTS, 16, GBTI? No error but contains old name in GBTI.
* BSN, 16, BTIF, GBTI
* BDAT, 16, BTIF, GBTI
* BCV1, 16, GBTI
* BDV, 16, BTIF, GBTI
* BME, 16, GBTI
* CBT, 16, GBTI, _TMP? (BATZ) Error in _TMP…can’t seem to patch
Patched..Object is not accessible from this scope (B1B2)
Unpatched..Object does not exist (/SB.PIC0.LBPC.ECO.CBT)
ISSUE #1
My problem is with BSTS. I can split in EC0 BSTS, 16, ---- STS0,8,STS1,8. BUT NO ERROR ON COMPILE BUT BSTS IN GBTI???
Method (GBTI, 1, NotSerialized)
{
Store ("Enter getbattinfo", Debug)
Acquire (ECMX, 0xFFFF)
If (ECRG)
{
If (And (BATP, ShiftLeft (One, Arg0)))
{
Store (Arg0, BSEL)
Store (Package (0x03)
{
Zero,
0x4E,
Buffer (0x4E){}
}, Local0)
Store (B1B2(\_SB.PCI0.LPCB.EC0.BDC0,\_SB.PCI0.LPCB.EC0.BDC1), Index (DerefOf (Index (Local0, 0x02)), Zero))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BDC0,\_SB.PCI0.LPCB.EC0.BDC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), One))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BFC0,\_SB.PCI0.LPCB.EC0.BFC1), Index (DerefOf (Index (Local0, 0x02)), 0x02))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BFC0,\_SB.PCI0.LPCB.EC0.BFC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x03))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BRC0,\_SB.PCI0.LPCB.EC0.BRC1), Index (DerefOf (Index (Local0, 0x02)), 0x04))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BRC0,\_SB.PCI0.LPCB.EC0.BRC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x05))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BME0,\_SB.PCI0.LPCB.EC0.BME1), Index (DerefOf (Index (Local0, 0x02)), 0x06))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BME0,\_SB.PCI0.LPCB.EC0.BME1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x07))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BCC0,\_SB.PCI0.LPCB.EC0.BCC1), Index (DerefOf (Index (Local0, 0x02)), 0x08))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BCC0,\_SB.PCI0.LPCB.EC0.BCC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x09))
Store (B1B2(\_SB.PCI0.LPCB.EC0.CBT0,\_SB.PCI0.LPCB.EC0.CBT1), Local1)
Subtract (Local1, 0x0AAC, Local1)
Divide (Local1, 0x0A, Local2, Local3)
Store (Local3, Index (DerefOf (Index (Local0, 0x02)), 0x0A))
Store (ShiftRight (Local3, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0B))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BPV0,\_SB.PCI0.LPCB.EC0.BPV1), Index (DerefOf (Index (Local0, 0x02)), 0x0C))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BPV0,\_SB.PCI0.LPCB.EC0.BPV1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0D))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BCR0,\_SB.PCI0.LPCB.EC0.BCR1), Local1)
If (Local1)
{
------ If (And (BSTS, 0x40))
{
Add (Not (Local1), One, Local1)
And (Local1, 0xFFFF, Local1)
}
}
Store (Local1, Index (DerefOf (Index (Local0, 0x02)), 0x0E))
Store (ShiftRight (Local1, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0F))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BDV0,\_SB.PCI0.LPCB.EC0.BDV1), Index (DerefOf (Index (Local0, 0x02)), 0x10))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BDV0,\_SB.PCI0.LPCB.EC0.BDV1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x11))
------ Store (BSTS, Index (DerefOf (Index (Local0, 0x02)), 0x12))
------ Store (ShiftRight (BSTS, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x13))
I SEARCH BSTS AND FIND
OperationRegion (AF10, SystemMemory, 0xBF764018, 0x08BE)
Field (AF10, AnyAcc, Lock, Preserve)
{
STAT, 32,
EVAL, 8,
ASTL, 8,
ASTG, 256,
OWNT, 640,
PROD, 640,
MODL, 640,
PTYP, 640,
PFRQ, 640,
MEMS, 640,
DATE, 640,
FAMI, 640,
SERL, 640,
VREV, 640,
KBCD, 640,
HDDS, 160,
HDDM, 320,
CDAT, 136,
CSTS, 8,
CYCL, 8,
PBSN, 144,
SBSN, 144,
----BSTS, 8,
BORD, 64,
BSTS name still exists in this field and its 8 bit, not 16 like in EC0
How do I deal with this? Patch the EC0 code and don't worry about this?
EDIT... ISSUE #1 SOLVED
I deleted the line BSTS, 8, as you suggested and patched the code in EC0
ISSUE #2
I patch EC0 CBT, 16 ----CBT0,8,CBT1,8,
Method (GBTI, 1, NotSerialized)
{
Store ("Enter getbattinfo", Debug)
Acquire (ECMX, 0xFFFF)
If (ECRG)
{
If (And (BATP, ShiftLeft (One, Arg0)))
{
Store (Arg0, BSEL)
Store (Package (0x03)
{
Zero,
0x4E,
Buffer (0x4E){}
}, Local0)
Store (B1B2(\_SB.PCI0.LPCB.EC0.BDC0,\_SB.PCI0.LPCB.EC0.BDC1), Index (DerefOf (Index (Local0, 0x02)), Zero))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BDC0,\_SB.PCI0.LPCB.EC0.BDC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), One))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BFC0,\_SB.PCI0.LPCB.EC0.BFC1), Index (DerefOf (Index (Local0, 0x02)), 0x02))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BFC0,\_SB.PCI0.LPCB.EC0.BFC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x03))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BRC0,\_SB.PCI0.LPCB.EC0.BRC1), Index (DerefOf (Index (Local0, 0x02)), 0x04))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BRC0,\_SB.PCI0.LPCB.EC0.BRC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x05))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BME0,\_SB.PCI0.LPCB.EC0.BME1), Index (DerefOf (Index (Local0, 0x02)), 0x06))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BME0,\_SB.PCI0.LPCB.EC0.BME1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x07))
Store (B1B2(\_SB.PCI0.LPCB.EC0.BCC0,\_SB.PCI0.LPCB.EC0.BCC1), Index (DerefOf (Index (Local0, 0x02)), 0x08))
Store (ShiftRight (B1B2(\_SB.PCI0.LPCB.EC0.BCC0,\_SB.PCI0.LPCB.EC0.BCC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x09))
------- Store (B1B2(\_SB.PCI0.LPCB.EC0.CBT0,\_SB.PCI0.LPCB.EC0.CBT1), Local1)
Subtract (Local1, 0x0AAC, Local1)
Divide (Local1, 0x0A, Local2, Local3)
This patches fine but the following does not...
ThermalZone (BATZ)
{
Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature
{
Return (GETP (Zero, 0x05))
}
Method (_PSL, 0, NotSerialized) // _PSL: Passive List
{
Return (PSL ())
}
Name (_TSP, 0x012C) // _TSP: Thermal Sampling Period
Name (_TC1, One) // _TC1: Thermal Constant 1
Name (_TC2, 0x02) // _TC2: Thermal Constant 2
Method (_CRT, 0, Serialized) // _CRT: Critical Temperature
{
Return (0x0FAC)
}
Method (_TMP, 0, Serialized) // _TMP: Temperature
{
Store (0x0AAC, Local0)
Store (0x0AAC, Local1)
Acquire (\_SB.PCI0.LPCB.EC0.ECMX, 0xFFFF)
If (\_SB.PCI0.LPCB.EC0.ECRG)
{
------ Store (B1B2(\_SB.PCI0.LPCB.EC0.CBT0,\_SB.PCI0.LPCB.EC0.CBT1), Local1)
}
Release (\_SB.PCI0.LPCB.EC0.ECMX)
Store (GTTP (0x05, Local1, 0x0AAC, 0x0FA2), Local0)
If (SETM (0x05, Local0, Zero, Zero))
{
Notify (BATZ, 0x81)
}
Return (Local0)
This give error. Object is not accessible from this scope (B1B2) and if I don't patch I get error Object does not exist (/SB.PIC0.LBPC.ECO.CBT) because I patched it in EC0.
Scope _TZ--BATZ--_TMP
EDIT....
So I managed to fix this error by adding Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) } to the _TZ scope
Everything else went good