Skip to contentSkip to conversation

Tony mostly offline for the rest of July

PATCH Superseded Tony Lindgren 3 participants 13 messages Jul 8, 2010 – Aug 4, 2010

Subsystems (3)
lore
Share & tools
lore

Tony Lindgren

author maintainer
#0 lore raw

Hi all,

FYI, I'll be mostly offline after Friday for several weeks.

I'll post few more patchsets for review, but will not be merging any other omap code after that for the upcoming merge window.

Cheers,

Tony

#1 lore raw
Quoted 10 lines · Tony Lindgren

Hi all,

FYI, I'll be mostly offline after Friday for several weeks.

I'll post few more patchsets for review, but will not be merging any other omap code after that for the upcoming merge window.

Cheers,

Tony

Tony,

The 3630 ES1.1 ID code patch is pending in patchworks for a while [1].

I missed pinging you on this earlier. It would be nice to queue this up for the merge window as well.

https://patchwork.kernel.org/patch/95684/

Also, we now have ES1.2 silicon as well; should I submit an updated patch now, or just a delta patch later?

- Anand

author maintainer
#2 lore raw
Quoted 10 lines · Gadiyar, Anand
Quoted 9 lines · Tony Lindgren

Hi all,

FYI, I'll be mostly offline after Friday for several weeks.

I'll post few more patchsets for review, but will not be merging any other omap code after that for the upcoming merge window.

Cheers,

Quoted 8 lines
Quoted 1 line

Tony

Tony,

The 3630 ES1.1 ID code patch is pending in patchworks for a while [1].

I missed pinging you on this earlier. It would be nice to queue this up for the merge window as well.

OK, that's good to have.

Quoted 6 lines

https://patchwork.kernel.org/patch/95684/

Also, we now have ES1.2 silicon as well; should I submit an updated patch now, or just a delta patch later?

Please reply to this thread with your updated patch.

Also, we should not drop the default handling for unknown hawkeye registers.

Regards,

Tony

#3 lore raw

PATCH 1/1 OMAP3630: Add ES1.1 and ES1.2 detection

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Cc Nishanth Menon <[email protected]>
Cc Manjunatha GK <[email protected]>
Cc Tony Lindgren <[email protected]>

---
This is based on Manju's original patch at [1] and my update [2]. The original patch failed to properly update the CHIP_GE_OMAP3630ES1 macro.

Would be nice to get this queued for the next merge window

[1] https://patchwork.kernel.org/patch/95684/
[2] https://patchwork.kernel.org/patch/99590/

 arch/arm/mach-omap2/id.c              |   27 +++++++++++++++++++++++----
 arch/arm/plat-omap/include/plat/cpu.h |   15 +++++++++++----
 2 files changed, 34 insertions(+), 8 deletions(-)
arch/arm/mach-omap2/id.c +23 -4
Index: linux-omap-2.6/arch/arm/mach-omap2/id.c
===================================================================
@@ -269,11 +269,24 @@ void __init omap3_check_revision(void)
 		omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
 		break;
 	case 0xb891:
-	/* FALLTHROUGH */
-	default:
-		/* Unknown default to latest silicon rev as default*/
-		omap_revision = OMAP3630_REV_ES1_0;
+		/* Handle 36xx devices */
 		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+
+		switch(rev) {
+		case 0: /* Take care of early samples */
+			omap_revision = OMAP3630_REV_ES1_0;
+			break;
+		case 1:
+			omap_revision = OMAP3630_REV_ES1_1;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_1;
+			break;
+		case 2:
+		/* Fall through */
+		default:
+			/* Use the latest known revision as default */
+			omap_revision =  OMAP3630_REV_ES1_2;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
+		}
 	}
 }
 
@@ -349,6 +362,12 @@ void __init omap3_cpuinfo(void)
 	case OMAP_REVBITS_00:
 		strcpy(cpu_rev, "1.0");
 		break;
+	case OMAP_REVBITS_01:
+		strcpy(cpu_rev, "1.1");
+		break;
+	case OMAP_REVBITS_02:
+		strcpy(cpu_rev, "1.2");
+		break;
 	case OMAP_REVBITS_10:
 		strcpy(cpu_rev, "2.0");
 		break;
