Skip to content

Commit

Permalink
Update AOAC、PCI、ASPM、OS、Bettery
Browse files Browse the repository at this point in the history
  • Loading branch information
athlonreg committed Mar 10, 2021
1 parent d2c8493 commit 60beba8
Show file tree
Hide file tree
Showing 33 changed files with 305 additions and 32 deletions.
2 changes: 1 addition & 1 deletion 01-关于AOAC/README.md
Expand Up @@ -52,7 +52,7 @@
- 电源空闲管理补丁——参见《电源空闲管理》
- AOAC唤醒补丁——参见《AOAC唤醒方法》
- 秒醒补丁——参见《060D补丁》
- 启用设备 LI ——参见《设置ASPM工作模式》,感谢 @iStar丶Forever 提供方法
- 启用设备 LI ——参见《禁止PCI设备及设置ASPM工作模式》中的 《设置ASPM工作模式》,感谢 @iStar丶Forever 提供方法
- 管控蓝牙WIFI——参见《睡眠自动关闭蓝牙WIFI》,感谢 @i5 ex900 0.66%/h 华星 OC Dreamn 提供方法

## 注意事项
Expand Down
2 changes: 1 addition & 1 deletion 04-操作系统补丁/SSDT-OC-XOSI.dsl
Expand Up @@ -31,7 +31,7 @@ DefinitionBlock("", "SSDT", 2, "OCLT", "OC-XOSI", 0)
//"Windows 2019" // = Win10 version 1903
)
{
Return (0xFFFFFFFF)
Return (Ones)
}

Else
Expand Down
5 changes: 1 addition & 4 deletions 04-操作系统补丁/SSDT-OC-XOSI.md
Expand Up @@ -32,10 +32,9 @@ DefinitionBlock("", "SSDT", 2, "OCLT", "OC-XOSI", 0)
//"Windows 2019" // = Win10 version 1903
)
{
Return (0xFFFFFFFF)
Return (Ones)
}


