Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 ===============================================================
0004 Intel(R) Dynamic Platform and Thermal Framework Sysfs Interface
0005 ===============================================================
0006 
0007 :Copyright: © 2022 Intel Corporation
0008 
0009 :Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
0010 
0011 Introduction
0012 ------------
0013 
0014 Intel(R) Dynamic Platform and Thermal Framework (DPTF) is a platform
0015 level hardware/software solution for power and thermal management.
0016 
0017 As a container for multiple power/thermal technologies, DPTF provides
0018 a coordinated approach for different policies to effect the hardware
0019 state of a system.
0020 
0021 Since it is a platform level framework, this has several components.
0022 Some parts of the technology is implemented in the firmware and uses
0023 ACPI and PCI devices to expose various features for monitoring and
0024 control. Linux has a set of kernel drivers exposing hardware interface
0025 to user space. This allows user space thermal solutions like
0026 "Linux Thermal Daemon" to read platform specific thermal and power
0027 tables to deliver adequate performance while keeping the system under
0028 thermal limits.
0029 
0030 DPTF ACPI Drivers interface
0031 ----------------------------
0032 
0033 :file:`/sys/bus/platform/devices/<N>/uuids`, where <N>
0034 =INT3400|INTC1040|INTC1041|INTC10A0
0035 
0036 ``available_uuids`` (RO)
0037         A set of UUIDs strings presenting available policies
0038         which should be notified to the firmware when the
0039         user space can support those policies.
0040 
0041         UUID strings:
0042 
0043         "42A441D6-AE6A-462b-A84B-4A8CE79027D3" : Passive 1
0044 
0045         "3A95C389-E4B8-4629-A526-C52C88626BAE" : Active
0046 
0047         "97C68AE7-15FA-499c-B8C9-5DA81D606E0A" : Critical
0048 
0049         "63BE270F-1C11-48FD-A6F7-3AF253FF3E2D" : Adaptive performance
0050 
0051         "5349962F-71E6-431D-9AE8-0A635B710AEE" : Emergency call
0052 
0053         "9E04115A-AE87-4D1C-9500-0F3E340BFE75" : Passive 2
0054 
0055         "F5A35014-C209-46A4-993A-EB56DE7530A1" : Power Boss
0056 
0057         "6ED722A7-9240-48A5-B479-31EEF723D7CF" : Virtual Sensor
0058 
0059         "16CAF1B7-DD38-40ED-B1C1-1B8A1913D531" : Cooling mode
0060 
0061         "BE84BABF-C4D4-403D-B495-3128FD44dAC1" : HDC
0062 
0063 ``current_uuid`` (RW)
0064         User space can write strings from available UUIDs, one at a
0065         time.
0066 
0067 :file:`/sys/bus/platform/devices/<N>/`, where <N>
0068 =INT3400|INTC1040|INTC1041|INTC10A0
0069 
0070 ``imok`` (WO)
0071         User space daemon write 1 to respond to firmware event
0072         for sending keep alive notification. User space receives
0073         THERMAL_EVENT_KEEP_ALIVE kobject uevent notification when
0074         firmware calls for user space to respond with imok ACPI
0075         method.
0076 
0077 ``odvp*`` (RO)
0078         Firmware thermal status variable values. Thermal tables
0079         calls for different processing based on these variable
0080         values.
0081 
0082 ``data_vault`` (RO)
0083         Binary thermal table. Refer to
0084         https:/github.com/intel/thermal_daemon for decoding
0085         thermal table.
0086 
0087 
0088 ACPI Thermal Relationship table interface
0089 ------------------------------------------
0090 
0091 :file:`/dev/acpi_thermal_rel`
0092 
0093         This device provides IOCTL interface to read standard ACPI
0094         thermal relationship tables via ACPI methods _TRT and _ART.
0095         These IOCTLs are defined in
0096         drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.h
0097 
0098         IOCTLs:
0099 
0100         ACPI_THERMAL_GET_TRT_LEN: Get length of TRT table
0101 
0102         ACPI_THERMAL_GET_ART_LEN: Get length of ART table
0103 
0104         ACPI_THERMAL_GET_TRT_COUNT: Number of records in TRT table
0105 
0106         ACPI_THERMAL_GET_ART_COUNT: Number of records in ART table
0107 
0108         ACPI_THERMAL_GET_TRT: Read binary TRT table, length to read is
0109         provided via argument to ioctl().
0110 
0111         ACPI_THERMAL_GET_ART: Read binary ART table, length to read is
0112         provided via argument to ioctl().
0113 
0114 DPTF ACPI Sensor drivers
0115 -------------------------
0116 
0117 DPTF Sensor drivers are presented as standard thermal sysfs thermal_zone.
0118 
0119 
0120 DPTF ACPI Cooling drivers
0121 --------------------------
0122 
0123 DPTF cooling drivers are presented as standard thermal sysfs cooling_device.
0124 
0125 
0126 DPTF Processor thermal PCI Driver interface
0127 --------------------------------------------
0128 
0129 :file:`/sys/bus/pci/devices/0000\:00\:04.0/power_limits/`
0130 
0131 Refer to Documentation/power/powercap/powercap.rst for powercap
0132 ABI.
0133 
0134 ``power_limit_0_max_uw`` (RO)
0135         Maximum powercap sysfs constraint_0_power_limit_uw for Intel RAPL
0136 
0137 ``power_limit_0_step_uw`` (RO)
0138         Power limit increment/decrements for Intel RAPL constraint 0 power limit
0139 
0140 ``power_limit_0_min_uw`` (RO)
0141         Minimum powercap sysfs constraint_0_power_limit_uw for Intel RAPL
0142 
0143 ``power_limit_0_tmin_us`` (RO)
0144         Minimum powercap sysfs constraint_0_time_window_us for Intel RAPL
0145 
0146 ``power_limit_0_tmax_us`` (RO)
0147         Maximum powercap sysfs constraint_0_time_window_us for Intel RAPL
0148 
0149 ``power_limit_1_max_uw`` (RO)
0150         Maximum powercap sysfs constraint_1_power_limit_uw for Intel RAPL
0151 
0152 ``power_limit_1_step_uw`` (RO)
0153         Power limit increment/decrements for Intel RAPL constraint 1 power limit
0154 
0155 ``power_limit_1_min_uw`` (RO)
0156         Minimum powercap sysfs constraint_1_power_limit_uw for Intel RAPL
0157 
0158 ``power_limit_1_tmin_us`` (RO)
0159         Minimum powercap sysfs constraint_1_time_window_us for Intel RAPL
0160 
0161 ``power_limit_1_tmax_us`` (RO)
0162         Maximum powercap sysfs constraint_1_time_window_us for Intel RAPL
0163 
0164 :file:`/sys/bus/pci/devices/0000\:00\:04.0/`
0165 
0166 ``tcc_offset_degree_celsius`` (RW)
0167         TCC offset from the critical temperature where hardware will throttle
0168         CPU.
0169 
0170 :file:`/sys/bus/pci/devices/0000\:00\:04.0/workload_request`
0171 
0172 ``workload_available_types`` (RO)
0173         Available workload types. User space can specify one of the workload type
0174         it is currently executing via workload_type. For example: idle, bursty,
0175         sustained etc.
0176 
0177 ``workload_type`` (RW)
0178         User space can specify any one of the available workload type using
0179         this interface.
0180 
0181 DPTF Processor thermal RFIM interface
0182 --------------------------------------------
0183 
0184 RFIM interface allows adjustment of FIVR (Fully Integrated Voltage Regulator)
0185 and DDR (Double Data Rate)frequencies to avoid RF interference with WiFi and 5G.
0186 
0187 Switching voltage regulators (VR) generate radiated EMI or RFI at the
0188 fundamental frequency and its harmonics. Some harmonics may interfere
0189 with very sensitive wireless receivers such as Wi-Fi and cellular that
0190 are integrated into host systems like notebook PCs.  One of mitigation
0191 methods is requesting SOC integrated VR (IVR) switching frequency to a
0192 small % and shift away the switching noise harmonic interference from
0193 radio channels.  OEM or ODMs can use the driver to control SOC IVR
0194 operation within the range where it does not impact IVR performance.
0195 
0196 DRAM devices of DDR IO interface and their power plane can generate EMI
0197 at the data rates. Similar to IVR control mechanism, Intel offers a
0198 mechanism by which DDR data rates can be changed if several conditions
0199 are met: there is strong RFI interference because of DDR; CPU power
0200 management has no other restriction in changing DDR data rates;
0201 PC ODMs enable this feature (real time DDR RFI Mitigation referred to as
0202 DDR-RFIM) for Wi-Fi from BIOS.
0203 
0204 
0205 FIVR attributes
0206 
0207 :file:`/sys/bus/pci/devices/0000\:00\:04.0/fivr/`
0208 
0209 ``vco_ref_code_lo`` (RW)
0210         The VCO reference code is an 11-bit field and controls the FIVR
0211         switching frequency. This is the 3-bit LSB field.
0212 
0213 ``vco_ref_code_hi`` (RW)
0214         The VCO reference code is an 11-bit field and controls the FIVR
0215         switching frequency. This is the 8-bit MSB field.
0216 
0217 ``spread_spectrum_pct`` (RW)
0218         Set the FIVR spread spectrum clocking percentage
0219 
0220 ``spread_spectrum_clk_enable`` (RW)
0221         Enable/disable of the FIVR spread spectrum clocking feature
0222 
0223 ``rfi_vco_ref_code`` (RW)
0224         This field is a read only status register which reflects the
0225         current FIVR switching frequency
0226 
0227 ``fivr_fffc_rev`` (RW)
0228         This field indicated the revision of the FIVR HW.
0229 
0230 
0231 DVFS attributes
0232 
0233 :file:`/sys/bus/pci/devices/0000\:00\:04.0/dvfs/`
0234 
0235 ``rfi_restriction_run_busy`` (RW)
0236         Request the restriction of specific DDR data rate and set this
0237         value 1. Self reset to 0 after operation.
0238 
0239 ``rfi_restriction_err_code`` (RW)
0240         0 :Request is accepted, 1:Feature disabled,
0241         2: the request restricts more points than it is allowed
0242 
0243 ``rfi_restriction_data_rate_Delta`` (RW)
0244         Restricted DDR data rate for RFI protection: Lower Limit
0245 
0246 ``rfi_restriction_data_rate_Base`` (RW)
0247         Restricted DDR data rate for RFI protection: Upper Limit
0248 
0249 ``ddr_data_rate_point_0`` (RO)
0250         DDR data rate selection 1st point
0251 
0252 ``ddr_data_rate_point_1`` (RO)
0253         DDR data rate selection 2nd point
0254 
0255 ``ddr_data_rate_point_2`` (RO)
0256         DDR data rate selection 3rd point
0257 
0258 ``ddr_data_rate_point_3`` (RO)
0259         DDR data rate selection 4th point
0260 
0261 ``rfi_disable (RW)``
0262         Disable DDR rate change feature
0263 
0264 DPTF Power supply and Battery Interface
0265 ----------------------------------------
0266 
0267 Refer to Documentation/ABI/testing/sysfs-platform-dptf
0268 
0269 DPTF Fan Control
0270 ----------------------------------------
0271 
0272 Refer to Documentation/admin-guide/acpi/fan_performance_states.rst