]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
arm: pxa: introducing cpuinfo display for marvell pxa270m
authorMarcel Ziswiler <marcel@ziswiler.com>
Wed, 4 Mar 2015 13:57:31 +0000 (14:57 +0100)
committerLothar Waßmann <LW@KARO-electronics.de>
Tue, 1 Sep 2015 12:10:30 +0000 (14:10 +0200)
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>
arch/arm/cpu/pxa/cpuinfo.c

index 17d8be5b5b1c1025902012d87015764ed080764d..25de9e5fffbc5cfdc2534496418ab230c9ffd637 100644 (file)
@@ -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;