Else
{
Return (Zero)
Expand All @@ -47,8 +46,6 @@ DefinitionBlock("", "SSDT", 2, "OCLT", "OC-XOSI", 0)
Return (_OSI (Arg0))
}
}

}
//EOF
```

17 changes: 12 additions & 5 deletions 08-电池补丁/08-3-电池信息辅助补丁/README.md
Expand Up @@ -9,21 +9,28 @@

### 补丁说明

- 在ACPI规范中,`_BST` 定义了一些电池信息,补丁中通过方法 `CBIS``CBSS` 注入这些信息。有关 `_BST` 定义的详细内容请查阅 ACPI 规范
- 示例中未能找到 `CBSS` 的实际应用,固使用 `Return (Buffer (Zero){})` 即可。**注意** 不可删除 `CBSS` 内容
- 为了能够在 **无需 `电池` 补丁的机器** 上工作,示例补丁在电池路径下添加了B1B2方法
- 在ACPI规范中,`_BST` 定义了一些电池信息,本补丁中通过方法 `CBIS``CBSS` 注入这些信息。有关 `_BST` 定义的详细内容请查阅 ACPI 规范

- 为了能够在 **无需 `电池` 补丁的机器** 上使用本补丁,示例补丁的电池路径下添加了B1B2方法

### SSDT-BATS-PRO13示例

- `电池` 路径:`_SB.PCI0.LPCB.H_EC.BAT1`

使用时应保证原始ACPI的电池路径与示例的电池路径一致

- `CBIS` 方法

- 根据`_BST` 的内容查找对应变量,按 `低字节``高字节` 写入B1B2。如:PKG1 [0x02]=B1B2 ( `FUSL`, `FUSH` ),如果这个变量是双字节,参考电池补丁拆分数据的方法进行数据拆分、重新定义数据
- 如果不能确认变量,也可以在win或者Linux下查看电池相关信息**未验证**】,直接填写。比如:`固件版本`是123,直接令PKG1 [0x04] = B1B2 (0x23, 0x01)
- 如果不能确认变量,可以在win或者Linux下查看电池相关信息**未验证**】,直接填写其内容。比如:`固件版本` 是123,令PKG1 [0x04] = B1B2 (0x23, 0x01)

- `CBSS` 方法

数据填写方法同`CBIS` 。如果不需要填写任何内容使用 `Return (Buffer (Zero){})`
数据填写方法同`CBIS`

**注1**:如果不需要填写任何内容,删除 `PKG1 [Zero]=...``PKG1 [0x06]=...` 的所有内容,参见示例

**注2**: 不可删除 `CBSS` 方法



59 changes: 49 additions & 10 deletions 08-电池补丁/08-3-电池信息辅助补丁/SSDT-BATS-PRO13.dsl
Expand Up @@ -48,22 +48,61 @@ DefinitionBlock ("", "SSDT", 2, "ACDT", "BATS", 0)
0xFFFFFFFF,
})
// Check your _BST method for similiar condition of EC accessibility
If (\_SB.PCI0.LPCB.H_EC.ECAV)
If (_OSI ("Darwin"))
{
//PKG1 [One] = B1B2 (B1T1, B1T2)
PKG1 [0x02] = B1B2 (FUSL, FUSH)
PKG1 [0x03] = B1B2 (BMIL, BMIH)
PKG1 [0x04] = B1B2 (FMVL, FMVH)
PKG1 [0x05] = B1B2 (HIDL, HIDH)
PKG1 [0x06] = B1B2 (DAVL, DAVH)
}
If (\_SB.PCI0.LPCB.H_EC.ECAV)
{
/*
PKG1 [One] = B1B2 (B1T1, B1T2)
*/
PKG1 [0x02] = B1B2 (FUSL, FUSH)
PKG1 [0x03] = B1B2 (BMIL, BMIH)
PKG1 [0x04] = B1B2 (FMVL, FMVH)
PKG1 [0x05] = B1B2 (HIDL, HIDH)
PKG1 [0x06] = B1B2 (DAVL, DAVH)
}

Return (PKG1)
Return (PKG1)
}
} // CBIS

Method (CBSS, 0, Serialized)
{
Return (Buffer (Zero){})
Name (PKG1, Package (0x08)
{
// Temperature (0x10), AppleSmartBattery format
0xFFFFFFFF,
// TimeToFull (0x11), minutes (0xFF)
0xFFFFFFFF,
// TimeToEmpty (0x12), minutes (0)
0xFFFFFFFF,
// ChargeLevel (0x13), percentage
0xFFFFFFFF,
// AverageRate (0x14), mA (signed)
0xFFFFFFFF,
// ChargingCurrent (0x15), mA
0xFFFFFFFF,
// ChargingVoltage (0x16), mV
0xFFFFFFFF,
0xFFFFFFFF
})
If (_OSI ("Darwin"))
{
If (\_SB.PCI0.LPCB.H_EC.ECAV)
{
/*
PKG1 [Zero] = B1B2 (BTM1, BTM2)
PKG1 [One] = B1B2 (BCL1, BCL2)
PKG1 [0x02] = B1B2 (BCW1, BCW2)
PKG1 [0x03] = B1B2 (BPR1, BPR2)
PKG1 [0x04] = B1B2 (BAR1, BAR2)
PKG1 [0x05] = B1B2 (BCC1, BCC2)
PKG1 [0x06] = B1B2 (BCV1, BCV2)
*/
}

Return (PKG1)
}
} // CBSS

} // BAT1
Expand Down
112 changes: 112 additions & 0 deletions 08-电池补丁/08-3-电池信息辅助补丁/SSDT-BATS-PRO13.md
@@ -0,0 +1,112 @@
```dsl
//
DefinitionBlock ("", "SSDT", 2, "ACDT", "BATS", 0)
{
External (_SB.PCI0.LPCB.H_EC.BAT1, DeviceObj)
External (_SB.PCI0.LPCB.H_EC.ECAV, IntObj)
//
//External (_SB.PCI0.LPCB.H_EC.B1T1, FieldUnitObj)
//External (_SB.PCI0.LPCB.H_EC.B1T2, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.FUSH, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.FUSL, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.BMIH, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.BMIL, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.FMVH, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.FMVL, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.HIDH, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.HIDL, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.DAVH, FieldUnitObj)
External (_SB.PCI0.LPCB.H_EC.DAVL, FieldUnitObj)
//
Scope (\_SB.PCI0.LPCB.H_EC.BAT1)
{
Method (B1B2, 2, NotSerialized)
{
Local0 = (Arg1 << 0x08)
Local0 |= Arg0
Return (Local0)
}
Method (CBIS, 0, Serialized)
{
Name (PKG1, Package (0x08)
{
// config, double check if you have valid AverageRate before
// fliping that bit to 0x007F007F since it will disable quickPoll
0x006F007F,
// ManufactureDate (0x1), AppleSmartBattery format
0xFFFFFFFF,
// PackLotCode (0x2)
0xFFFFFFFF,
// PCBLotCode (0x3)
0xFFFFFFFF,
// FirmwareVersion (0x4)
0xFFFFFFFF,
// HardwareVersion (0x5)
0xFFFFFFFF,
// BatteryVersion (0x6)
0xFFFFFFFF,
0xFFFFFFFF,
})
// Check your _BST method for similiar condition of EC accessibility
If (_OSI ("Darwin"))
{
If (\_SB.PCI0.LPCB.H_EC.ECAV)
{
/*
PKG1 [One] = B1B2 (B1T1, B1T2)
*/
PKG1 [0x02] = B1B2 (FUSL, FUSH)
PKG1 [0x03] = B1B2 (BMIL, BMIH)
PKG1 [0x04] = B1B2 (FMVL, FMVH)
PKG1 [0x05] = B1B2 (HIDL, HIDH)
PKG1 [0x06] = B1B2 (DAVL, DAVH)
}
Return (PKG1)
}
} // CBIS
Method (CBSS, 0, Serialized)
{
Name (PKG1, Package (0x08)
{
// Temperature (0x10), AppleSmartBattery format
0xFFFFFFFF,
// TimeToFull (0x11), minutes (0xFF)
0xFFFFFFFF,
// TimeToEmpty (0x12), minutes (0)
0xFFFFFFFF,
// ChargeLevel (0x13), percentage
0xFFFFFFFF,
// AverageRate (0x14), mA (signed)
0xFFFFFFFF,
// ChargingCurrent (0x15), mA
0xFFFFFFFF,
// ChargingVoltage (0x16), mV
0xFFFFFFFF,
0xFFFFFFFF
})
If (_OSI ("Darwin"))
{
If (\_SB.PCI0.LPCB.H_EC.ECAV)
{
/*
PKG1 [Zero] = B1B2 (BTM1, BTM2)
PKG1 [One] = B1B2 (BCL1, BCL2)
PKG1 [0x02] = B1B2 (BCW1, BCW2)
PKG1 [0x03] = B1B2 (BPR1, BPR2)
PKG1 [0x04] = B1B2 (BAR1, BAR2)
PKG1 [0x05] = B1B2 (BCC1, BCC2)
PKG1 [0x06] = B1B2 (BCV1, BCV2)
*/
}
Return (PKG1)
}
} // CBSS
} // BAT1
}
//EOF
```
115 changes: 115 additions & 0 deletions 08-电池补丁/08-3-电池信息辅助补丁/SSDT-BATS官方.md
@@ -0,0 +1,115 @@
```dsl
//
// Refer to Battery Supplement Information.md for details and formats
//
DefinitionBlock ("", "SSDT", 2, "ACDT", "BATS", 0x00000000)
{
// Match your battery device (PNP0C0A) path
External (_SB_.PCI0.LPCB.H_EC.BAT1, DeviceObj)
External (_SB_.PCI0.LPCB.H_EC.ECAV, IntObj)
External (_SB_.PCI0.LPCB.H_EC.B1T1, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.B1T2, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BAR1, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BAR2, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BCC1, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BCC2, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BCL1, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BCL2, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BCV1, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BCV2, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BCW1, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BCW2, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BMIH, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BMIL, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BPR1, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BPR2, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BTM1, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.BTM2, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.DAVH, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.DAVL, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.FMVH, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.FMVL, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.FUSH, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.FUSL, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.HIDH, FieldUnitObj)
External (_SB_.PCI0.LPCB.H_EC.HIDL, FieldUnitObj)
External (\B1B2, MethodObj)
Scope (\_SB.PCI0.LPCB.H_EC.BAT1)
{
Method (CBIS, 0, Serialized)
{
Name (PKG1, Package (0x08)
{
// config, double check if you have valid AverageRate before
// fliping that bit to 0x007F007F since it will disable quickPoll
0x006F007F,
// ManufactureDate (0x1), AppleSmartBattery format
0xFFFFFFFF,
// PackLotCode (0x2)
0xFFFFFFFF,
// PCBLotCode (0x3)
0xFFFFFFFF,
// FirmwareVersion (0x4)
0xFFFFFFFF,
// HardwareVersion (0x5)
0xFFFFFFFF,
// BatteryVersion (0x6)
0xFFFFFFFF,
0xFFFFFFFF,
})
// Check your _BST method for similiar condition of EC accessibility
If (ECAV)
{
PKG1 [One] = B1B2 (B1T1, B1T2)
PKG1 [0x02] = B1B2 (FUSL, FUSH)
PKG1 [0x03] = B1B2 (BMIL, BMIH)
PKG1 [0x04] = B1B2 (FMVL, FMVH)
PKG1 [0x05] = B1B2 (HIDL, HIDH)
PKG1 [0x06] = B1B2 (DAVL, DAVH)
}
Return (PKG1)
} // CBIS
Method (CBSS, 0, Serialized)
{
Name (PKG1, Package (0x08)
{
// Temperature (0x10), AppleSmartBattery format
0xFFFFFFFF,
// TimeToFull (0x11), minutes (0xFF)
0xFFFFFFFF,
// TimeToEmpty (0x12), minutes (0)
0xFFFFFFFF,
// ChargeLevel (0x13), percentage
0xFFFFFFFF,
// AverageRate (0x14), mA (signed)
0xFFFFFFFF,
// ChargingCurrent (0x15), mA
0xFFFFFFFF,
// ChargingVoltage (0x16), mV
0xFFFFFFFF,
0xFFFFFFFF
})
// Check your _BST method for similiar condition of EC accessibility
If (ECAV)
{
PKG1 [Zero] = B1B2 (BTM1, BTM2)
PKG1 [One] = B1B2 (BCL1, BCL2)
PKG1 [0x02] = B1B2 (BCW1, BCW2)
PKG1 [0x03] = B1B2 (BPR1, BPR2)
PKG1 [0x04] = B1B2 (BAR1, BAR2)
PKG1 [0x05] = B1B2 (BCC1, BCC2)
PKG1 [0x06] = B1B2 (BCV1, BCV2)
}
Return (PKG1)
} // CBSS
} // BAT1
}
//EOF
```
7 changes: 4 additions & 3 deletions README-en.md
Expand Up @@ -25,8 +25,7 @@ This repository relies on GitBook and utilises Github Actions to build Page serv
2. `AOAC` disable discrete graphics card
3. Power management deep idle
4. `AOAC` wake patch
5. Set `ASPM` state
6. Automatically disable `WIFI` when sleep
5. Auto power off bluetooth `WIFI` while sleep

2. **Preset Variable**

Expand Down Expand Up @@ -77,7 +76,9 @@ This repository relies on GitBook and utilises Github Actions to build Page serv

15. **`ACPI` Patch `USB` Ports**

16. **Disable `PCI` Devices**
16. **Disable `PCI` Devices and Set `ASPM` state**
1. Disable `PCI` Devices
2. Set `ASPM` state

17. **ACPIDebug**

Expand Down

0 comments on commit 60beba8

Please sign in to comment.