16bbe6f57SMauro Carvalho Chehab=================================== 223be63f4SSrinivas PandruvadaKernel driver: x86_pkg_temp_thermal 36bbe6f57SMauro Carvalho Chehab=================================== 423be63f4SSrinivas Pandruvada 523be63f4SSrinivas PandruvadaSupported chips: 66bbe6f57SMauro Carvalho Chehab 723be63f4SSrinivas Pandruvada* x86: with package level thermal management 86bbe6f57SMauro Carvalho Chehab 923be63f4SSrinivas Pandruvada(Verify using: CPUID.06H:EAX[bit 6] =1) 1023be63f4SSrinivas Pandruvada 1123be63f4SSrinivas PandruvadaAuthors: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> 1223be63f4SSrinivas Pandruvada 1323be63f4SSrinivas PandruvadaReference 146bbe6f57SMauro Carvalho Chehab--------- 156bbe6f57SMauro Carvalho Chehab 1623be63f4SSrinivas PandruvadaIntel® 64 and IA-32 Architectures Software Developer’s Manual (Jan, 2013): 1723be63f4SSrinivas PandruvadaChapter 14.6: PACKAGE LEVEL THERMAL MANAGEMENT 1823be63f4SSrinivas Pandruvada 1923be63f4SSrinivas PandruvadaDescription 206bbe6f57SMauro Carvalho Chehab----------- 2123be63f4SSrinivas Pandruvada 2223be63f4SSrinivas PandruvadaThis driver register CPU digital temperature package level sensor as a thermal 2323be63f4SSrinivas Pandruvadazone with maximum two user mode configurable trip points. Number of trip points 2423be63f4SSrinivas Pandruvadadepends on the capability of the package. Once the trip point is violated, 2523be63f4SSrinivas Pandruvadauser mode can receive notification via thermal notification mechanism and can 2623be63f4SSrinivas Pandruvadatake any action to control temperature. 2723be63f4SSrinivas Pandruvada 2823be63f4SSrinivas Pandruvada 2923be63f4SSrinivas PandruvadaThreshold management 3023be63f4SSrinivas Pandruvada-------------------- 3123be63f4SSrinivas PandruvadaEach package will register as a thermal zone under /sys/class/thermal. 326bbe6f57SMauro Carvalho Chehab 336bbe6f57SMauro Carvalho ChehabExample:: 346bbe6f57SMauro Carvalho Chehab 3523be63f4SSrinivas Pandruvada /sys/class/thermal/thermal_zone1 3623be63f4SSrinivas Pandruvada 3723be63f4SSrinivas PandruvadaThis contains two trip points: 386bbe6f57SMauro Carvalho Chehab 3923be63f4SSrinivas Pandruvada- trip_point_0_temp 4023be63f4SSrinivas Pandruvada- trip_point_1_temp 4123be63f4SSrinivas Pandruvada 4223be63f4SSrinivas PandruvadaUser can set any temperature between 0 to TJ-Max temperature. Temperature units 43*eaf7b460SMauro Carvalho Chehabare in milli-degree Celsius. Refer to "Documentation/driver-api/thermal/sysfs-api.rst" for 4423be63f4SSrinivas Pandruvadathermal sys-fs details. 4523be63f4SSrinivas Pandruvada 4623be63f4SSrinivas PandruvadaAny value other than 0 in these trip points, can trigger thermal notifications. 4723be63f4SSrinivas PandruvadaSetting 0, stops sending thermal notifications. 4823be63f4SSrinivas Pandruvada 496bbe6f57SMauro Carvalho ChehabThermal notifications: 506bbe6f57SMauro Carvalho ChehabTo get kobject-uevent notifications, set the thermal zone 516bbe6f57SMauro Carvalho Chehabpolicy to "user_space". 5223be63f4SSrinivas Pandruvada 536bbe6f57SMauro Carvalho ChehabFor example:: 5423be63f4SSrinivas Pandruvada 556bbe6f57SMauro Carvalho Chehab echo -n "user_space" > policy 56