Hi, all!
I think I found a bug in processor detection code.
as I see,
> > + /* OMAP3430 and OMAP3530 are assumed to be same.
> > + *
> > + * OMAP3525, OMAP3515 and OMAP3503 can be detected only based
> > + * on available features. Upon detection, update the CPU id
> > + * and CPU class bits.
> > + */
> > + if (omap3_has_iva() && omap3_has_sgx()) {
> > + strcpy(cpu_name, "3430/3530");
> > + }
> > + else if (omap3_has_sgx()) {
> > + omap_revision = OMAP3525_REV (rev);
> > + strcpy(cpu_name, "3525");
> > + }
> > + else if (omap3_has_iva()) {
> > + omap_revision = OMAP3515_REV (rev);
> > + strcpy(cpu_name, "3515");
> > + }
> > + else {
> > + omap_revision = OMAP3503_REV (rev);
> > + strcpy(cpu_name, "3503");
> > + }
But, actually, 3515 has no DSP, but has PowerVR,
and 3525 has no PowerVR but has DSP. In-tree code inverses this detection.
Please consider applying attached patch. (sorry, no git-send-email
available here).
From 93ac9c6b2dccb0cedb28414612ed2b1b77537dec Mon Sep 17 00:00:00 2001
From: Sergey Lapin <[email protected]>
Date: Mon, 16 Nov 2009 13:23:45 +0300
Subject: [PATCH] OMAP3: id code detection 3525 vs 3515
In current tree CPU detection of 3525 vs 3515 is reversed
Signed-off-by: Sergey Lapin <[email protected]>
---
arch/arm/mach-omap2/id.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index f48a4b2..2f97577 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -278,11 +278,11 @@ void __init omap3_cpuinfo(void)
/* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */
strcpy(cpu_name, "OMAP3430/3530");
} else if (omap3_has_sgx()) {
- omap_revision = OMAP3525_REV(rev);
- strcpy(cpu_name, "OMAP3525");
- } else if (omap3_has_iva()) {
omap_revision = OMAP3515_REV(rev);
strcpy(cpu_name, "OMAP3515");
+ } else if (omap3_has_iva()) {
+ omap_revision = OMAP3525_REV(rev);
+ strcpy(cpu_name, "OMAP3525");
} else {
omap_revision = OMAP3503_REV(rev);
strcpy(cpu_name, "OMAP3503");
--
1.6.5