ORCA SOM/ORCA Hardware/Electrical Thermal and Mechanical Features/Thermal management and heat dissipation

From DAVE Developer's Wiki
Jump to: navigation, search
History
Issue Date Notes

2021/02/04

First release

2023/12/28

Add thermography picture
2025/04/04 Add software thermal management guideline


Thermal management[edit | edit source]

The ORCA SOM is designed to support the maximum available temperature range declared by the manufacturer.

The customer shall define and conduct a reasonable number of tests and verification in order to qualify the DUT capabilities to manage the heat dissipation.

Any heatsink, fan etc shall be defined case by case.

DAVE Embedded Systems' team is available for any additional information, please contact sales@dave.eu.

A general overview snapshot[edit | edit source]

For your information, please see below a snapshot in stress conditions (with about 10W power consumption) with a standard heatsink on top of SOC:

Tcam mito top IR.jpg

Software thermal protection[edit | edit source]

In DESK-MX8M-L, the software thermal protection mechanisms are implemented. These are based on the processor's temperature sensor. It is worth remembering that the maximum junction temperature (also denoted as Tj in the rest of the document) is:

  • 95°C for commercial parts
  • 105°C for industrial parts

At Linux level, a sophisticated protection mechanism is implemented. Please refer to the following sections for more details.

The default temperature thresholds depend on the silicon grade, as follows:

  • for commercial parts
    • passive threshold: 85°C
    • critical threshold: 90°C
  • for industrial parts
    • passive threshold: 95°C
    • critical threshold: 100°C

Practically speaking, for DESK-MX8M-L, this mechanism makes use of two different thresholds, denoted as trip_point0 (also known as passive threshold) and trip_point1 (also known as critical threshold).

When Tj reaches trip_point0, Linux kernel scales down processor frequency:

System is too hot. GPU3D will work at 1/64 clock.

while when the temperature will decrease below the threshold, the procerr frequency will be restored:

Hot alarm is canceled. GPU3D clock will return to 64/64

If Tj reaches trip_point1, a complete shutdown is triggered:

thermal thermal_zone0: critical temperature reached(100 C),shutting down

By default, temperature thresholds are set up in the processor include device tree file freescale/imx8mp.dtsi as follows:

	thermal-sensors = <&tmu 0>;
	trips {
		cpu_alert0: trip0 {
			temperature = <85000>;
			hysteresis = <2000>;
			type = "passive";
		};
			cpu_crit0: trip1 {
			temperature = <95000>;
			hysteresis = <2000>;
			type = "critical";
		};
	};

i.e.

  • trip_point0: 85°C
  • trip_point1: 95°C.

From user space, trip point thresholds can be accessed via sysfs interface. The following example shows how to read the values of the trip points:

root@desk-mx8mp:~# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp
85000
root@desk-mx8mp:~# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp
95000
root@desk-mx8mp:~#

This example shows how to set trip points 0 and 1 to 80°C and 90°C respectively:

echo 80000 > /sys/class/thermal/thermal_zone0/trip_point_0_temp
echo 900000 > /sys/class/thermal/thermal_zone0/trip_point_1_temp
200px-Emblem-important.svg.png

Please note that

  • it is possible to set up trip points greater than the maximum junction temperature indicated by manufacturer's datasheet
  • exceeding the maximum junction temperature indicated by manufacturer's datasheet may cause permanent damage

To read the current processor temperature, please issue this command (reported temperature is 46°C in the example):

root@desk-mx8mp:~# cat /sys/class/thermal/thermal_zone0/temp
46000
root@desk-mx8mp:~#

please note that the value read has to be divided by 1000.

For more details about this functionality, please refer to Documentation/driver-api/thermal/sysfs-api.rst in the kernel sources.

Thermal management guideline[edit | edit source]

A thermal management guideline is available from NXP at the this link.

As reported in the i.MX8M Plus Reference Manual, the Thermal Monitoring Unit (TMU) internal to the SoC reports the two temperature measurement sites on the chip. The main probe is inside the ANAMIX, while the remote probe is near the ARM core.