[U-Boot] [PATCH] mx31: Improve the handling of unidentified silicon version
Fabio Estevam
fabio.estevam at freescale.com
Wed Jun 15 13:50:28 CEST 2011
Hi Stefano,
On 6/15/2011 2:29 AM, Stefano Babic wrote:
...
>
> Why is the new output better as we have now ? You drop the output of
> the srev register, and then we cannot get which strange silicon version
> is running without patching the code.
Let me try to explain the problem I see with the current silicon detection mechanism:
On my board (srev=0x28), which is a TO2.0 silicon I get:
CPU: Freescale i.MX31 rev 2.0 at 531 MHz.Reset cause: WDOG
On Felix´s MX31ADS board (srev=0x20) (unknown chip version) he gets:
CPU: Freescale i.MX31 rev 2.0 unknown at 531 MHz.Reset cause: WDOG
Reading rev 2.0 on Felix´s case is misleading IMHO as we tend to think that we have a TO2.0 silicon on his board even though we get a "unknown" string.
The reason of this is that we currently return the .v struct when the silicon version is detected and the srev version when it is not recognized.
>> if (srev == mx31_cpu_type[i].srev)
>> return mx31_cpu_type[i].v;
>>
>> - return srev | 0x8000;
>> + return 0x8000;
>
> IMHO in the case the revision is not recognized, it is better to print
> the value of the srev register, as it is done now.
Yes, agreed, but we should print srev as an hex number instead of a string as done today
If you agree I can implement the following logic:
When the chip version is detected let´s just leave as it is today:
CPU: Freescale i.MX31 rev 2.0 at 531 MHz.Reset cause: WDOG
When the chip version is not valid, then we print:
CPU: Freescale i.MX31 (unknown rev, srev=0x20) at 531 MHz.Reset cause: WDOG
Please let me know what you think about this proposal.
Thanks,
Fabio Estevam
More information about the U-Boot
mailing list