arch/arm/plat-omap/include/plat/cpu.h +11 -4
Index: linux-omap-2.6/arch/arm/plat-omap/include/plat/cpu.h
===================================================================
@@ -66,6 +66,8 @@ unsigned int omap_rev(void);
  * family. This difference can be handled separately.
  */
 #define OMAP_REVBITS_00		0x00
+#define OMAP_REVBITS_01		0x01
+#define OMAP_REVBITS_02		0x02
 #define OMAP_REVBITS_10		0x10
 #define OMAP_REVBITS_20		0x20
 #define OMAP_REVBITS_30		0x30
@@ -376,6 +378,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define OMAP3430_REV_ES3_1_2	0x34305034
 
 #define OMAP3630_REV_ES1_0	0x36300034
+#define OMAP3630_REV_ES1_1	0x36300134
+#define OMAP3630_REV_ES1_2	0x36300234
 
 #define OMAP35XX_CLASS		0x35000034
 #define OMAP3503_REV(v)		(OMAP35XX_CLASS | (0x3503 << 16) | (v << 8))
@@ -411,6 +415,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define CHIP_IS_OMAP3430ES3_1		(1 << 6)
 #define CHIP_IS_OMAP3630ES1		(1 << 7)
 #define CHIP_IS_OMAP4430ES1		(1 << 8)
+#define CHIP_IS_OMAP3630ES1_1           (1 << 9)
+#define CHIP_IS_OMAP3630ES1_2           (1 << 10)
 
 #define CHIP_IS_OMAP24XX		(CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)
 
@@ -424,11 +430,12 @@ IS_OMAP_TYPE(3517, 0x3517)
  */
 #define CHIP_GE_OMAP3430ES2		(CHIP_IS_OMAP3430ES2 | \
 					 CHIP_IS_OMAP3430ES3_0 | \
-					 CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
+					 CHIP_GE_OMAP3430ES3_1)
 #define CHIP_GE_OMAP3430ES3_1		(CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
-
+					 CHIP_IS_OMAP3630ES1 | \
+					 CHIP_GE_OMAP3630ES1_1)
+#define CHIP_GE_OMAP3630ES1_1		(CHIP_IS_OMAP3630ES1_1 | \
+					 CHIP_IS_OMAP3630ES1_2)
 
 int omap_chip_is(struct omap_chip_id oci);
 void omap2_check_revision(void);
author maintainer
#4 lore raw

Re: [PATCH] OMAP3630: Add ES1.1 and ES1.2 detection

Quoted 49 lines · Anand Gadiyar

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Cc Nishanth Menon <[email protected]>
Cc Manjunatha GK <[email protected]>
Cc Tony Lindgren <[email protected]>

---
This is based on Manju's original patch at [1] and my update [2]. The original patch failed to properly update the CHIP_GE_OMAP3630ES1 macro.

Would be nice to get this queued for the next merge window

[1] https://patchwork.kernel.org/patch/95684/
[2] https://patchwork.kernel.org/patch/99590/

 arch/arm/mach-omap2/id.c              |   27 +++++++++++++++++++++++----
 arch/arm/plat-omap/include/plat/cpu.h |   15 +++++++++++----
 2 files changed, 34 insertions(+), 8 deletions(-)

Index: linux-omap-2.6/arch/arm/mach-omap2/id.c
===================================================================

arch/arm/mach-omap2/id.c +9 -4
@@ -269,11 +269,24 @@ void __init omap3_check_revision(void)
 		omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
 		break;
 	case 0xb891:
-	/* FALLTHROUGH */
-	default:
-		/* Unknown default to latest silicon rev as default*/
-		omap_revision = OMAP3630_REV_ES1_0;
+		/* Handle 36xx devices */
 		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+
+		switch(rev) {
+		case 0: /* Take care of early samples */
+			omap_revision = OMAP3630_REV_ES1_0;
+			break;
+		case 1:
+			omap_revision = OMAP3630_REV_ES1_1;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_1;

arch/arm/mach-omap2/id.c void __init omap3_check_revision(void) · line 291

Quoted 10 lines
arch/arm/mach-omap2/id.c +8 -0
+			break;
+		case 2:
+		/* Fall through */
+		default:
+			/* Use the latest known revision as default */
+			omap_revision =  OMAP3630_REV_ES1_2;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
+		}
 	}
 }

