diff mbox

[U-Boot] arm: pxa: introducing cpuinfo display for marvell pxa270m

Message ID 09f12ae990d9f23ca8feb1370b3d0adb9537ab1c.1425477263.git.marcel@ziswiler.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Marcel Ziswiler March 4, 2015, 1:57 p.m. UTC
According to table 2-3 on page 87 of Marvell's latest PXA270
Specification Update Rev. I from 2010.04.19 [1] there exists a breed of
chips with a new CPU ID for PXA270M A1 stepping which our latest
Colibri PXA270 V2.4A modules actually have assembled. This patch helps
in correctly identifying those chips upon boot as well which then looks
as follows:

CPU: Marvell PXA27xM rev. A1

[1] http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf
---
 arch/arm/cpu/pxa/cpuinfo.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

Comments

Marek Vasut March 5, 2015, 1:53 p.m. UTC | #1
On Wednesday, March 04, 2015 at 02:57:31 PM, Marcel Ziswiler wrote:
> According to table 2-3 on page 87 of Marvell's latest PXA270
> Specification Update Rev. I from 2010.04.19 [1] there exists a breed of
> chips with a new CPU ID for PXA270M A1 stepping which our latest
> Colibri PXA270 V2.4A modules actually have assembled. This patch helps
> in correctly identifying those chips upon boot as well which then looks
> as follows:
> 
> CPU: Marvell PXA27xM rev. A1

Acked-by: Marek Vasut <marex@denx.de>

Tom, can you please pick this directly for current ? Or do you want me to
cook you a PXA PR with one patch?

Best regards,
Marek Vasut
Tom Rini March 5, 2015, 2:43 p.m. UTC | #2
On Wed, Mar 04, 2015 at 02:57:31PM +0100, Marcel Ziswiler wrote:

> According to table 2-3 on page 87 of Marvell's latest PXA270
> Specification Update Rev. I from 2010.04.19 [1] there exists a breed of
> chips with a new CPU ID for PXA270M A1 stepping which our latest
> Colibri PXA270 V2.4A modules actually have assembled. This patch helps
> in correctly identifying those chips upon boot as well which then looks
> as follows:
> 
> CPU: Marvell PXA27xM rev. A1
> 
> [1] http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf
>
> Acked-by: Marek Vasut <marex@denx.de>

Applied to u-boot/master, thanks!
Marek Vasut March 5, 2015, 2:48 p.m. UTC | #3
On Thursday, March 05, 2015 at 03:43:29 PM, Tom Rini wrote:
> On Wed, Mar 04, 2015 at 02:57:31PM +0100, Marcel Ziswiler wrote:
> > According to table 2-3 on page 87 of Marvell's latest PXA270
> > Specification Update Rev. I from 2010.04.19 [1] there exists a breed of
> > chips with a new CPU ID for PXA270M A1 stepping which our latest
> > Colibri PXA270 V2.4A modules actually have assembled. This patch helps
> > in correctly identifying those chips upon boot as well which then looks
> > as follows:
> > 
> > CPU: Marvell PXA27xM rev. A1
> > 
> > [1]
> > http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_
> > spec_update.pdf
> > 
> > Acked-by: Marek Vasut <marex@denx.de>

Thanks :)

Best regards,
Marek Vasut
diff mbox

Patch

diff --git a/arch/arm/cpu/pxa/cpuinfo.c b/arch/arm/cpu/pxa/cpuinfo.c
index 17d8be5..25de9e5 100644
--- a/arch/arm/cpu/pxa/cpuinfo.c
+++ b/arch/arm/cpu/pxa/cpuinfo.c
@@ -46,6 +46,13 @@  int cpu_is_pxa27x(void)
 	return id == CPU_VALUE_PXA27X;
 }
 
+int cpu_is_pxa27xm(void)
+{
+	uint32_t id = pxa_get_cpuid();
+	return ((id & CPU_MASK_PXA_PRODID) == CPU_VALUE_PXA27X) &&
+			((id & CPU_MASK_PXA_REVID) == 8);
+}
+
 uint32_t pxa_get_cpu_revision(void)
 {
 	return pxa_get_cpuid() & CPU_MASK_PRODREV;
@@ -91,13 +98,17 @@  static const char *pxa27x_get_revision(void)
 
 	id = pxa_get_cpuid() & CPU_MASK_PXA_REVID;
 
-	if ((id == 5) || (id == 6) || (id > 7))
+	if ((id == 5) || (id == 6) || (id > 8))
 		return unknown;
 
 	/* Cap the special PXA270 C5 case. */
 	if (id == 7)
 		id = 5;
 
+	/* Cap the special PXA270M A1 case. */
+	if (id == 8)
+		id = 1;
+
 	return rev[id];
 }
 
@@ -107,7 +118,9 @@  static int print_cpuinfo_pxa2xx(void)
 		puts("Marvell PXA25x rev. ");
 		puts(pxa25x_get_revision());
 	} else if (cpu_is_pxa27x()) {
-		puts("Marvell PXA27x rev. ");
+		puts("Marvell PXA27x");
+		if (cpu_is_pxa27xm()) puts("M");
+		puts(" rev. ");
 		puts(pxa27x_get_revision());
 	} else
 		return -EINVAL;