Changes

Jump to: navigation, search

Thermal management (Axel)

2,140 bytes added, 15:12, 6 April 2016
Created page with "{{InfoBoxTop}} {{AppliesToAxel}} {{AppliesToAxelLite}} {{AppliesToAxelEsatta}} {{InfoBoxBottom}} __FORCETOC__ ==Software thermal protection== ===Axel Embedded Linux Kit=== T..."
{{InfoBoxTop}}
{{AppliesToAxel}}
{{AppliesToAxelLite}}
{{AppliesToAxelEsatta}}
{{InfoBoxBottom}}

__FORCETOC__

==Software thermal protection==
===Axel Embedded Linux Kit===
Two software thermal protection mechanisms are implemented. Both are based on the processor's temperature sensor. Being the product based on industrial version of iMX6, its maximum junction temperature (also denoted as Tj in the rest of the document) is 105°C.

At U-Boot level, automatic boot procedure is halted until Tj is smaller than (following temperatures might seem excessively low but they take into account the intrinsic poor precision of the temperature sensor to provide a reasonable safe margin).
*90°C for industrial grade processors
*?°C for grade processors


At Linux level, a more sophisticated protection mechanism - that can be accessed via <code>sysfs</code> - is implemented. For more details about this functionality, please refer to <code>Documentation/thermal/sysfs-api.txt</code> in the kernel sources.

Practically speaking, this mechanism makes use of two different thresholds, denoted as <code>trip_point0</code> and <code>trip_point1</code>. When Tj reaches <code>trip_point0</code>, Linux kernel scales down processor frequency:
<pre>
System is too hot. GPU3D will work at 1/64 clock.
</pre>

If Tj reaches <code>trip_point1</code>, a complete shutdown is triggered:
<pre>
thermal thermal_zone0: critical temperature reached(100 C),shutting down
</pre>

The following example shows how to read the values of the trip points:
<pre>
root@imx6qsabresd:~# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp
85000
root@imx6qsabresd:~# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp
100000
</pre>

This example shows how to set trip points 0 and 1 to 95°C and 100°C respectively:
<pre>
echo 95000 > /sys/class/thermal/thermal_zone0/trip_point_0_temp
echo 100000 > /sys/class/thermal/thermal_zone0/trip_point_1_temp
</pre>

To read current processor temperature please issue this command (reported temperature is 36.676°C):

<pre>
root@axel-lite:~# cat /sys/class/thermal/thermal_zone0/temp
36676
</pre>
4,650
edits

Navigation menu