电源域

Linux PMU 提供者公开七个通用电源域。Linux 显式控制 HP 连接域(HPCNNT)的状态切换;其他域用于描述拓扑和设备归属,并按提供者策略保持开启。无线活动状态所需的 PMU 初始化仍由已链接的载荷执行。

已注册的拓扑与策略

域名称

绑定标识符

已注册的父域

Linux 策略

top

ESP32S31_PD_TOP

无

始终开启

hp-alive

ESP32S31_PD_HPALIVE

top

始终开启

modem-power

ESP32S31_PD_MODEMPWR

top

始终开启

hp-cpu

ESP32S31_PD_HPCPU

top

始终开启

hp-connectivity

ESP32S31_PD_HPCNNT

top

仅在存在 espressif,allow-hpcnnt-power-off 时自动管理

modem

ESP32S31_PD_MODEM

modem-power

始终开启

lp-peripheral

ESP32S31_PD_LP_PERI

未注册父域

始终开启

项目提供的设备树包含 HPCNNT 自动管理的启用属性。载荷会在普通设备归属机制之外访问该域,因此无线模块活动时会额外持有一项投票。无线投票有效时禁止关闭 HPCNNT。载荷完成 PMU 初始化后,reclaim 钩子会重新应用 Linux 的 HPCNNT 强制状态。参见域策略与拓扑、DTS 启用属性及投票与 reclaim 实现。

读取电源域诊断信息

for file in /sys/bus/platform/devices/*/domains; do
    [ -r "$file" ] && cat "$file"
done

字段

含义

开头的名称

上表中的域名称

policy=

根据 genpd 策略标志显示 always-on 或 automatic

software=

提供者跟踪的 on / off 状态

hardware=

强制控制寄存器的解释:FORCE_PD 置位时为 off,否则 FORCE_PU 置位时为 on,否则为 firmware-auto

force=

低六位强制控制位:复位、隔离、上电、不复位、不隔离、下电

on=、off=

成功的 genpd 开启 / 关闭回调计数;on 还包含探测时首次取得 HPCNNT 控制权

reclaim=

载荷初始化 PMU 后尝试重新应用状态的次数

errors=

状态切换期间强制控制寄存器回读失败的次数

radio-vote=

hp-connectivity 的当前无线否决投票;其他电源域也显示该字段,但值为零

尽管字段名为 hardware=,它解释的是强制控制寄存器,并非独立的电源就绪信号、电流读数或保持状态的证明。输出格式定义于 domains_show()。

系统保持配置

OpenSBI 的 APPWR 配置写入电源值 0x0000aa00 和时钟值 0x00000000。源码将它们定义为:四个 HP 内存块进入保持模式、HP 逻辑组进入下电模式,并关闭 HP 各类时钟。LP 固件提供唤醒请求。参见配置常量和进入流程。

当前挂起状态、CPU 空闲、关机与定时深度睡眠见电源管理。

功耗测量

每次测量应同时记录板卡版本、供电点与电压、USB 连接、启用的外设、无线状态、CPU 频率及仪器和采样间隔。板卡输入电流包含稳压器、USB 桥接器和 LED 的消耗,不应将其标为 CPU 电源域电流。