Skip to contentSkip to conversation

AM35x: Initial support for the processor

PATCH New Sanjeev Premi 4 participants 10 messages Dec 15, 2009 – Jan 7, 2010

lore
Share & tools
lore
#0 lore raw

cover AM35x: Initial support for the processor

This patchset adds basic support for the AM35x processors. It also ensures that u-boot banner shows correct processor at start-up.

Addition of AM35x impacts existing code for OMAP3, most patches in this set are applicable to both processor families.

The series has been tested on the OMAP3EVM and AM3517EVM. To test on AM3517EVM, earlier patches posted by Vaibhav are required.

[1] http://lists.denx.de/pipermail/u-boot/2009-November/064670.html

Sanjeev Premi (4):
AM35x: Introduce support for AM35x processors OMAP3, AM35x: Detect exact CPU in arch_cpu_init() OMAP3, AM35x: Update function print_cpuinfo() OMAP3, AM35x: Update the checks for CPU revision

 cpu/arm_cortexa8/omap3/cache.S         |   30 +++++++-
 cpu/arm_cortexa8/omap3/clock.c         |    3 +-
 cpu/arm_cortexa8/omap3/sys_info.c      |  140 +++++++++++++++++++++++++++-----
 include/asm-arm/arch-omap3/cpu.h       |    6 --
 include/asm-arm/arch-omap3/omap3.h     |   40 +++++++++-
 include/asm-arm/arch-omap3/sys_proto.h |    1 +
 6 files changed, 188 insertions(+), 32 deletions(-)
#1 lore raw

PATCH 1/4 AM35x: Introduce support for AM35x processors

This patch adds support for TI's recently announced AM35x family of devices.

It implements function is_family() to differentiate between OMAP34x/OMAP35x and AM35x device families at runtime.

[1] http://www.ti.com/sitara
[2] http://www.ti.com/arm
[3] http://tiexpressdsp.com/index.php?title=Applications_Processors_Crossreference
[4] http://marc.info/?l=linux-omap&m=125615009412281&w=2

---
 cpu/arm_cortexa8/omap3/sys_info.c      |   42 ++++++++++++++++++++++++++++----
 include/asm-arm/arch-omap3/omap3.h     |   14 ++++++++++
 include/asm-arm/arch-omap3/sys_proto.h |    1 +
 3 files changed, 52 insertions(+), 5 deletions(-)
cpu/arm_cortexa8/omap3/sys_info.c +37 -5
index 449262a..6206e17 100644
@@ -41,16 +41,19 @@ static char *rev_s[CPU_3XX_MAX_REV] = {
 				"3.0",
 				"3.1"};
 
-static u8 cpu_revision;
+static u16 cpu_family;
+static u16 cpu_id;
+static u8  cpu_revision;
 
 /**
  * Identify the silicon
  *
- * Currently, it identifies the cpu revision.
+ * Currently, it identifies the cpu family and silicon revision.
  */
 void identify_cpu (void)
 {
 	u32 cpuid = 0;
+	u16 hawkeye;
 	struct ctrl_id *id_base;
 
 	/*
@@ -59,6 +62,7 @@ void identify_cpu (void)
 	 */
 	__asm__ __volatile__("mrc p15, 0, %0, c0, c0, 0":"=r"(cpuid));
 	if ((cpuid & 0xf) == 0x0) {
+		cpu_family = CPU_OMAP34XX;
 		cpu_revision = CPU_3XX_ES10;
 	} else {
 		/* Decode the IDs on > ES1.0 */
@@ -66,11 +70,26 @@ void identify_cpu (void)
 
 		cpuid = readl(&id_base->idcode);
 
+		hawkeye  = (cpuid >> HAWKEYE_SHIFT) & 0xffff;
 		cpu_revision = (cpuid >> CPU_3XX_ID_SHIFT) & 0xf;
 
-		/* Some early ES2.0 seem to report rev 0, fix this */
-		if(cpu_revision == 0)
-			cpu_revision = CPU_3XX_ES20;
+		switch (hawkeye) {
+		case HAWKEYE_OMAP34XX:
+			cpu_family = CPU_OMAP34XX;
+
+			/* Some early ES2.0 seem to report ID 0, fix this */
+			if(cpu_revision == 0)
+				cpu_revision = CPU_3XX_ES20;
+			break;
+
+		case HAWKEYE_AM35XX:
+			cpu_family = CPU_AM35XX;
+			break;
+
+		default:
+			cpu_family = CPU_OMAP34XX;
+			break;
+		}
 	}
 }
 
