From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nikolay Dimitrov Date: Fri, 08 May 2015 20:35:53 +0300 Subject: [U-Boot] [PATCH 0/4]: imx: mx6: use OTP for temperature grade and freq grade In-Reply-To: References: <1430235865-17808-1-git-send-email-tharvey@gateworks.com> <553FBF26.4030006@denx.de> <554C5E3C.8080208@tqsc.de> Message-ID: <554CF3F9.10702@mail.bg> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Tim, On 05/08/2015 06:42 PM, Tim Harvey wrote: > On Thu, May 7, 2015 at 11:57 PM, Markus Niebel wrote: >> Hello Tim, >> > >>>> >>>> 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 >>>> > >> >> 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