Please don't remove the default handling for unknown hawkeye registers for omap3. Now you're only handling hawkeye 0xb891.

IMHO, setting unknown hawkeye chips to OMAP3630_REV_ES1_2 should be still best option for future chips.

Regards,

Tony

#5 lore raw

RE: [PATCH] OMAP3630: Add ES1.1 and ES1.2 detection

Quoted 64 lines · Tony Lindgren
Quoted 49 lines · Anand Gadiyar

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Cc Nishanth Menon <[email protected]>
Cc Manjunatha GK <[email protected]>
Cc Tony Lindgren <[email protected]>

---
This is based on Manju's original patch at [1] and my update [2]. The original patch failed to properly update the CHIP_GE_OMAP3630ES1 macro.

Would be nice to get this queued for the next merge window

[1] https://patchwork.kernel.org/patch/95684/
[2] https://patchwork.kernel.org/patch/99590/

 arch/arm/mach-omap2/id.c              |   27 +++++++++++++++++++++++----
 arch/arm/plat-omap/include/plat/cpu.h |   15 +++++++++++----
 2 files changed, 34 insertions(+), 8 deletions(-)

Index: linux-omap-2.6/arch/arm/mach-omap2/id.c
===================================================================

arch/arm/mach-omap2/id.c +9 -4
@@ -269,11 +269,24 @@ void __init omap3_check_revision(void)
 		omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
 		break;
 	case 0xb891:
-	/* FALLTHROUGH */
-	default:
-		/* Unknown default to latest silicon rev as default*/
-		omap_revision = OMAP3630_REV_ES1_0;
+		/* Handle 36xx devices */
 		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+
+		switch(rev) {
+		case 0: /* Take care of early samples */
+			omap_revision = OMAP3630_REV_ES1_0;
+			break;
+		case 1:
+			omap_revision = OMAP3630_REV_ES1_1;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_1;

arch/arm/mach-omap2/id.c void __init omap3_check_revision(void) · line 291

Quoted 10 lines
arch/arm/mach-omap2/id.c +8 -0
+			break;
+		case 2:
+		/* Fall through */
+		default:
+			/* Use the latest known revision as default */
+			omap_revision =  OMAP3630_REV_ES1_2;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
+		}
 	}
 }

Please don't remove the default handling for unknown hawkeye registers for omap3. Now you're only handling hawkeye 0xb891.

Quoted 6 lines

IMHO, setting unknown hawkeye chips to OMAP3630_REV_ES1_2 should be still best option for future chips.

Regards,

Tony

Ouch. That was an accident. I'll repost in a bit.

- Anand

#6 lore raw

PATCH v2 1/1 OMAP3630: Add ES1.1 and ES1.2 detection

In reply to Tony Lindgren

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Cc Nishanth Menon <[email protected]>
Cc Manjunatha GK <[email protected]>
Cc Tony Lindgren <[email protected]>

---
v2: Fixed accidental removal of default handling, and minor update of a comment.

This is based on Manju's original patch at [1] and my update [2]. The original patch failed to properly update the CHIP_GE_OMAP3630ES1 macro.

Would be nice to get this queued for the next merge window

[1] https://patchwork.kernel.org/patch/95684/
[2] https://patchwork.kernel.org/patch/99590/

 arch/arm/mach-omap2/id.c              |   27 +++++++++++++++++++++++++--
 arch/arm/plat-omap/include/plat/cpu.h |   15 +++++++++++----
 2 files changed, 36 insertions(+), 6 deletions(-)
arch/arm/mach-omap2/id.c +25 -2
Index: linux-2.6/arch/arm/mach-omap2/id.c
===================================================================
@@ -261,9 +261,26 @@ void __init omap3_check_revision(void)
 	case 0xb891:
 	/* FALLTHROUGH */
 	default:
-		/* Unknown default to latest silicon rev as default*/
-		omap_revision = OMAP3630_REV_ES1_0;
+		/* Unknown hawkeye defaults to latest silicon revision */
+		
+		/* Handle 36xx devices */
 		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+
