英特尔(R) 动态平台和散热框架 Sysfs 接口¶
- 版权:
© 2022 英特尔公司
- 作者:
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
简介¶
英特尔(R) 动态平台和散热框架 (DPTF) 是一种用于电源和散热管理的平台级硬件/软件解决方案。
作为多种电源/散热技术的容器,DPTF 为不同的策略提供了一种协调方法,以影响系统的硬件状态。
由于它是一个平台级框架,因此它有几个组件。该技术的某些部分在固件中实现,并使用 ACPI 和 PCI 设备来公开各种用于监控和控制的功能。Linux 有一组内核驱动程序,可将硬件接口公开给用户空间。这允许用户空间散热解决方案(如“Linux Thermal Daemon”)读取平台特定的散热和电源表,以便在将系统保持在散热限制之内的同时提供足够的性能。
DPTF ACPI 驱动程序接口¶
/sys/bus/platform/devices/<N>/uuids
,其中 <N> = INT3400|INTC1040|INTC1041|INTC10A0
available_uuids
(RO)一组 UUID 字符串,表示可用的策略,当用户空间可以支持这些策略时,应通知固件。
UUID 字符串
“42A441D6-AE6A-462b-A84B-4A8CE79027D3”:被动 1
“3A95C389-E4B8-4629-A526-C52C88626BAE”:主动
“97C68AE7-15FA-499c-B8C9-5DA81D606E0A”:危急
“63BE270F-1C11-48FD-A6F7-3AF253FF3E2D”:自适应性能
“5349962F-71E6-431D-9AE8-0A635B710AEE”:紧急呼叫
“9E04115A-AE87-4D1C-9500-0F3E340BFE75”:被动 2
“F5A35014-C209-46A4-993A-EB56DE7530A1”:电源 Boss
“6ED722A7-9240-48A5-B479-31EEF723D7CF”:虚拟传感器
“16CAF1B7-DD38-40ED-B1C1-1B8A1913D531”:散热模式
“BE84BABF-C4D4-403D-B495-3128FD44dAC1”:HDC
current_uuid
(RW)用户空间可以一次写入来自可用 UUID 的字符串。
/sys/bus/platform/devices/<N>/
,其中 <N> =INT3400|INTC1040|INTC1041|INTC10A0
imok
(WO)用户空间守护进程写入 1 以响应固件事件,以发送保持活动通知。当固件调用用户空间以 imok ACPI 方法响应时,用户空间会收到 THERMAL_EVENT_KEEP_ALIVE kobject uevent 通知。
odvp*
(RO)固件散热状态变量值。散热表根据这些变量值调用不同的处理。
data_vault
(RO)二进制散热表。请参阅 https:/github.com/intel/thermal_daemon 以解码散热表。
production_mode
(RO)当不等于零时,制造商锁定了散热配置,无法进一步更改。
ACPI 散热关系表接口¶
/dev/acpi_thermal_rel
此设备提供 IOCTL 接口,用于通过 ACPI 方法 _TRT 和 _ART 读取标准 ACPI 散热关系表。这些 IOCTL 在 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.h 中定义。
IOCTL
ACPI_THERMAL_GET_TRT_LEN:获取 TRT 表的长度
ACPI_THERMAL_GET_ART_LEN:获取 ART 表的长度
ACPI_THERMAL_GET_TRT_COUNT:TRT 表中的记录数
ACPI_THERMAL_GET_ART_COUNT:ART 表中的记录数
ACPI_THERMAL_GET_TRT:读取二进制 TRT 表,要读取的长度通过 ioctl() 的参数提供。
ACPI_THERMAL_GET_ART:读取二进制 ART 表,要读取的长度通过 ioctl() 的参数提供。
DPTF ACPI 传感器驱动程序¶
DPTF 传感器驱动程序以标准散热 sysfs thermal_zone 呈现。
DPTF ACPI 散热驱动程序¶
DPTF 散热驱动程序以标准散热 sysfs cooling_device 呈现。
DPTF 处理器散热 PCI 驱动程序接口¶
/sys/bus/pci/devices/0000:00:04.0/power_limits/
请参阅 电源限制框架 以了解 powercap ABI。
power_limit_0_max_uw
(RO)用于英特尔 RAPL 的最大 powercap sysfs constraint_0_power_limit_uw
power_limit_0_step_uw
(RO)用于英特尔 RAPL 约束 0 电源限制的电源限制增量/减量
power_limit_0_min_uw
(RO)用于英特尔 RAPL 的最小 powercap sysfs constraint_0_power_limit_uw
power_limit_0_tmin_us
(RO)用于英特尔 RAPL 的最小 powercap sysfs constraint_0_time_window_us
power_limit_0_tmax_us
(RO)用于英特尔 RAPL 的最大 powercap sysfs constraint_0_time_window_us
power_limit_1_max_uw
(RO)用于英特尔 RAPL 的最大 powercap sysfs constraint_1_power_limit_uw
power_limit_1_step_uw
(RO)用于英特尔 RAPL 约束 1 电源限制的电源限制增量/减量
power_limit_1_min_uw
(RO)用于英特尔 RAPL 的最小 powercap sysfs constraint_1_power_limit_uw
power_limit_1_tmin_us
(RO)用于英特尔 RAPL 的最小 powercap sysfs constraint_1_time_window_us
power_limit_1_tmax_us
(RO)用于英特尔 RAPL 的最大 powercap sysfs constraint_1_time_window_us
power_floor_status
(RO)当设置为 1 时,表示已达到当前配置中系统的功率下限。需要重新配置以允许进一步降低功率。
power_floor_enable
(RW)当设置为 1 时,启用读取和通知功率下限状态。当 power_floor_status 属性值更改时,会触发通知。
/sys/bus/pci/devices/0000:00:04.0/
tcc_offset_degree_celsius
(RW)硬件将限制 CPU 的临界温度的 TCC 偏移量。
/sys/bus/pci/devices/0000:00:04.0/workload_request
workload_available_types
(RO)可用的工作负载类型。用户空间可以通过 workload_type 指定当前正在执行的工作负载类型之一。例如:空闲、突发、持续等。
workload_type
(RW)用户空间可以使用此接口指定任何一种可用的工作负载类型。
DPTF 处理器散热 RFIM 接口¶
RFIM 接口允许调整 FIVR(完全集成电压调节器)、DDR(双倍数据速率)和 DLVR(数字线性电压调节器)频率,以避免与 WiFi 和 5G 产生 RF 干扰。
开关电压调节器 (VR) 会在其基频及其谐波处产生辐射 EMI 或 RFI。某些谐波可能会干扰集成到笔记本电脑等主机系统中的非常灵敏的无线接收器,如 Wi-Fi 和蜂窝网络。一种缓解方法是将 SOC 集成 VR (IVR) 开关频率请求为较小的百分比,并将开关噪声谐波干扰从无线电频道移开。OEM 或 ODM 可以使用驱动程序在不影响 IVR 性能的范围内控制 SOC IVR 的运行。
某些产品使用 DLVR 而不是 FIVR 作为开关电压调节器。在这种情况下,必须调整 DLVR 的属性,而不是 FIVR 的属性。
虽然移动频率会引入额外的时钟噪声,但可以通过调整扩频百分比来补偿。这有助于降低时钟噪声,以符合法规要求。此扩频百分比会增加信号传输的带宽,从而减少干扰、噪声和信号衰落的影响。
DDR IO 接口的 DRAM 设备及其电源平面可能会在数据速率下产生 EMI。与 IVR 控制机制类似,英特尔提供了一种机制,如果满足以下几个条件,则可以更改 DDR 数据速率:由于 DDR 存在强烈的 RFI 干扰;CPU 电源管理在更改 DDR 数据速率方面没有其他限制;PC ODM 从 BIOS 中启用此功能(称为实时 DDR RFI 缓解,简称 DDR-RFIM),用于 Wi-Fi。
FIVR 属性
/sys/bus/pci/devices/0000:00:04.0/fivr/
vco_ref_code_lo
(RW)VCO 参考码是一个 11 位字段,用于控制 FIVR 开关频率。这是 3 位 LSB 字段。
vco_ref_code_hi
(RW)VCO 参考码是一个 11 位字段,用于控制 FIVR 开关频率。这是 8 位 MSB 字段。
spread_spectrum_pct
(RW)设置 FIVR 扩频时钟百分比
spread_spectrum_clk_enable
(RW)启用/禁用 FIVR 扩频时钟功能
rfi_vco_ref_code
(RW)此字段是一个只读状态寄存器,反映当前的 FIVR 开关频率
fivr_fffc_rev
(RW)此字段指示 FIVR HW 的修订版本。
DVFS 属性
/sys/bus/pci/devices/0000:00:04.0/dvfs/
rfi_restriction_run_busy
(RW)请求限制特定的 DDR 数据速率并将此值设置为 1。操作后自重置为 0。
rfi_restriction_err_code
(RW)0:请求被接受,1:功能已禁用,2:请求限制的点数超过允许的范围
rfi_restriction_data_rate_Delta
(RW)用于 RFI 保护的受限 DDR 数据速率:下限
rfi_restriction_data_rate_Base
(RW)用于 RFI 保护的受限 DDR 数据速率:上限
ddr_data_rate_point_0
(RO)DDR 数据速率选择的第 1 个点
ddr_data_rate_point_1
(RO)DDR 数据速率选择的第 2 个点
ddr_data_rate_point_2
(RO)DDR 数据速率选择的第 3 个点
ddr_data_rate_point_3
(RO)DDR 数据速率选择的第 4 个点
rfi_disable (RW)
禁用 DDR 速率更改功能
DLVR 属性
/sys/bus/pci/devices/0000:00:04.0/dlvr/
dlvr_hardware_rev
(RO)DLVR 硬件修订版。
dlvr_freq_mhz
(RO)当前 DLVR PLL 频率(以 MHz 为单位)。
dlvr_freq_select
(RW)设置 DLVR PLL 时钟频率。设置并通过 dlvr_rfim_enable 启用后,dlvr_freq_mhz 将显示当前的 DLVR PLL 频率。
dlvr_pll_busy
(RO)设置后,PLL 无法接受频率更改。
dlvr_rfim_enable
(RW)0:禁用 RF 跳频,1:启用 RF 跳频。
dlvr_spread_spectrum_pct
(RW)设置 DLVR 扩频百分比值。
dlvr_control_mode
(RW)指定如何使用扩频来扩展频率。0:向下扩展,1:在中心扩展。
dlvr_control_lock
(RW)1:将忽略未来的写入。
DPTF 电源和电池接口¶
请参阅 Documentation/ABI/testing/sysfs-platform-dptf
DPTF 风扇控制¶
请参阅 ACPI 风扇性能状态
工作负载类型提示¶
Meteor Lake 处理器中的固件能够识别工作负载类型并将有关它的提示传递给操作系统。提供了一个特殊的 sysfs 接口,允许用户空间从固件获取工作负载类型提示,并控制提供这些提示的速率。
用户空间可以轮询属性“workload_type_index”以获取当前提示,或者可以在此属性的值更新时接收通知。
文件:/sys/bus/pci/devices/0000:00:04.0/workload_hint/ 所有的英特尔客户端处理器都保留了段 0、总线 0、设备 4、功能 0 用于处理器热设备。因此,以上路径不会根据处理器代系而改变。
workload_hint_enable
(RW)启用固件以向用户空间发送工作负载类型提示。
notification_delay_ms
(RW)固件在通知操作系统之前,以毫秒为单位的最小延迟。这是用于控制通知速率的。此延迟发生在固件中更改工作负载类型预测和通知操作系统有关更改之间。默认延迟为 1024 毫秒。延迟 0 无效。延迟向上舍入为最接近的 2 的幂,以简化固件的延迟值编程。读取 notification_delay_ms 属性会显示使用的有效值。
workload_type_index
(RO)预测的工作负载类型索引。用户空间可以通过现有的 sysfs 属性更改通知机制获取更改通知。
Meteor Lake 处理器代系支持的索引值及其含义如下
- 0 - 空闲:系统不执行任何任务,功耗和空闲驻留
在很长一段时间内保持一致的低水平。
- 1 – 电池寿命:功耗相对较低,但处理器可能
仍在积极执行任务,例如长时间播放视频。
- 2 – 持续:在很长一段时间内保持相对较高的功率水平
的时间,几乎没有空闲期,最终会耗尽 RAPL 功率限制 1 和 2。
- 3 – 突发:消耗相对恒定的平均功率量,但
相对空闲期会被突发活动中断。突发时间相对较短,它们之间的相对空闲期通常会防止 RAPL 功率限制 1 耗尽。
4 – 未知:无法分类。