WEC7 IMX6 Colibri is running hot

Colibri IMX6 module is reporting over 80 degrees temperature when only WEC7 is running. I haven’t started any applications. That leaves almost zero space for loading the module until 85 degrees is reached and CPU starts limiting operating frequency. Environment temp is 25.
When IMX6 is running Linux without applications CPU temp is 47.
This does not look possible but that is what CPU temperature measurement indicates.

Any ideas about this problem?

Can you please let us know what version of OS and bootloader do you have.

CE7 1.2b6 bootloader and 1.2b6 image from toradex support site.
Hardware is Colibri IMX6DL running in IRIS board.
Highest internal temp that I have seen this far when CE is idle is 88 and surface of chip was then 70.
Lowest internal temp that I have seen this far when CE is idle is 77 and surface of chip was then 65.
I have external sensor on surface.

When I use testapp to cause 100% load for CPU is heats over 90

20 minutes ago I installed Ångström Linux on same module on same IRIS board.
Internal temp is now 54 and surface 44
Linux is sitting at shell with no applications running

It takes about 20minutes for the temp to stabilize

We have been using Colibri T20 with CE6 for years.
In typical situation when our application is running CPU frequency is 450…650MHz and core temperature is 55.


How do you measure temperature? I measure around 70 when only OS is running.

Also there is no power optimizations yet on iMX6. When this will be done it will run at lower temperatures.

I am using sample source code from Toradex forum. It reads temperature from CPU registers.
Surface temperature is measured with NTC thermistor glued to thin copper plate which I install on top of CPU chip.
When Linux is installed I use command

cat /sys/devices/virtual/thermal/thermal_zone0/temp.

I have now tested also Linux when it is stressed by too applications in eternal loop causing 200% loading according to top command. Core temp is never higher that 78

Currently, the Windows CE BSP does not support all the clocking/voltage management features of the CPU and this may lead to higher temperatures compared to what you can measure on Linux.
We never had shutdowns or other unexpected behaviors, since those temperatures are still inside the acceptable range for the CPU.
We anyway have support for DVFS on our roadmap and we plan to work on this to reduce CPU temperatures in those scenarios.

Our current product does not have local display.
How can I disable display hardware of Colibri IMX6 running CE7 to reduce heat production?
Removing display support from image is not possible because it requires removing lot’s of necessary features (eg. Net framework)

You can set clocking bits inside CCM_CCGR* registers to 0.
For example you can clear bits 26-27 and 24-25 in CCM_CCGR1(0x020C406) to disable 2d-3d acceleration and bits 12-13-14-15 in CCM_CCGR3 (0x020C4074) to disable LDB (display clock) and bits 0-5 in same register to disable IPU (image processing unit) clocks.
You can also disable clocks of other devices that you don’t use to reduce overall power consumption.
My suggestion is to use our register access tool:
to test clearing the different bits controlling the clock, since some may have side effects on your device.
Once you have found the right combination you can add the settings in your application using our mapmem library.