+		switch(rev) {
+		case 0: /* Take care of early samples */
+			omap_revision = OMAP3630_REV_ES1_0;
+			break;
+		case 1:
+			omap_revision = OMAP3630_REV_ES1_1;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_1;
+			break;
+		case 2:
+		/* Fall through */
+		default:
+			/* Use the latest known revision as default */
+			omap_revision =  OMAP3630_REV_ES1_2;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
+		}
 	}
 }
 
@@ -339,6 +356,12 @@ void __init omap3_cpuinfo(void)
 	case OMAP_REVBITS_00:
 		strcpy(cpu_rev, "1.0");
 		break;
+	case OMAP_REVBITS_01:
+		strcpy(cpu_rev, "1.1");
+		break;
+	case OMAP_REVBITS_02:
+		strcpy(cpu_rev, "1.2");
+		break;
 	case OMAP_REVBITS_10:
 		strcpy(cpu_rev, "2.0");
 		break;
arch/arm/plat-omap/include/plat/cpu.h +11 -4
Index: linux-2.6/arch/arm/plat-omap/include/plat/cpu.h
===================================================================
@@ -66,6 +66,8 @@ unsigned int omap_rev(void);
  * family. This difference can be handled separately.
  */
 #define OMAP_REVBITS_00		0x00
+#define OMAP_REVBITS_01		0x01
+#define OMAP_REVBITS_02		0x02
 #define OMAP_REVBITS_10		0x10
 #define OMAP_REVBITS_20		0x20
 #define OMAP_REVBITS_30		0x30
@@ -376,6 +378,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define OMAP3430_REV_ES3_1_2	0x34305034
 
 #define OMAP3630_REV_ES1_0	0x36300034
+#define OMAP3630_REV_ES1_1	0x36300134
+#define OMAP3630_REV_ES1_2	0x36300234
 
 #define OMAP35XX_CLASS		0x35000034
 #define OMAP3503_REV(v)		(OMAP35XX_CLASS | (0x3503 << 16) | (v << 8))
@@ -411,6 +415,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define CHIP_IS_OMAP3430ES3_1		(1 << 6)
 #define CHIP_IS_OMAP3630ES1		(1 << 7)
 #define CHIP_IS_OMAP4430ES1		(1 << 8)
+#define CHIP_IS_OMAP3630ES1_1           (1 << 9)
+#define CHIP_IS_OMAP3630ES1_2           (1 << 10)
 
 #define CHIP_IS_OMAP24XX		(CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)
 
@@ -424,11 +430,12 @@ IS_OMAP_TYPE(3517, 0x3517)
  */
 #define CHIP_GE_OMAP3430ES2		(CHIP_IS_OMAP3430ES2 | \
 					 CHIP_IS_OMAP3430ES3_0 | \
-					 CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
+					 CHIP_GE_OMAP3430ES3_1)
 #define CHIP_GE_OMAP3430ES3_1		(CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
-
+					 CHIP_IS_OMAP3630ES1 | \
+					 CHIP_GE_OMAP3630ES1_1)
+#define CHIP_GE_OMAP3630ES1_1		(CHIP_IS_OMAP3630ES1_1 | \
+					 CHIP_IS_OMAP3630ES1_2)
 
 int omap_chip_is(struct omap_chip_id oci);
 void omap2_check_revision(void);
author maintainer
#7 lore raw

Re: [PATCH v2] OMAP3630: Add ES1.1 and ES1.2 detection

Quoted 9 lines · Anand Gadiyar

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Thanks, I've updated it a bit more for the fallthrough handling, here's the updated version.

Regards,

Tony

Quoted 1 line

From 1b7fe944881114a78d04c98188b56852140480d4 Mon Sep 17 00:00:00 2001

From: Anand Gadiyar <[email protected]>
Date: Tue, 3 Aug 2010 19:59:24 +0000
Subject: [PATCH] OMAP3630: Add ES1.1 and ES1.2 detection

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Cc Nishanth Menon <[email protected]>
Cc Manjunatha GK <[email protected]>
[[email protected]: update fallthrough handling]
arch/arm/mach-omap2/id.c +26 -2
index fd1904b..0a0ff0c 100644
@@ -269,11 +269,29 @@ static void __init omap3_check_revision(void)
 		omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
 		break;
 	case 0xb891:
