Device/SoC: AM6254ATCGGAALW
Use case: HMI (graphics UI), without active cooling
Form factor: Custom SMARC-size SoM + carrier (EVM-SK2-like schematic, same PMIC & active parts)
Operating point: CPU @ 1 GHz (extended industrial range)
Goal: Stable operation at 70C ambient
SW stack: Yocto-built Linux 6.1.83, Qt 6.6.3 (no vendor SDK changes beyond board enablement)
Thermal readout: Linux thermal zones (cat /sys/class/thermal/thermal_zone*/temp) — die sensors
Symptoms / Measurements
All temps are junction temps from on-die sensors (°C). Ambient measured with calibrated probe.
|
Scenario |
Ambient |
Heatsink |
Enclosure |
Reported Die Temp (C) |
|
Open bench |
25 |
No |
No |
~60 |
|
Open bench |
70 |
No |
No |
~86 |
|
Open bench |
70 |
Yes (heatsink covers full SMARC module) |
No |
~88 |
|
Open bench with stress-ng |
70 |
Yes |
No |
96-100 |
|
Enclosed (HMI box) without stress-ng |
70 |
Yes |
Yes |
~102 |
Notes:
- Reducing CPU core clock and even stopping cores did not meaningfully reduce reported die temperature.
- GPU/DDR/display active as per normal HMI workload.
Questions to TI
- How can we effectively reduce the operating temperature on AM6254 in this configuration (kernel 6.1.83, 1 GHz OPP, HMI workload)?
- Recommended DVFS/cooling-device settings, trip points, or kernel config for AM62x?
- Any guidance on which thermal zones correspond to CPU vs. GPU vs. SoC/PMIC sensors on AM62x so we can target the right hotspots?
- Why does the die temperature increase further inside the enclosure (70C ambient in a closed box results in ~102C reported die temp), even with a full-module heatsink?
- We’d appreciate an explanation specific to AM62x package/PMIC/display heat paths and enclosure effects (conduction paths, recirculation, LCD backlight, PMIC proximity, etc.).
What we’ve already tried
- Lowered CPU frequency and disabled cores → negligible change in die temp readings under the same ambient.
- Bench vs. enclosed comparisons (data above).
- Basic heatsink that spans the SMARC module top surface.
Environment Details
- Schematic: Based on EVM-SK-AM62 (PMIC and all other active components match reference).
- Thermal readouts:
- for z in /sys/class/thermal/thermal_zone*; do
- echo -n "$(basename $z): "; cat $z/type; cat $z/temp
- done
- CPUFreq/OPP info:
- cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
- cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
- Loads while measuring: Qt HMI running , display active;
Requested TI Guidance
- Recommended thermal design power (TDP) budgeting and junction-to-ambient guidance for AM6254 at 1 GHz in 70C ambient, including:
- Heatsink selection (theta_sa targets), TIM recommendations, and whether heat spreader + case conduction is advisable for SMARC.
- Any AM62x-specific DVFS tables, cooling-device bindings, or passive cooling policies we should enable in DT/Kconfig.
- Clarification on thermal sensor calibration and accuracy in Linux for AM62x (do we need any eFuse/trim enablement in DT/driver?).
- Mapping of thermal_zoneN → sensor/function on AM6254 (CPU, GPU, DDR, SoC, etc.).
- Confirmation that reported temps (~86–102C at 70C ambient under HMI load) are expected / out-of-family, and suggested target junction limits for our grade.
Thanks in advance for guidance on AM6254 thermal best practices for HMI at high ambient.