[U-Boot] [PATCH 0/4]: imx: mx6: use OTP for temperature grade and freq grade

Nikolay Dimitrov picmaster at mail.bg
Fri May 8 19:35:53 CEST 2015


Hi Tim,

On 05/08/2015 06:42 PM, Tim Harvey wrote:
> On Thu, May 7, 2015 at 11:57 PM, Markus Niebel <list-09_u-boot at tqsc.de> wrote:
>> Hello Tim,
>>
> <snip>
>>>>
>>>> IMX6Q automotive (1GHz capable) powering up at 800MHz:
>>>> - before:
>>>> CPU:   Freescale i.MX6Q rev1.2 at 792 MHz
>>>> - after Patch 1/4:
>>>> CPU:   Freescale i.MX6Q rev1.2 996 MHz (at 792 MHz)
>>>> - after Patch 3/4 (if CONFIG_IMX6_THERMAL defined)
>>>> CPU:   Freescale i.MX6Q rev1.2 automotive (-40C to 125C) 996 MHz (at 792 MHz)
>>>>
>>>> IMX6S industrial (800MHz capable) powering up at 800MHz:
>>>> - before:
>>>> CPU:   Freescale i.MX6SOLO rev1.2 at 792 MHz
>>>> - after Patch 1/4: (max speed == cur speed)
>>>> CPU:   Freescale i.MX6SOLO rev1.2 792 MHz
>>>> - after Patch 3/4 (if CONFIG_IMX6_THERMAL defined)
>>>> CPU:   Freescale i.MX6SOLO rev1.2 industrial (-40C to 105C) 792 MHz
>>>>
> <snip>
>>
>> Where do get the speed grade ant temperature grade information from i.MX6SOLO / DL from?
>> The fusemap in the reference manual says nothing about these info for SOLO / DL and a Freescale
>> FAE stated that these information is not present in the fuses for SOLO / DL.
>>
>> Regards,
>>
>> Markus
>>
>
> Markus,
>
> Your right - There is no indication in the IMX6SDLRM that OTP
> indicates either temperature grade 'or' speed grade, however my
> testing looks like they implement the same OTP settings for this as
> the IMX6DUAL/IMX6QUAD as indicated in the IMX6DQRM.
>
> I have tested these patches with the following SoC's I have available:
> - MCIMX6S7CVM08AC (IMX6S r1.2, Industrial temp, 800MHz) - shows
> 'industrial (-40C to 105C) 792 MHz' (correct)
> - MCIMX6S5EVM10AC (IMX6S r1.2, Extended Commercial temp, 1GHz) - shows
> 'extended commercial (-20C to 105C) 996 MHz (at 792 MHz)' (correct)
> - MCIMX6U7CVM08AB (IMX6DL r1.1, Industrial temp, 800MHz) - shows
> 'industrial (-40C to 105C) 792 MHz' (correct)
> - MCIMX6Q6AVT10AC (IMX6Q r1.2. Automotive temp, 1GHz) - shows
> 'automotive (-40C to 125C) 996 MHz (at 792 MHz)' (correct)
>
> I'll send our FAE a question to verify - perhaps your FAE simply
> answered the questions based on the reference manual (which is
> notoriously lacking info and in some cases wrong).
>
> I encourage anyone with additional parts to test these patches and
> report if they show accurate information. If anyone has any IMX6SX I
> would appreciate removing the check that ignores the OTP for that and
> seeing if the results make sense.

Here are the results from riotboard (imx6s) testing with your patches
against Stefano's tree:


Before:
CPU:   Freescale i.MX6SOLO rev1.1 at 792 MHz

After patch 1:
CPU:   Freescale i.MX6SOLO rev1.1 996 MHz (at 792 MHz)

After patch 2:
CPU:   Freescale i.MX6SOLO rev1.1 996 MHz (at 792 MHz)

After patch 3:
CPU:   Freescale i.MX6SOLO rev1.1 // No idea why I lost the MHz values

After patch 4:
CPU:   Freescale i.MX6SOLO rev1.1


MHz values are missing after patch 3, and looking diagonally at the
code I don't see a reason. Next, riotboard doesn't have
CONFIG_IMX6_THERMAL by default. When added, I get this:


$ make u-boot.imx
...
   OBJCOPY examples/standalone/hello_world.bin
   LDS     u-boot.lds
   LD      u-boot
arch/arm/imx-common/built-in.o: In function `print_cpuinfo':
/home/picmaster/work/u-boot-imx/arch/arm/imx-common/cpu.c:196: undefined 
reference to `uclass_get_device'
/home/picmaster/work/u-boot-imx/arch/arm/imx-common/cpu.c:198: undefined 
reference to `thermal_get_temp'
drivers/built-in.o: In function `imx_thermal_probe':
/home/picmaster/work/u-boot-imx/drivers/thermal/imx_thermal.c:155: 
undefined reference to `dev_get_platdata'
/home/picmaster/work/u-boot-imx/drivers/thermal/imx_thermal.c:156: 
undefined reference to `dev_get_priv'
drivers/built-in.o: In function `read_cpu_temperature':
/home/picmaster/work/u-boot-imx/drivers/thermal/imx_thermal.c:46: 
undefined reference to `dev_get_platdata'
/home/picmaster/work/u-boot-imx/drivers/thermal/imx_thermal.c:48: 
undefined reference to `dev_get_priv'
drivers/built-in.o: In function `imx_thermal_get_temp':
/home/picmaster/work/u-boot-imx/drivers/thermal/imx_thermal.c:127: 
undefined reference to `dev_get_priv'
ld.bfd: BFD (GNU Binutils for Debian) 2.22 assertion fail 
../../bfd/elf32-arm.c:7498
ld.bfd: BFD (GNU Binutils for Debian) 2.22 assertion fail 
../../bfd/elf32-arm.c:7498
ld.bfd: BFD (GNU Binutils for Debian) 2.22 assertion fail 
../../bfd/elf32-arm.c:7498
ld.bfd: BFD (GNU Binutils for Debian) 2.22 assertion fail 
../../bfd/elf32-arm.c:7498
ld.bfd: BFD (GNU Binutils for Debian) 2.22 assertion fail 
../../bfd/elf32-arm.c:13830
Segmentation fault
make: *** [u-boot] Error 139


Are there additional CONFIG dependencies?

Regards,
Nikolay


More information about the U-Boot mailing list