+		/* Handle 36xx devices */
+		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+
+		switch(rev) {
+		case 0: /* Take care of early samples */
+			omap_revision = OMAP3630_REV_ES1_0;
+			break;
+		case 1:
+			omap_revision = OMAP3630_REV_ES1_1;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_1;
+			break;
+		case 2:
+			omap_revision =  OMAP3630_REV_ES1_2;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
+			break;
+		default:
+			/* FALLTHROUGH */
+		}
 	/* FALLTHROUGH */
 	default:
 		/* Unknown default to latest silicon rev as default*/
-		omap_revision = OMAP3630_REV_ES1_0;
-		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+		omap_revision =  OMAP3630_REV_ES1_2;
+		omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
 	}
 }
 
@@ -349,6 +367,12 @@ static void __init omap3_cpuinfo(void)
 	case OMAP_REVBITS_00:
 		strcpy(cpu_rev, "1.0");
 		break;
+	case OMAP_REVBITS_01:
+		strcpy(cpu_rev, "1.1");
+		break;
+	case OMAP_REVBITS_02:
+		strcpy(cpu_rev, "1.2");
+		break;
 	case OMAP_REVBITS_10:
 		strcpy(cpu_rev, "2.0");
 		break;
arch/arm/plat-omap/include/plat/cpu.h +11 -4
index aa2f4f0..2e2ae53 100644
@@ -66,6 +66,8 @@ unsigned int omap_rev(void);
  * family. This difference can be handled separately.
  */
 #define OMAP_REVBITS_00		0x00
+#define OMAP_REVBITS_01		0x01
+#define OMAP_REVBITS_02		0x02
 #define OMAP_REVBITS_10		0x10
 #define OMAP_REVBITS_20		0x20
 #define OMAP_REVBITS_30		0x30
@@ -376,6 +378,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define OMAP3430_REV_ES3_1_2	0x34305034
 
 #define OMAP3630_REV_ES1_0	0x36300034
+#define OMAP3630_REV_ES1_1	0x36300134
+#define OMAP3630_REV_ES1_2	0x36300234
 
 #define OMAP35XX_CLASS		0x35000034
 #define OMAP3503_REV(v)		(OMAP35XX_CLASS | (0x3503 << 16) | (v << 8))
@@ -411,6 +415,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define CHIP_IS_OMAP3430ES3_1		(1 << 6)
 #define CHIP_IS_OMAP3630ES1		(1 << 7)
 #define CHIP_IS_OMAP4430ES1		(1 << 8)
+#define CHIP_IS_OMAP3630ES1_1           (1 << 9)
+#define CHIP_IS_OMAP3630ES1_2           (1 << 10)
 
 #define CHIP_IS_OMAP24XX		(CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)
 
@@ -424,11 +430,12 @@ IS_OMAP_TYPE(3517, 0x3517)
  */
 #define CHIP_GE_OMAP3430ES2		(CHIP_IS_OMAP3430ES2 | \
 					 CHIP_IS_OMAP3430ES3_0 | \
-					 CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
+					 CHIP_GE_OMAP3430ES3_1)
 #define CHIP_GE_OMAP3430ES3_1		(CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
-
+					 CHIP_IS_OMAP3630ES1 | \
+					 CHIP_GE_OMAP3630ES1_1)
+#define CHIP_GE_OMAP3630ES1_1		(CHIP_IS_OMAP3630ES1_1 | \
+					 CHIP_IS_OMAP3630ES1_2)
 
 int omap_chip_is(struct omap_chip_id oci);
 void omap2_check_revision(void);
author maintainer
#8 lore raw

Re: [PATCH v2] OMAP3630: Add ES1.1 and ES1.2 detection

Quoted 8 lines · Tony Lindgren
Quoted 7 lines · Anand Gadiyar

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Quoted 5 lines
Quoted 2 lines

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Thanks, I've updated it a bit more for the fallthrough handling, here's the updated version.

That does not even build, here's the patch one more time.

Tony

Quoted 1 line

From 03323e6ae5e93e32aad9005b252f5b7125b39564 Mon Sep 17 00:00:00 2001

