: imx: mx6: use OTP for temperature grade and freq grade
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest0 of 4 patches 0 repliesNew
Patches in v1 No applies recorded yet
None of the 4 patches the cover letter announces are in this archive.
Reviews trailers per patch
| Patch | Nikolay Dimitrov |
|---|---|
| Series | T-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [U-Boot] [PATCH 0/4]: imx: mx6: use OTP for temperature grade and freq grade
Hi Tim,
Quoted 49 lines · Tim Harvey
Quoted 2 lines · Markus Niebel
Hello Tim,
<snip>
Quoted 17 lines
Quoted 17 lines
Quoted 17 lines
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 (ifCONFIG_IMX6_THERMALdefined)
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 (ifCONFIG_IMX6_THERMALdefined)
CPU: Freescale i.MX6SOLO rev1.2 industrial (-40C to 105C) 792 MHz<snip>
Quoted 9 lines
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)
Quoted 8 lines
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