@@ -89,6 +108,19 @@ int arch_cpu_init (void)
 	return 0;
 }
 
+/**
+ * Check if cpu belongs to specific family
+ *
+ * Returns 1 if true, 0 if false.
+ */
+u8 is_cpu_family(u16 family)
+{
+	if (cpu_family == family)
+		return 1;
+
+	return 0;
+}
+
 /*****************************************************************
  * dieid_num_r(void) - read and set die ID
  *****************************************************************/
include/asm-arm/arch-omap3/omap3.h +14 -0
index 12815f6..86df1f2 100644
@@ -183,4 +183,18 @@ struct gpio {
 #define WIDTH_8BIT		0x0000
 #define WIDTH_16BIT		0x1000	/* bit pos for 16 bit in gpmc */
 
+/*
+ * Hawkeye values
+ */
+#define HAWKEYE_OMAP34XX	0xb7ae
+#define HAWKEYE_AM35XX		0xb868
+
+#define HAWKEYE_SHIFT		12
+
+/*
+ * Define CPU families
+ */
+#define CPU_OMAP34XX		0x3400	/* OMAP34xx/OMAP35 devices */
+#define CPU_AM35XX		0x3500	/* AM35xx devices          */
+
 #endif
include/asm-arm/arch-omap3/sys_proto.h +1 -0
index 9ddd272..0b6e48b 100644
@@ -41,6 +41,7 @@ void watchdog_init(void);
 void set_muxconf_regs(void);
 
 void identify_cpu(void);
+u8 is_cpu_family(u16);
 u8 get_cpu_rev(void);
 u32 get_mem_type(void);
 u32 get_sysboot_value(void);
Signature · 1 line
1.6.2.2
#2 lore raw

PATCH 2/4 OMAP3, AM35x: Detect exact CPU in arch_cpu_init()

In reply to Sanjeev Premi

This patch identifies exact cpu in function arch_cpu_init().

It does the following:
- It consolidates all related #defines into omap3.h.
- Prefixes CTRL_ to #defines used in comparison against contents of Control Status Register returned by the function get_cpu_type().
- Adds new #defines to identify exact CPU id.

---
 cpu/arm_cortexa8/omap3/sys_info.c  |   55 ++++++++++++++++++++++++++++++++++-
 include/asm-arm/arch-omap3/cpu.h   |    6 ----
 include/asm-arm/arch-omap3/omap3.h |   26 +++++++++++++++-
 3 files changed, 77 insertions(+), 10 deletions(-)
cpu/arm_cortexa8/omap3/sys_info.c +53 -2
index 6206e17..3544d26 100644
@@ -45,14 +45,17 @@ static u16 cpu_family;
 static u16 cpu_id;
 static u8  cpu_revision;
 
+static u32 get_cpu_type(void);
+
 /**
  * Identify the silicon
  *
- * Currently, it identifies the cpu family and silicon revision.
+ * It identifies the cpu family, exact cpu and silicon revision.
  */
 void identify_cpu (void)
 {
 	u32 cpuid = 0;
+	u32 cputype;
 	u16 hawkeye;
 	struct ctrl_id *id_base;
 
@@ -73,6 +76,9 @@ void identify_cpu (void)
 		hawkeye  = (cpuid >> HAWKEYE_SHIFT) & 0xffff;
 		cpu_revision = (cpuid >> CPU_3XX_ID_SHIFT) & 0xf;
 
+		/*
+		 * Identify cpu family and revision
+		 */
 		switch (hawkeye) {
 		case HAWKEYE_OMAP34XX:
 			cpu_family = CPU_OMAP34XX;
@@ -90,6 +96,51 @@ void identify_cpu (void)
 			cpu_family = CPU_OMAP34XX;
 			break;
 		}
+
+		cputype = get_cpu_type();
+		switch (cpu_family)
+		{
+		case CPU_OMAP34XX:
+			switch (cputype) {
+			case CTRL_OMAP3503:
+				cpu_id = OMAP3503;
+				break;
+			case CTRL_OMAP3515:
+				cpu_id = OMAP3515;
+				break;
+			case CTRL_OMAP3525:
+				cpu_id = OMAP3525;
+				break;
+			case CTRL_OMAP3530:
+				cpu_id = OMAP3430;	/* Same as OMAP3530 */
+				break;
+			default:
+				cpu_id = OMAP3430;
+				break;
+			}
+			break;
+
+		case CPU_AM35XX:
+			switch (cputype) {
+			case CTRL_AM3505:
+				cpu_id = AM3505;
+				break;
+			case CTRL_AM3517:
+				cpu_id = AM3517;
+				break;
+			default:
+				cpu_id = AM3505;
+				break;
+			}
+			break;
+
+		default:
+			/*
+			 * Fall back to most common device
+			 */
+			cpu_id = OMAP3430;
+			break;
+		}
 	}
 }
 