From: Anand Gadiyar <[email protected]>
Date: Tue, 3 Aug 2010 19:59:24 +0000
Subject: [PATCH] OMAP3630: Add ES1.1 and ES1.2 detection

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Cc Nishanth Menon <[email protected]>
Cc Manjunatha GK <[email protected]>
[[email protected]: update fallthrough handling]
arch/arm/mach-omap2/id.c +26 -2
index fd1904b..0a0ff0c 100644
@@ -269,11 +269,29 @@ static void __init omap3_check_revision(void)
 		omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
 		break;
 	case 0xb891:
+		/* Handle 36xx devices */
+		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+
+		switch(rev) {
+		case 0: /* Take care of early samples */
+			omap_revision = OMAP3630_REV_ES1_0;
+			break;
+		case 1:
+			omap_revision = OMAP3630_REV_ES1_1;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_1;
+			break;
+		case 2:
+			omap_revision =  OMAP3630_REV_ES1_2;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
+			break;
+		default:
+			/* FALLTHROUGH */
+		}
 	/* FALLTHROUGH */
 	default:
 		/* Unknown default to latest silicon rev as default*/
-		omap_revision = OMAP3630_REV_ES1_0;
-		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+		omap_revision =  OMAP3630_REV_ES1_2;
+		omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
 	}
 }
 
@@ -349,6 +367,12 @@ static void __init omap3_cpuinfo(void)
 	case OMAP_REVBITS_00:
 		strcpy(cpu_rev, "1.0");
 		break;
+	case OMAP_REVBITS_01:
+		strcpy(cpu_rev, "1.1");
+		break;
+	case OMAP_REVBITS_02:
+		strcpy(cpu_rev, "1.2");
+		break;
 	case OMAP_REVBITS_10:
 		strcpy(cpu_rev, "2.0");
 		break;
arch/arm/plat-omap/include/plat/cpu.h +11 -4
index aa2f4f0..2e2ae53 100644
@@ -66,6 +66,8 @@ unsigned int omap_rev(void);
  * family. This difference can be handled separately.
  */
 #define OMAP_REVBITS_00		0x00
+#define OMAP_REVBITS_01		0x01
+#define OMAP_REVBITS_02		0x02
 #define OMAP_REVBITS_10		0x10
 #define OMAP_REVBITS_20		0x20
 #define OMAP_REVBITS_30		0x30
@@ -376,6 +378,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define OMAP3430_REV_ES3_1_2	0x34305034
 
 #define OMAP3630_REV_ES1_0	0x36300034
+#define OMAP3630_REV_ES1_1	0x36300134
+#define OMAP3630_REV_ES1_2	0x36300234
 
 #define OMAP35XX_CLASS		0x35000034
 #define OMAP3503_REV(v)		(OMAP35XX_CLASS | (0x3503 << 16) | (v << 8))
@@ -411,6 +415,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define CHIP_IS_OMAP3430ES3_1		(1 << 6)
 #define CHIP_IS_OMAP3630ES1		(1 << 7)
 #define CHIP_IS_OMAP4430ES1		(1 << 8)
+#define CHIP_IS_OMAP3630ES1_1           (1 << 9)
+#define CHIP_IS_OMAP3630ES1_2           (1 << 10)
 
 #define CHIP_IS_OMAP24XX		(CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)
 
@@ -424,11 +430,12 @@ IS_OMAP_TYPE(3517, 0x3517)
  */
 #define CHIP_GE_OMAP3430ES2		(CHIP_IS_OMAP3430ES2 | \
 					 CHIP_IS_OMAP3430ES3_0 | \
-					 CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
+					 CHIP_GE_OMAP3430ES3_1)
 #define CHIP_GE_OMAP3430ES3_1		(CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
-
+					 CHIP_IS_OMAP3630ES1 | \
+					 CHIP_GE_OMAP3630ES1_1)
+#define CHIP_GE_OMAP3630ES1_1		(CHIP_IS_OMAP3630ES1_1 | \
+					 CHIP_IS_OMAP3630ES1_2)
 
 int omap_chip_is(struct omap_chip_id oci);
 void omap2_check_revision(void);
#9 lore raw

RE: [PATCH v2] OMAP3630: Add ES1.1 and ES1.2 detection

Quoted 16 lines

