]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
mx6: Distinguish mx6dual from mx6quad
authorFabio Estevam <fabio.estevam@freescale.com>
Sun, 26 Jan 2014 17:06:41 +0000 (15:06 -0200)
committerStefano Babic <sbabic@denx.de>
Tue, 11 Feb 2014 10:24:12 +0000 (11:24 +0100)
Currently when we boot a mx6dual U-boot reports that it is a mx6quad.

Report it as MX6D instead:

CPU:   Freescale i.MX6D rev1.2 at 792 MHz

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Stefano babic <sbabic@denx.de>
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
arch/arm/cpu/armv7/mx6/soc.c
arch/arm/imx-common/cpu.c
arch/arm/include/asm/arch-imx/cpu.h

index 2aad0a15bb90391f715578502312cb19634cf07f..4c5c3672212a8e2d58c1ddddf98e0a7345765a0a 100644 (file)
@@ -41,14 +41,19 @@ u32 get_cpu_rev(void)
 
        if (type != MXC_CPU_MX6SL) {
                reg = readl(&anatop->digprog);
+               struct scu_regs *scu = (struct scu_regs *)SCU_BASE_ADDR;
+               u32 cfg = readl(&scu->config) & 3;
                type = ((reg >> 16) & 0xff);
                if (type == MXC_CPU_MX6DL) {
-                       struct scu_regs *scu = (struct scu_regs *)SCU_BASE_ADDR;
-                       u32 cfg = readl(&scu->config) & 3;
-
                        if (!cfg)
                                type = MXC_CPU_MX6SOLO;
                }
+
+               if (type == MXC_CPU_MX6Q) {
+                       if (cfg == 1)
+                               type = MXC_CPU_MX6D;
+               }
+
        }
        reg &= 0xff;            /* mx6 silicon revision */
        return (type << 12) | (reg + 0x10);
@@ -62,6 +67,9 @@ u32 __weak get_board_rev(void)
        if (type == MXC_CPU_MX6SOLO)
                cpurev = (MXC_CPU_MX6DL) << 12 | (cpurev & 0xFFF);
 
+       if (type == MXC_CPU_MX6D)
+               cpurev = (MXC_CPU_MX6Q) << 12 | (cpurev & 0xFFF);
+
        return cpurev;
 }
 #endif
index 92316494099558f3b5649d47beba3a21946d3194..a77c4decc960eb2b08767af005d69881d58cb41f 100644 (file)
@@ -106,6 +106,8 @@ const char *get_imx_type(u32 imxtype)
        switch (imxtype) {
        case MXC_CPU_MX6Q:
                return "6Q";    /* Quad-core version of the mx6 */
+       case MXC_CPU_MX6D:
+               return "6D";    /* Dual-core version of the mx6 */
        case MXC_CPU_MX6DL:
                return "6DL";   /* Dual Lite version of the mx6 */
        case MXC_CPU_MX6SOLO:
index 8c725e236285c958f6b0c69993878e0b8833bd48..a35940e64fea5a2d1e51a11d7df0ce078295f9e1 100644 (file)
@@ -10,3 +10,4 @@
 #define MXC_CPU_MX6DL          0x61
 #define MXC_CPU_MX6SOLO                0x62
 #define MXC_CPU_MX6Q           0x63
+#define MXC_CPU_MX6D           0x64