This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: Linux thermal management question

Part Number: AM625
Other Parts Discussed in Thread: SK-AM62

Hi,

The customer is evaluating thermal behavior using below environment.
HW : SK-AM62 (PROC114E3)
SW : Linux SDK 8.5

Customer confirmed if an internal temp. sensor reaches 105C, the system shuts down to avoid thermal runaway.
(the board was heated externally.)

I thinks this is done by Linux thermal management.
The customer wants to disable the thermal management just for debug purpose.
Do we have such command from console?
Or the build image needs to be rebuild with some configuration changes?

Thanks and regards,
Koichiro Tashiro

  • Hi Tashiro-san,

    Yes, the thermal management can be disabled without rebuild Linux. Please following the the instruction below:

    Boot the SK-AM62 board from a SD card, stop at the U-Boot prompt and run the following commands:

    => run args_all args_mmc get_kern_mmc findfdt get_fdt_mmc
    => fdt addr $fdtaddr; fdt resize
    => fdt set /thermal-zones status disabled
    => run run_kern

  • Hi Bin,

    The customer tried above, but it seems the device stop working if the internal temp sensor reaches at 105C.
    After that, only temp values are on the log, but other operation, like 3D demo and HDMI output stops.


    The customer wants to keep the device operation even the temp sensor reaches 105C.
    The purpose is to check under which temperature the device actually hits thermal run away.
    Is this possible?

    Thanks and regards,
    Koichiro Tashiro

  • Hi Tashiro,

    I added two more commands as below. Please let the customer run this to see if it prevents the system to stop.

    => run args_all args_mmc get_kern_mmc findfdt get_fdt_mmc
    => fdt addr $fdtaddr; fdt resize
    => fdt set /thermal-zones status disabled
    => fdt set /thermal-zones/main0-thermal status disabled
    => fdt set /thermal-zones/main1-thermal status disabled
    => run run_kern

  • Hi Bin,

    The customer tried two more commands as you provided.
    Now the system seem to be working above 105C.
    But cat /sys/class/thermal/thermal_zone*/temp command does not work.
    Is this expected?


    The customer wants to monitor temp sensor values over 105C.
    Is there any way to keep temp sensor?
    Or is it possible to change thermal shut down temperature higher than 105C (ex. 140C)?

    Thanks and regards,
    Koichiro Tashiro

  • Tashiro-san

    Why would customer want to implement a thermal shutdown at 140C when they are using a device that is specified to run at 105C Tj?

  • Hi Mukul,

    The customer just wants to check how much temperature the device actually encount thermal runaway.
    This is just a debug purpose. They understood the device spec is 105C max.

    Thanks and regards,
    Koichiro Tashiro

  • Hi Tashiro-san,

    The U-Boot commands disabled the thermal zones in kernel, which also disabled the kernel thermal driver, that is why you cannot read the temperature anymore.

    I think it is possible to set the temp threshold very high so that the system won't shutdown but you can still read the temperature. Let me try it on my EVM tomorrow then send you the commands.

  • The following kernel device tree patch incresse the max temp to 205C:

    diff --git a/arch/arm64/boot/dts/ti/k3-am62-thermal.dtsi b/arch/arm64/boot/dts/ti/k3-am62-thermal.dtsi
    index b57ad63859ff..7e6ecf9d49c1 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62-thermal.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62-thermal.dtsi
    @@ -10,7 +10,7 @@ main0_thermal: main0-thermal {
     
                    trips {
                            main0_crit: main0-crit {
    -                               temperature = <105000>; /* milliCelsius */
    +                               temperature = <205000>; /* milliCelsius */
                                    hysteresis = <2000>; /* milliCelsius */
                                    type = "critical";
                            };
    @@ -24,7 +24,7 @@ main1_thermal: main1-thermal {
     
                    trips {
                            main1_crit: main1-crit {
    -                               temperature = <105000>; /* milliCelsius */
    +                               temperature = <205000>; /* milliCelsius */
                                    hysteresis = <2000>; /* milliCelsius */
                                    type = "critical";
                            };
    

  • Hi Tashiro-san,

    If you don't have the setup to rebuild kernel yet, please run the following U-Boot commands to increase the shutdown temperature instead:

    => run args_all args_mmc get_kern_mmc findfdt get_fdt_mmc
    => fdt addr $fdtaddr; fdt resize
    => fdt set /thermal-zones/main0-thermal/trips/main0-crit temperature <205000>
    => fdt set /thermal-zones/main1-thermal/trips/main1-crit temperature <205000>
    => run run_kern

  • Hi Bin,

    Thanks! It worked.

    Thanks and regards,
    Koichiro Tashiro