About the Thermal driver on AndroidKK4.4.3 for MX6Q_SABRE-SDB

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

About the Thermal driver on AndroidKK4.4.3 for MX6Q_SABRE-SDB

Jump to solution
1,309 Views
yuuki
Senior Contributor II

Dear all,


We test AndroidKK4.4.3 in MX6Q_SABRE-SDB

When CPU load increases, case temperature repeats 92 degrees Celsius and 82 degrees Celsius.

I understand that AndroidKK4.4.3 has Thermal driver.
I referred to the following. Each parameter was as follows.
(I used a cat command.)

root@sabresd_6dq:/sys/class/thermal/thermal_zone0

temp   ===> 34918
trip_point_0_temp ===> 85000
trip_point_0_type ===> passive
trip_point_1_temp ===> 100000
trip_point_1_type ===> critical

I understand that frequency of CPU and GPU are decreased when the temperature of the CPU reached 85 degrees Celsius.

I was able to change a value of trip_point_0_temp by using echo command.

   echo 90000 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp

However, I do not understand the change method of the frequency value of CPU and GPU.
Would you tell me the method to set the decreased the frequency of CPU and GPU?

Best Regards,
Yuuki

Labels (2)
0 Kudos
1 Solution
846 Views
igorpadykov
NXP Employee
NXP Employee

Hi Yuuki

for frequency changing procedure one can look at driver sources, described

in attached Linux Manual Chapter 26 Thermal Driver. Usually it is changing

CCM dividers, like arm_podf in CACRR[ARM_PODF].

Also Linux Power Management Features described at p.48

Application Note AN4579 (Rev. 0, 11/2012)

"i.MX 6 Series Thermal Management Guidelines"

http://www.freescale.com/files/32bit/doc/app_note/AN4579.pdf

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
4 Replies
847 Views
igorpadykov
NXP Employee
NXP Employee

Hi Yuuki

for frequency changing procedure one can look at driver sources, described

in attached Linux Manual Chapter 26 Thermal Driver. Usually it is changing

CCM dividers, like arm_podf in CACRR[ARM_PODF].

Also Linux Power Management Features described at p.48

Application Note AN4579 (Rev. 0, 11/2012)

"i.MX 6 Series Thermal Management Guidelines"

http://www.freescale.com/files/32bit/doc/app_note/AN4579.pdf

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
846 Views
yuuki
Senior Contributor II

Dear Igor-san,

Thank you for your support.

I referred to the AN4579.pdf document.
I compare it with imx_thermal.c.

For Thermal Monitor & Protection(P.63),

<Question1>
I understood it as follows.
Is my understanding right?

===============================================

- "Critical" means "IMX_TEMP_CRITICAL" in "imx_thermal.c".
- "Hot" means "IMX_TEM_PASSIVE".
- "Active" means "IMX_TEM_PASSIVE_COOL_DELTA"

===============================================

<Question2>
There are the following descriptions in "Critical".
"The thermal driver checks the temperature, and only permits the system to boot up if the temperature is below 80 ˚ C."

Does "80 ˚ C" mean temperature set in "Active"(IMX_TEM_PASSIVE_COOL_DELTA)?

<Question3>

Can I know it when a system reboots because die temperature reaches the Critical threshold?
(Is there the means that I know it?)

Best Regards,
Yuuki

0 Kudos
846 Views
igorpadykov
NXP Employee
NXP Employee

Hi Yuuki

1.2. I think you are right.

3.  it is not possible to know that system reboots because die temperature.

Sources of reset are saved in SRC_SRSR, in general customer can add own

flag (indicating thermal reboot, modifying thermal driver) saved in some register,

like SRC_GPR10.

Best regards

igor

0 Kudos
846 Views
edward_fu
Contributor III
I don't know why trip_point_x_type  is different in Linux OS and Android OS.
I have tested Linux and Android device.
In Linux device, there are two trip point types as follow:
   trip_point_0_temp ===> 85000
   trip_point_0_type ===> passive
   trip_point_1_temp ===> 105000
   trip_point_1_type ===> critical
But in Android device, there are three trip point types as follow:
   trip_point_0_temp ===> 100
   trip_point_0_type ===> critical
   trip_point_1_temp ===> 90
   trip_point_1_type ===> hot
   trip_point_2_temp ===> 80
   trip_point_2_type ===> active
I'm sure that I haven't modified the kernel source code(drivers/thermal/imx_thermal.c)
0 Kudos