-----Original Message-----
From: Tony Lindgren [mailto:[email protected]]
Sent: Wednesday, August 04, 2010 4:22 PM
To: Gadiyar, Anand
Cc: [email protected]; Menon, Nishanth; G, Manjunath Kondaiah
Subject: Re: [PATCH v2] OMAP3630: Add ES1.1 and ES1.2 detection

Quoted 8 lines · Tony Lindgren
Quoted 7 lines · Anand Gadiyar

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Thanks, I've updated it a bit more for the fallthrough handling, here's the updated version.

That does not even build, here's the patch one more time.

This one doesn't seem to build either :(
The two patches you sent are identical except for the first line, so maybe you attached the wrong file?

- Anand

#10 lore raw

Re: [PATCH v2] OMAP3630: Add ES1.1 and ES1.2 detection

In reply to Tony Lindgren

hi,

Quoted 15 lines · ext Tony Lindgren
arch/arm/mach-omap2/id.c +7 -0
index fd1904b..0a0ff0c 100644
@@ -269,11 +269,29 @@ static void __init omap3_check_revision(void)
 		omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
 		break;
 	case 0xb891:
+		/* Handle 36xx devices */
+		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+
+		switch(rev) {
+		case 0: /* Take care of early samples */
+			omap_revision = OMAP3630_REV_ES1_0;
+			break;

arch/arm/mach-omap2/id.c static void __init omap3_check_revision(void) · line 288

Quoted 10 lines
arch/arm/mach-omap2/id.c +10 -0
+		case 1:
+			omap_revision = OMAP3630_REV_ES1_1;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_1;
+			break;
+		case 2:
+			omap_revision =  OMAP3630_REV_ES1_2;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
+			break;
+		default:
+			/* FALLTHROUGH */

did you forget a break here

arch/arm/mach-omap2/id.c static void __init omap3_check_revision(void) · line 294

Quoted 8 lines
arch/arm/mach-omap2/id.c +3 -2
+		}
 	/* FALLTHROUGH */
 	default:
 		/* Unknown default to latest silicon rev as default*/
-		omap_revision = OMAP3630_REV_ES1_0;
-		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+		omap_revision =  OMAP3630_REV_ES1_2;
+		omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;

and here ?

Signature · 3 lines
balbi

DefectiveByDesign.org
author maintainer
#11 lore raw

Re: [PATCH v2] OMAP3630: Add ES1.1 and ES1.2 detection

In reply to Tony Lindgren
Quoted 9 lines · Tony Lindgren
Quoted 8 lines · Tony Lindgren
Quoted 7 lines · Anand Gadiyar

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Quoted 7 lines
Quoted 5 lines
Quoted 2 lines

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Thanks, I've updated it a bit more for the fallthrough handling, here's the updated version.

That does not even build, here's the patch one more time.

Forgot to refresh, sorry. One more time below.

Tony

Quoted 1 line

From 9c6484502a8aba4b7a0f1f3ca847557d52a9350b Mon Sep 17 00:00:00 2001

From: Anand Gadiyar <[email protected]>
Date: Tue, 3 Aug 2010 19:59:24 +0000
Subject: [PATCH] OMAP3630: Add ES1.1 and ES1.2 detection

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Cc Nishanth Menon <[email protected]>
Cc Manjunatha GK <[email protected]>
[[email protected]: update fallthrough handling]
arch/arm/mach-omap2/id.c +25 -3
index fd1904b..e8256a2 100644
@@ -269,11 +269,27 @@ static void __init omap3_check_revision(void)
 		omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
 		break;
 	case 0xb891:
-	/* FALLTHROUGH */
+		/* Handle 36xx devices */
+		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+
+		switch(rev) {
+		case 0: /* Take care of early samples */
+			omap_revision = OMAP3630_REV_ES1_0;
+			break;
+		case 1:
+			omap_revision = OMAP3630_REV_ES1_1;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_1;
+			break;
+		case 2:
+		default:
+			omap_revision =  OMAP3630_REV_ES1_2;
+			omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
+			break;
+		}
 	default:
 		/* Unknown default to latest silicon rev as default*/
-		omap_revision = OMAP3630_REV_ES1_0;
-		omap_chip.oc |= CHIP_IS_OMAP3630ES1;
+		omap_revision =  OMAP3630_REV_ES1_2;
+		omap_chip.oc |= CHIP_IS_OMAP3630ES1_2;
 	}
 }
 