@@ -150,7 +201,7 @@ void dieid_num_r(void)
 /******************************************
  * get_cpu_type(void) - extract cpu info
  ******************************************/
-u32 get_cpu_type(void)
+static u32 get_cpu_type(void)
 {
 	return readl(&ctrl_base->ctrl_omap_stat);
 }
include/asm-arm/arch-omap3/cpu.h +0 -6
index 8ab2e39..088a342 100644
@@ -60,12 +60,6 @@ struct ctrl {
 #endif /* __ASSEMBLY__ */
 #endif /* __KERNEL_STRICT_NAMES */
 
-/* cpu type */
-#define OMAP3503		0x5c00
-#define OMAP3515		0x1c00
-#define OMAP3525		0x4c00
-#define OMAP3530		0x0c00
-
 #ifndef __KERNEL_STRICT_NAMES
 #ifndef __ASSEMBLY__
 struct ctrl_id {
include/asm-arm/arch-omap3/omap3.h +24 -2
index 86df1f2..af23e5d 100644
@@ -161,8 +161,6 @@ struct gpio {
 #define DDR_133		133	/* most combo, some mem d-boards */
 #define DDR_165		165	/* future parts */
 
-#define CPU_3430	0x3430
-
 /*
  * 343x real hardware:
  *  ES1     = rev 0
@@ -197,4 +195,28 @@ struct gpio {
 #define CPU_OMAP34XX		0x3400	/* OMAP34xx/OMAP35 devices */
 #define CPU_AM35XX		0x3500	/* AM35xx devices          */
 
+/*
+ * Define CPUs
+ */
+#define OMAP3430		0x3430
+
+#define OMAP3503		0x3503
+#define OMAP3515		0x3515
+#define OMAP3525		0x3525
+#define OMAP3530		0x3530
+
+#define AM3505			0x3505
+#define AM3517			0x3517
+
+/*
+ * Control status register values corresponding to cpu variants
+ */
+#define CTRL_OMAP3503		0x5c00
+#define CTRL_OMAP3515		0x1c00
+#define CTRL_OMAP3525		0x4c00
+#define CTRL_OMAP3530		0x0c00
+
+#define CTRL_AM3505		0x5c00
+#define CTRL_AM3517		0x1c00
+
 #endif
Signature · 1 line
1.6.2.2
#3 lore raw

PATCH 2/4 OMAP3, AM35x: Detect exact CPU in arch_cpu_init()

Dear Sanjeev Premi,

Quoted 10 lines · In message <[email protected]> you wrote:

This patch identifies exact cpu in function arch_cpu_init().

It does the following:
- It consolidates all related #defines into omap3.h.
- Prefixes CTRL_ to #defines used in comparison against contents of Control Status Register returned by the function get_cpu_type().
- Adds new #defines to identify exact CPU id.

...

cpu/arm_cortexa8/omap3/sys_info.c void identify_cpu (void) · line 102

Quoted 3 lines
cpu/arm_cortexa8/omap3/sys_info.c +3 -0
+		cputype = get_cpu_type();
+		switch (cpu_family)
+		{

Incorrect brace style, please move the brace on previous line.

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
######## This message was made from 100% recycled electrons. ########
#4 lore raw

PATCH 3/4 OMAP3, AM35x: Update function print_cpuinfo()

In reply to Sanjeev Premi

The function is updated to make use of the cpu related information extracted in arch_cpu_init().

---
 cpu/arm_cortexa8/omap3/sys_info.c |   45 ++++++++++++++++++++++++------------
 1 files changed, 30 insertions(+), 15 deletions(-)
cpu/arm_cortexa8/omap3/sys_info.c +30 -15
index 3544d26..1228f5f 100644
@@ -364,45 +364,60 @@ u32 get_device_type(void)
  */
 int print_cpuinfo (void)
 {
-	char *cpu_s, *sec_s;
+	char cpu_s[16], sec_s[4];
 
-	switch (get_cpu_type()) {
+	switch (cpu_id) {
 	case OMAP3503:
-		cpu_s = "3503";
+		strcpy(cpu_s, "OMAP3503");
 		break;
 	case OMAP3515:
-		cpu_s = "3515";
+		strcpy(cpu_s, "OMAP3515");
 		break;
 	case OMAP3525:
-		cpu_s = "3525";
+		strcpy(cpu_s, "OMAP3503");
 		break;
+	case OMAP3430:
 	case OMAP3530:
-		cpu_s = "3530";
+		strcpy(cpu_s, "OMAP3430/3530");
 		break;
-	default:
-		cpu_s = "35XX";
+	case CTRL_AM3505:
+		strcpy(cpu_s, "AM3505");
+		break;
+	case CTRL_AM3517:
+		strcpy(cpu_s, "AM3517");
 		break;
+
+	default:
+		if (cpu_family == CPU_AM35XX)
+			strcpy(cpu_s, "AM35xx");
+		else
+			strcpy(cpu_s, "OMAP34xx/35xx");
 	}
 
 	switch (get_device_type()) {
 	case TST_DEVICE:
-		sec_s = "TST";
+		strcpy(sec_s, "TST");
 		break;
 	case EMU_DEVICE:
-		sec_s = "EMU";
+		strcpy(sec_s, "EMU");
 		break;
 	case HS_DEVICE:
-		sec_s = "HS";
+		strcpy(sec_s, "HS");
 		break;
 	case GP_DEVICE:
-		sec_s = "GP";
+		strcpy(sec_s, "GP");
 		break;
 	default:
-		sec_s = "?";
+		strcpy(sec_s, "?");
 	}
 
-	printf("OMAP%s-%s ES%s, CPU-OPP2 L3-165MHz\n",
-			cpu_s, sec_s, rev_s[get_cpu_rev()]);
+	/*
+	 * TBD: Revision numbers for AM35x may not be same as OMAP35x.
+	 *      Will need to re-look sometime later.
+	 */
+	printf("%s-%s ES%s,%s L3-165MHz\n",
+			cpu_s, sec_s, rev_s[get_cpu_rev()],
+			(cpu_family == CPU_AM35XX) ? "" : " CPU-OPP2");
 
 	return 0;
 }
Signature · 1 line
1.6.2.2
#5 lore raw

PATCH 3/4 OMAP3, AM35x: Update function print_cpuinfo()

Dear Sanjeev Premi,

Quoted 75 lines · In message <[email protected]> you wrote:

The function is updated to make use of the cpu related information extracted in arch_cpu_init().

---
 cpu/arm_cortexa8/omap3/sys_info.c |   45 ++++++++++++++++++++++++------------
 1 files changed, 30 insertions(+), 15 deletions(-)
cpu/arm_cortexa8/omap3/sys_info.c +23 -13
index 3544d26..1228f5f 100644
@@ -364,45 +364,60 @@ u32 get_device_type(void)
  */
 int print_cpuinfo (void)
 {
-	char *cpu_s, *sec_s;
+	char cpu_s[16], sec_s[4];
 
-	switch (get_cpu_type()) {
+	switch (cpu_id) {
 	case OMAP3503:
-		cpu_s = "3503";
+		strcpy(cpu_s, "OMAP3503");
 		break;
 	case OMAP3515:
-		cpu_s = "3515";
+		strcpy(cpu_s, "OMAP3515");
 		break;
 	case OMAP3525:
-		cpu_s = "3525";
+		strcpy(cpu_s, "OMAP3503");
 		break;
+	case OMAP3430:
 	case OMAP3530:
-		cpu_s = "3530";
+		strcpy(cpu_s, "OMAP3430/3530");
 		break;
-	default:
-		cpu_s = "35XX";
+	case CTRL_AM3505:
+		strcpy(cpu_s, "AM3505");
+		break;
+	case CTRL_AM3517:
+		strcpy(cpu_s, "AM3517");
 		break;
+
+	default:
+		if (cpu_family == CPU_AM35XX)
+			strcpy(cpu_s, "AM35xx");
+		else
+			strcpy(cpu_s, "OMAP34xx/35xx");
 	}
 
 	switch (get_device_type()) {
 	case TST_DEVICE:
-		sec_s = "TST";
+		strcpy(sec_s, "TST");
 		break;
 	case EMU_DEVICE:
-		sec_s = "EMU";
+		strcpy(sec_s, "EMU");
 		break;
 	case HS_DEVICE:
-		sec_s = "HS";
+		strcpy(sec_s, "HS");
 		break;
 	case GP_DEVICE:
-		sec_s = "GP";
+		strcpy(sec_s, "GP");
 		break;
 	default:
-		sec_s = "?";
+		strcpy(sec_s, "?");
 	}

cpu/arm_cortexa8/omap3/sys_info.c u32 get_device_type(void) · line 420

Quoted 10 lines
cpu/arm_cortexa8/omap3/sys_info.c +7 -2
 
-	printf("OMAP%s-%s ES%s, CPU-OPP2 L3-165MHz\n",
-			cpu_s, sec_s, rev_s[get_cpu_rev()]);
+	/*
+	 * TBD: Revision numbers for AM35x may not be same as OMAP35x.
+	 *      Will need to re-look sometime later.
+	 */
+	printf("%s-%s ES%s,%s L3-165MHz\n",
+			cpu_s, sec_s, rev_s[get_cpu_rev()],
+			(cpu_family == CPU_AM35XX) ? "" : " CPU-OPP2");

Changing pointers to constant strings into using an array with lots of function calls (strcpy()) makes no sense to me. I think the resulting code is just bigger and slower.

Or am I overlooking something?

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"It's when they say 2 + 2 = 5 that I begin to argue."    - Eric Pepke
#6 lore raw

PATCH 4/4 OMAP3, AM35x: Update the checks for CPU revision

In reply to Sanjeev Premi

The usage of get_cpu_rev() to check for cpu revision is no longer appropriate - after updates in previous patches.

This patch ensures correct usage.

---
 cpu/arm_cortexa8/omap3/cache.S |   30 ++++++++++++++++++++++++++++--
 cpu/arm_cortexa8/omap3/clock.c |    3 ++-
 2 files changed, 30 insertions(+), 3 deletions(-)
cpu/arm_cortexa8/omap3/cache.S +28 -2
index 0f63815..8e985d8 100644
@@ -131,10 +131,23 @@ finished_inval:
 
 l2_cache_enable:
 	push	{r0, r1, r2, lr}
-	@ ES2 onwards we can disable/enable L2 ourselves
+	@ We can disable/enable L2 ourselves for these devices
+	@ - OMAP3430/OMAP35xx (ES2 onwards)
+	@ - AM35xx
+	mov	r0, #CPU_AM35XX
+	bl	is_cpu_family
+	cmp	r0, #1
+	beq	l2_cache_enable_LATER_THAN_ES2	@ family is AM35xx
+
+	mov	r0, #CPU_OMAP34XX
+	bl	is_cpu_family
+	cmp	r0, #1
+	bne	l2_cache_enable_END		@ Family isn't OMAP34xx/35xx
+
 	bl	get_cpu_rev
 	cmp	r0, #CPU_3XX_ES20
 	blt	l2_cache_disable_EARLIER_THAN_ES2
+l2_cache_enable_LATER_THAN_ES2:
 	mrc	15, 0, r3, cr1, cr0, 1
 	orr	r3, r3, #2
 	mcr	15, 0, r3, cr1, cr0, 1
@@ -162,10 +175,23 @@ l2_cache_enable_END:
 
 l2_cache_disable:
 	push	{r0, r1, r2, lr}
-	@ ES2 onwards we can disable/enable L2 ourselves
+	@ We can disable/enable L2 ourselves for these devices
+	@ - OMAP3430/OMAP35xx (ES2 onwards)
+	@ - AM35xx
+	mov	r0, #CPU_AM35XX
+	bl	is_cpu_family
+	cmp	r0, #1
+	beq	l2_cache_disable_LATER_THAN_ES2	@ family is AM35xx
+
+	mov	r0, #CPU_OMAP34XX
+	bl	is_cpu_family
+	cmp	r0, #1
+	bne	l2_cache_enable_END		@ Family isn't OMAP34xx/35xx
+
 	bl	get_cpu_rev
 	cmp	r0, #CPU_3XX_ES20
 	blt	l2_cache_disable_EARLIER_THAN_ES2
+l2_cache_disable_LATER_THAN_ES2:
 	mrc	15, 0, r3, cr1, cr0, 1
 	bic	r3, r3, #2
 	mcr	15, 0, r3, cr1, cr0, 1
cpu/arm_cortexa8/omap3/clock.c +2 -1
index 174c453..0a1e603 100644
@@ -170,7 +170,8 @@ void prcm_init(void)
 	 * and sil_index will get the values for that SysClk for the
 	 * appropriate silicon rev.
 	 */
-	if (get_cpu_rev())
+	if ((is_cpu_family(CPU_OMAP34XX) && (get_cpu_rev() >= CPU_3XX_ES20)) ||
+		(is_cpu_family(CPU_AM35XX)))
 		sil_index = 1;
 
 	/* Unlock MPU DPLL (slows things down, and needed later) */
Signature · 1 line
1.6.2.2
#7 lore raw

cover AM35x: Initial support for the processor

In reply to Sanjeev Premi
Quoted 8 lines · Sanjeev Premi

This patchset adds basic support for the AM35x processors. It also ensures that u-boot banner shows correct processor at start-up.

Addition of AM35x impacts existing code for OMAP3, most patches in this set are applicable to both processor families.

Quoted 7 lines

The series has been tested on the OMAP3EVM and AM3517EVM. To test on AM3517EVM, earlier patches posted by Vaibhav are required.

[1] http://lists.denx.de/pipermail/u-boot/2009-November/064670.html

The am3517 support is not in.
This patchset is dependent on it.
These changes can only be reviewed casually until then.

Vaibhav,
When will next rev of the am3517 changes be posted ?

Tom

#8 lore raw

cover AM35x: Initial support for the processor

Thanks,
Vaibhav Hiremath
Platform Support Products
Texas Instruments Inc
Ph: +91-80-25099927

Quoted 26 lines

-----Original Message-----
From: Tom [mailto:Tom.Rix at windriver.com]
Sent: Wednesday, December 16, 2009 1:32 AM
To: Premi, Sanjeev
Cc: u-boot at lists.denx.de; Hiremath, Vaibhav; Paulraj, Sandeep
Subject: Re: [U-Boot] [PATCH 0/4] AM35x: Initial support for the processor

Quoted 8 lines · Sanjeev Premi

This patchset adds basic support for the AM35x processors. It also ensures that u-boot banner shows correct processor at start-up.

Addition of AM35x impacts existing code for OMAP3, most patches in this set are applicable to both processor families.

Quoted 5 lines

The series has been tested on the OMAP3EVM and AM3517EVM. To test on AM3517EVM, earlier patches posted by Vaibhav are required.

[1] http://lists.denx.de/pipermail/u-boot/2009-

November/064670.html

Quoted 2 lines
Quoted 6 lines

The am3517 support is not in.
This patchset is dependent on it.
These changes can only be reviewed casually until then.

Vaibhav,
When will next rev of the am3517 changes be posted

[Hiremath, Vaibhav] Tom,
I am bit busy with some outstanding issues on Linux kernel, but probably sometime next week I will be able to re-submit the patches.

Thanks,
Vaibhav

Quoted 2 lines

Tom

#9 lore raw

cover AM35x: Initial support for the processor

In reply to Sanjeev Premi
Quoted 28 lines

-----Original Message-----
From: Premi, Sanjeev
Sent: Wednesday, December 16, 2009 12:08 AM
To: u-boot at lists.denx.de
Cc: Premi, Sanjeev
Subject: [PATCH 0/4] AM35x: Initial support for the processor

This patchset adds basic support for the AM35x processors. It also ensures that u-boot banner shows correct processor at start-up.

Addition of AM35x impacts existing code for OMAP3, most patches in this set are applicable to both processor families.

The series has been tested on the OMAP3EVM and AM3517EVM. To test on AM3517EVM, earlier patches posted by Vaibhav are required.

[1] http://lists.denx.de/pipermail/u-boot/2009-November/064670.html

Sanjeev Premi (4):
AM35x: Introduce support for AM35x processors OMAP3, AM35x: Detect exact CPU in arch_cpu_init() OMAP3, AM35x: Update function print_cpuinfo() OMAP3, AM35x: Update the checks for CPU revision

Quoted 9 lines
 cpu/arm_cortexa8/omap3/cache.S         |   30 +++++++-
 cpu/arm_cortexa8/omap3/clock.c         |    3 +-
 cpu/arm_cortexa8/omap3/sys_info.c      |  140 
+++++++++++++++++++++++++++-----
 include/asm-arm/arch-omap3/cpu.h       |    6 --
 include/asm-arm/arch-omap3/omap3.h     |   40 +++++++++-
 include/asm-arm/arch-omap3/sys_proto.h |    1 +
 6 files changed, 188 insertions(+), 32 deletions(-)

Sandeep, Tom,

Any comments on this series on your queue..

Best regards,
Sanjeev