RFC: Updating i.MX8M CPU thermal trip-point at runtime

Andrejs Cainikovs andrejs.cainikovs at toradex.com
Wed Apr 13 14:24:00 CEST 2022


Hi everyone,

Recent issue that I had to deal with sparkled a discussion within my 
team, and seems like we are not sure what would be a proper way to go, 
even if there are multiple ways to do it. We decided to ask this 
question to open-source community, in case someone has thoughts about it.

At Toradex we have multiple computer on modules, each of those has few 
variants - different memory sizes, with or without WiFi/BT, etc. One of 
the options is also a temperature grade - IT and non-IT. Obviously, we 
want to keep number of device trees as minimal as possible, since number 
of device trees grows exponentially if we add a new option via device 
tree, i.e. imx8mm-verdin-it-wifi-dev.dts + imx8mm-verdin-nonit-wifi-dev.dts.

Hence, we are working on a change that would update trips temperatures 
in Linux device tree on the fly, setting them to whatever is read from 
CPU fuses. Now, the question is - where would be the best place to do 
it? So far we were thinking about following options:

- Patching U-Boot thermal driver so that it would propagate max 
temperature to Linux device tree.
- Patching U-Boot board files to update Linux device tree via 
ft_board_setup(). This, however, will result in a duplicate code among 
different boards within same SoC family.
- Anything else not listed here.

I would appreciate any comments or thoughts regarding this topic. Thanks,

Best regards,
Andrejs Cainikovs.


More information about the U-Boot mailing list