on the iMX6Q there is a fuse from which you can read the temperature grade of the CPU. It can be found in the reference manual in chapter 5.2 ("Fusemap Description Table") and is located at fuse address 0x480[7:6].
For the iMX6SDL, there is no such fuse documented. I tried reading the same address, hoping that the information is there and just undocumented, but I had no luck. The according address reads 0 (= "consumer") on my device, but I know it is an "extended consumer" device.
Is there a way to find out the temperature grade of an iMX6SDL via software?
I just saw that the speed grading is not available on the iMX6SDL, either.
There should be a way to determine temperature and speed grade at runtime, shouldn't it?
So how can I do that?
I’m sorry for the delay. The fuse location and bit registers are the same for S/DL as for the D/Q devices. This has already been escalated so it gets added to the next release of the S/DL Reference Manual.
Would you please confirm if the register values do match?
Thanks for your reply. Does this apply to temperature grade or speed grade or both? Are only the fuse addresses the same, or the values too?
As I said, I tried reading fuse address 0x480[7:6] (which is temperature grade on the iMX6DQ) on an iMX6SDL. I expected to read a "1" (= "Extended Commercial", that is my device), but I got a "0" (= "Commercial"). Thus, I assume that 0x480[7:6] does not report the temperature grade on the iMX6SDL, or the interpretation of the bits is different.
This is the part number of my device: MCIMX6S5EVM10AB
I am using Linux kernel 3.0.35 and tried:
which returns 0x0.
On an i.MX6DQ Extended Consumer device (MCIMX6D5EYM10AC) I am reading a correct value 0x40 here.