Message ID | 09f12ae990d9f23ca8feb1370b3d0adb9537ab1c.1425477263.git.marcel@ziswiler.com |
---|---|
State | Accepted |
Delegated to: | Tom Rini |
Headers | show |
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
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!
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 --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;