@@ -349,6 +365,12 @@ static void __init omap3_cpuinfo(void)
 	case OMAP_REVBITS_00:
 		strcpy(cpu_rev, "1.0");
 		break;
+	case OMAP_REVBITS_01:
+		strcpy(cpu_rev, "1.1");
+		break;
+	case OMAP_REVBITS_02:
+		strcpy(cpu_rev, "1.2");
+		break;
 	case OMAP_REVBITS_10:
 		strcpy(cpu_rev, "2.0");
 		break;
arch/arm/plat-omap/include/plat/cpu.h +11 -4
index aa2f4f0..2e2ae53 100644
@@ -66,6 +66,8 @@ unsigned int omap_rev(void);
  * family. This difference can be handled separately.
  */
 #define OMAP_REVBITS_00		0x00
+#define OMAP_REVBITS_01		0x01
+#define OMAP_REVBITS_02		0x02
 #define OMAP_REVBITS_10		0x10
 #define OMAP_REVBITS_20		0x20
 #define OMAP_REVBITS_30		0x30
@@ -376,6 +378,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define OMAP3430_REV_ES3_1_2	0x34305034
 
 #define OMAP3630_REV_ES1_0	0x36300034
+#define OMAP3630_REV_ES1_1	0x36300134
+#define OMAP3630_REV_ES1_2	0x36300234
 
 #define OMAP35XX_CLASS		0x35000034
 #define OMAP3503_REV(v)		(OMAP35XX_CLASS | (0x3503 << 16) | (v << 8))
@@ -411,6 +415,8 @@ IS_OMAP_TYPE(3517, 0x3517)
 #define CHIP_IS_OMAP3430ES3_1		(1 << 6)
 #define CHIP_IS_OMAP3630ES1		(1 << 7)
 #define CHIP_IS_OMAP4430ES1		(1 << 8)
+#define CHIP_IS_OMAP3630ES1_1           (1 << 9)
+#define CHIP_IS_OMAP3630ES1_2           (1 << 10)
 
 #define CHIP_IS_OMAP24XX		(CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)
 
@@ -424,11 +430,12 @@ IS_OMAP_TYPE(3517, 0x3517)
  */
 #define CHIP_GE_OMAP3430ES2		(CHIP_IS_OMAP3430ES2 | \
 					 CHIP_IS_OMAP3430ES3_0 | \
-					 CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
+					 CHIP_GE_OMAP3430ES3_1)
 #define CHIP_GE_OMAP3430ES3_1		(CHIP_IS_OMAP3430ES3_1 | \
-					 CHIP_IS_OMAP3630ES1)
-
+					 CHIP_IS_OMAP3630ES1 | \
+					 CHIP_GE_OMAP3630ES1_1)
+#define CHIP_GE_OMAP3630ES1_1		(CHIP_IS_OMAP3630ES1_1 | \
+					 CHIP_IS_OMAP3630ES1_2)
 
 int omap_chip_is(struct omap_chip_id oci);
 void omap2_check_revision(void);
#12 lore raw

Re: [PATCH v2] OMAP3630: Add ES1.1 and ES1.2 detection

Hi,

Quoted 12 lines

From 9c6484502a8aba4b7a0f1f3ca847557d52a9350b Mon Sep 17 00:00:00 2001
From: Anand Gadiyar <[email protected]>
Date: Tue, 3 Aug 2010 19:59:24 +0000
Subject: [PATCH] OMAP3630: Add ES1.1 and ES1.2 detection

Add revision detection for ES1.1 and ES1.2. Set default revision as ES1.2.

Add CHIP_GE_OMAP3630ES1_1 to detect revisions 1.1 and later. This is needed for at least one feature that is broken in 3630ES1.0 but exists on older (3430 ES3.1) and newer revisions.

Quoted 8 lines

Additionally, update some of the CHIP_GE_* macros to use other macros for ease of maintenance.

Cc Nishanth Menon <[email protected]>
Cc Manjunatha GK <[email protected]>
[[email protected]: update fallthrough handling]

compile tested with omap3_defconfig. Builds cleanly.

Signature · 3 lines
balbi

DefectiveByDesign.org