[U-Boot] [PATCH v2 3/4] imx: mx6: add display of CPU temperature grade in print_cpuinfo()

Tim Harvey tharvey at gateworks.com
Fri May 15 15:31:26 CEST 2015


On Fri, May 15, 2015 at 6:24 AM, Stefano Babic <sbabic at denx.de> wrote:
> Hi Tim,
>
> On 15/05/2015 15:16, Tim Harvey wrote:
>> On Fri, May 15, 2015 at 1:14 AM, Christian Gmeiner
>> <christian.gmeiner at gmail.com> wrote:
>>> 2015-05-14 7:11 GMT+02:00 Tim Harvey <tharvey at gateworks.com>:
>>>> When CONFIG_IMX6_THERMAL is defined print the CPU temperature grade info
>>>> along with the current temperature.
>>>>
>>>> Before:
>>>>  CPU:   Temperature 42 C
>>>>
>>>> After:
>>>>  CPU:   Automotive temperature grade (-40C to 125C) at 42C
>>>>  CPU:   Industiral temperature grade (-40C to 105C) at 42C
>>>>  CPU:   Extended Commercial temperature grade (-20C to 105C) at 42C
>>>>
>>>> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
>>>> ---
>>>> v2:
>>>>  - moved display of CPU temperature grade to own patch and combined with the
>>>>    current temperature from the thermal sensor driver
>>>>  - add example output to description
>>>>
>>>> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
>>>> ---
>>>>  arch/arm/imx-common/cpu.c | 27 +++++++++++++++++++++++----
>>>>  1 file changed, 23 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/arch/arm/imx-common/cpu.c b/arch/arm/imx-common/cpu.c
>>>> index 6b20482..f1b49bb 100644
>>>> --- a/arch/arm/imx-common/cpu.c
>>>> +++ b/arch/arm/imx-common/cpu.c
>>>> @@ -16,6 +16,7 @@
>>>>  #include <asm/arch/clock.h>
>>>>  #include <asm/arch/sys_proto.h>
>>>>  #include <asm/arch/crm_regs.h>
>>>> +#include <imx_thermal.h>
>>>>  #include <ipu_pixfmt.h>
>>>>  #include <thermal.h>
>>>>  #include <sata.h>
>>>> @@ -146,7 +147,7 @@ int print_cpuinfo(void)
>>>>
>>>>  #if defined(CONFIG_MX6) && defined(CONFIG_IMX6_THERMAL)
>>>>         struct udevice *thermal_dev;
>>>> -       int cpu_tmp, ret;
>>>> +       int cpu_tmp, minc, maxc, ret;
>>>>  #endif
>>>>
>>>>         cpurev = get_cpu_rev();
>>>> @@ -172,16 +173,34 @@ int print_cpuinfo(void)
>>>>  #endif
>>>>
>>>>  #if defined(CONFIG_MX6) && defined(CONFIG_IMX6_THERMAL)
>>>> +       puts("CPU:   ");
>>>> +       if (!is_cpu_type(MXC_CPU_MX6SX)) {
>>>> +               switch (get_cpu_temp_grade(&minc, &maxc)) {
>>>> +               case TEMP_AUTOMOTIVE:
>>>> +                       puts("Automotive temperature grade ");
>>>> +                       break;
>>>> +               case TEMP_INDUSTRIAL:
>>>> +                       puts("Industrial temperature grade ");
>>>> +                       break;
>>>> +               case TEMP_EXTCOMMERCIAL:
>>>> +                       puts("Extended Commercial temperature grade ");
>>>> +                       break;
>>>> +               default:
>>>> +                       puts("Commercial temperature grade ");
>>>> +                       break;
>>>> +               }
>>>> +               printf("(%dC to %dC)", minc, maxc);
>>>> +       }
>>>
>>> For the additions above we do not need CONFIG_IMX6_THERMAL.
>>
>> Hi Christian,
>>
>> Thanks for the review.
>>
>> Its true that CONFIG_IMX6_THERMAL is not needed for cpu temperature
>> grade but I felt that there would be resistance in general to adding
>> additional lines in print_cpuinfo without allowing them to be easily
>> disabled.
>
> Agree on this point.
>
>> I felt that temperature grade and current temperature made
>> sense to go together in this fasion.
>>
>> Looking over this though did remind me that now that Freescale has
>> told me that the IMX6SX has the same OTP registers/definitions for
>> temperature grade programmed I can remove the skip for MX6SX. I would
>> however sure like to have someone with an actual MX6SX enable that
>> code and give us some testing feedback.
>>
>
> Right. My proposal is to merge the currrent patchset, enabling for
> IMX6SX again when someone will test it.
>
> Best regards,
> Stefano Babic
>

Stefano,

Yes, that sounds like the best approach. What were your thoughts on
enabling the second CPU: line just to display the temperature grade if
CONFIG_IMX6_THERMAL was not enabled?

I'm surprised someone on this list hasn't already tested this on IMX6SX.

Fabio - certainly you must have a reference board with an IMX6SX and
could enable/test that the CPU markings agree with what is
detected/displayed via OTP?

Tim


More information about the U-Boot mailing list