硬件平台概览
| 项目 | Max2-7840 (ARN28) | Mini2025-8840 (MiniPro) |
|---|---|---|
| CPU | AMD Phoenix 7840U | AMD Hawk Point 8840U |
| EC芯片 | ITE IT5570 | ITE IT5570 |
| EC Base版本 | EC-V14.6 | EC-V14.6 (相同) |
| EC固件版本 | V00.15 (2024/03/18) | V2.03 (2025/02/19) |
| BIOS容量 | 32MB (33554432) | 32MB (33554432) |
| EC容量 | 128KB (131072) | 128KB (131072) |
| 二进制差异度 | — | 与7840相比 ~47%不同 |
充电控制器
两者都使用 BQ24780S SMBus充电IC。
7840 EC固件调试字符串分析
WR 0x45 ← SMBus写充电电压寄存器(ChargeVoltage)
WR 0x46 ← SMBus写充电电流寄存器(ChargeCurrent)
Switch Bat 80% ← 切换电池@80% 逻辑
bat auto wake 1 / 2 ← 电池自动唤醒逻辑
WackChearger=0 bat=%bd ← 充电器唤醒阈值(0%)
WackChearger=30 bat=%bd ← 充电器唤醒阈值(30%)
trigger DC MS enter S4 ← 插入DC时触发S4休眠
PD Adapter %dmV %dmA %bdW ← PD适配器协商输出
S0I3 AC IN / AC OUT ← AC插入/拔出检测
TPC_ReConfigDriver OK ← PD电源协商重构
Burst Time out ← 充电超时保护
EC PROHOT Lo/Hi ← EC过温保护
8840 EC固件调试字符串
AW87390 ← 音频功放(硬件特有)
*几乎没有充电相关调试字符串*
EC Release Notes 核心差异
7840 EC — 从未提及充电阈值或旁路功能
- V00.08: "Add charge led control when low battery"
- V00.10: "For handle sound control"
- V00.14: "Change use real battery percentage by RC/FCC"
- V00.14: "Remove battery low can not enter MS"
- V00.15: "Work in with BIOS to solve the problem that the rotating circle under the logo is not smooth"
8840 EC — 明确实现了电源管理相关功能
- V1.08: "Enable charger BQ24780S Hybrid power boost mode" — 65W适配器时触发保护,混合电源增强
- V1.06: "Auto set adapter input current according to PD power" — PD协商自动设置适配器输入电流
- V1.06: "Modify charging voltage to 17.8V for new 4cell battery"
- V2.01: "Remove the behavior of wake up MS if AC pulled out" — AC拔出不唤醒Modern Standby
- V2.03: "Update SSD S0->MS and MS->S0 Power sequence"
根本原因分析
BQ24780S 工作模式
- 充电模式:适配器给电池充电,系统从电池回路取电
- 补充模式(Supplement):电池+适配器共同为系统供电
- 电池断开模式(Battery Disconnect / Hi-Z):电池断开,系统完全由适配器直接供电 ← 旁路关键
- 混合电源增强(Hybrid Power Boost):峰值负载时电池+适配器协同供电
7840 问题根源
- EC直接通过 SMBus(
WR 0x45/0x46) 控制 BQ24780S 的充电电压和电流寄存器 - 充满后只能将充电电流降至涓流(
WackChearger=30表示30%以下才唤醒充电) - 系统始终经过电池回路取电,无法真正"旁路"电池
Switch Bat 80%仅是一个状态标记,没有实施真正的电池断开- EC固件缺少对 BQ24780S Hi-Z/电池断开模式的支持
- PD适配器协商存在(
PD Adapter %dmV %dmA %bdW),但没有实现适配器直供逻辑
8840 改进方案
- V1.08 启用了 Hybrid Power Boost 模式,允许电池在需要时与适配器协同供电,不需要时断开
- V1.06 实现了 PD自适应输入电流,系统可直接从适配器取电而不经过电池
- EC可以让 BQ24780S 进入 电池断开模式(Hi-Z),充满后完全停止充电
- 系统跑在适配器直供电上,电池处于"断开"状态,无涓流充电
- AC拔出不唤醒Modern Standby(V2.01),进一步优化电源状态管理
结论
7840 的EC固件缺少对 BQ24780S 电池断开模式(Hi-Z) 的支持,并且没有实现 PD 协商后的适配器直供逻辑。8840 的 EC 固件通过 Hybrid Power Boost + PD 自适应电流 两条路径实现了完整的电源旁路能力。这是 固件架构层面的差异,不是简单的参数配置问题。
功能移植可行性分析
方向一:把8840旁路功能移植到7840 EC固件
两者虽然都用 ITE IT5570 EC + BQ24780S 充电IC,但 EC 固件是整机级嵌入式固件,47% 的二进制差异意味着几乎不可能直接移植。
| 层面 | 差异点 |
|---|---|
| GPIO映射 | 键盘矩阵、背光、风扇、充电LED、触摸板、指纹、摄像头 — 引脚分配完全不同 |
| 上电时序 | S0/S3/S4/S5 各状态的电源轨控制时序因主板布局不同 |
| 风扇策略 | 不同散热模组,PWM曲线不同 |
| 电池参数 | Mini2025用4cell 17.8V,Max2用不同配置 |
| 音频功放 | AW87390 vs 其他型号,I2C控制不同 |
| PD协商 | Mini2025的PD CC引脚/中断引脚不同 |
| ACPI交互 | 与BIOS/DSDT的SCI事件映射不同 |
结论:不可行。 直接刷8840的EC到7840上大概率变砖——键盘不响应、风扇乱转甚至不开机。
方向二:把7840硬件参数移植到8840固件使其兼容
反向操作,同样的问题:8840 EC的GPIO配置是硬编码的Mini2025主板布局,即使修改电池和充电参数,GPIO、键盘、时序等还是不对。
结论:不可行。
理论上唯一可行的做法
BQ24780S 充电IC本身支持所有模式,只是7840的EC固件没有实现这些功能的调用代码。如果你有 ITE EC固件源码(GPD/ITE不公开),可以:
- 保留7840原有的 GPIO/键盘/时序/风扇 等硬件适配代码
- 从8840 EC的源码中提取 BQ24780S控制模块(Hybrid Power Boost使能、PD自适应电流设置、电池断开逻辑)
- 移植到7840 EC源码中重新编译
现实中 拿不到源码,且二进制级别的补丁定位和移植几乎不可能(8051架构、无符号表、代码位置完全不同)。
可行的替代方案
| 方案 | 可行性 | 风险 | 说明 |
|---|---|---|---|
| 刷8840 EC到7840 | ❌ 不可行 | 变砖 | GPIO/时序/外设完全不匹配 |
| 改8840 EC适配7840硬件 | ❌ 不可行 | 变砖 | 需要源码级修改,且无文档 |
| 二进制补丁移植旁路代码 | ⚠️ 极困难 | 变砖 | 8051无符号表,无法定位函数边界 |
| 有源码时移植控制模块 | ✅ 可行 | 低 | 但GPD/ITE不公开源码 |
| OS层SMBus操作BQ24780S | ✅ 可行 | 低 | Linux i2c-dev / Windows WinRing0 直接写寄存器 |
| 向GPD要求固件更新 | ✅ 可行 | 无 | 同厂同EC同充电IC,技术上可实现 |
| BDC硬件改造(加MOSFET) | ✅ 可行 | 中 | 需拆机焊接,失去保修 |
分析来源
- Max2-7840 BIOS V0.41 + EC V00.15 (ARN28P)
- Mini2025-8840 BIOS V2.08 + EC V2.03 (MiniPro)
- 固件文件:ARN28P04100REL.rom / ARN28P_EC_V00.15.bin / Mini2025_2.08_GPD.bin / Mini2025_EC_V2.03.bin
- 分析工具:二进制字符串提取、二进制差异比对、EC Release Notes