Author: gonzo
Date: Mon Jan  7 23:30:53 2013
New Revision: 245137
URL: http://svnweb.freebsd.org/changeset/base/245137

Log:
  - Identify more devices for OMAP4 SoC (up to OMAP4470)
  - Whitespace fixes

Modified:
  head/sys/arm/ti/ti_cpuid.c
  head/sys/arm/ti/ti_cpuid.h

Modified: head/sys/arm/ti/ti_cpuid.c
==============================================================================
--- head/sys/arm/ti/ti_cpuid.c  Mon Jan  7 21:35:25 2013        (r245136)
+++ head/sys/arm/ti/ti_cpuid.c  Mon Jan  7 23:30:53 2013        (r245137)
@@ -129,27 +129,75 @@ omap4_get_revision(void)
 
        switch (hawkeye) {
        case 0xB852:
-               if (revision == 0)
+               switch (revision) {
+               case 0:
                        chip_revision = OMAP4430_REV_ES1_0;
-               else
-                       chip_revision = OMAP4430_REV_ES2_0;
+                       break;
+               case 1:
+                       chip_revision = OMAP4430_REV_ES2_1;
+                       break;
+               default:
+                       chip_revision = OMAP4430_REV_UNKNOWN;
+                       break;
+               }
                break;
+
        case 0xB95C:
-               if (revision == 3)
+               switch (revision) {
+               case 3:
                        chip_revision = OMAP4430_REV_ES2_1;
-               else if (revision == 4)
+                       break;
+               case 4:
                        chip_revision = OMAP4430_REV_ES2_2;
-               else
+                       break;
+               case 6:
                        chip_revision = OMAP4430_REV_ES2_3;
+                       break;
+               default:
+                       chip_revision = OMAP4430_REV_UNKNOWN;
+                       break;
+               }
                break;
+
+       case 0xB94E:
+               switch (revision) {
+               case 0:
+                       chip_revision = OMAP4460_REV_ES1_0;
+                       break;
+               case 2:
+                       chip_revision = OMAP4460_REV_ES1_1;
+                       break;
+               default:
+                       chip_revision = OMAP4460_REV_UNKNOWN;
+                       break;
+               }
+               break;
+
+       case 0xB975:
+               switch (revision) {
+               case 0:
+                       chip_revision = OMAP4470_REV_ES1_0;
+                       break;
+               default:
+                       chip_revision = OMAP4470_REV_UNKNOWN;
+                       break;
+               }
+               break;
+
        default:
                /* Default to the latest revision if we can't determine type */
-               chip_revision = OMAP4430_REV_ES2_3;
+               chip_revision = OMAP_UNKNOWN_DEV;
                break;
        }
-       printf("Texas Instruments OMAP%04x Processor, Revision ES%u.%u\n",
-               OMAP_REV_DEVICE(chip_revision), OMAP_REV_MAJOR(chip_revision), 
-               OMAP_REV_MINOR(chip_revision));
+       if (chip_revision != OMAP_UNKNOWN_DEV) {
+               printf("Texas Instruments OMAP%04x Processor, Revision 
ES%u.%u\n",
+                   OMAP_REV_DEVICE(chip_revision), 
OMAP_REV_MAJOR(chip_revision), 
+                   OMAP_REV_MINOR(chip_revision));
+       }
+       else {
+               printf("Texas Instruments unknown OMAP chip: %04x, rev %d\n",
+                   hawkeye, revision); 
+       }
 }
 
 /**

Modified: head/sys/arm/ti/ti_cpuid.h
==============================================================================
--- head/sys/arm/ti/ti_cpuid.h  Mon Jan  7 21:35:25 2013        (r245136)
+++ head/sys/arm/ti/ti_cpuid.h  Mon Jan  7 23:30:53 2013        (r245137)
@@ -30,34 +30,46 @@
 #ifndef _TI_CPUID_H_
 #define        _TI_CPUID_H_
 
-#define OMAP_MAKEREV(d, a, b, c) \
+#define        OMAP_MAKEREV(d, a, b, c) \
        (uint32_t)(((d) << 16) | (((a) & 0xf) << 8) | (((b) & 0xf) << 4) | ((c) 
& 0xf))
 
-#define OMAP_REV_DEVICE(x)      (((x) >> 16) & 0xffff)
-#define OMAP_REV_MAJOR(x)       (((x) >> 8) & 0xf)
-#define OMAP_REV_MINOR(x)       (((x) >> 4) & 0xf)
-#define OMAP_REV_MINOR_MINOR(x) (((x) >> 0) & 0xf)
+#define        OMAP_REV_DEVICE(x)      (((x) >> 16) & 0xffff)
+#define        OMAP_REV_MAJOR(x)       (((x) >> 8) & 0xf)
+#define        OMAP_REV_MINOR(x)       (((x) >> 4) & 0xf)
+#define        OMAP_REV_MINOR_MINOR(x) (((x) >> 0) & 0xf)
 
 #define        OMAP3350_DEV            0x3530
-#define OMAP3350_REV_ES1_0      OMAP_MAKEREV(OMAP3350_DEV, 1, 0, 0)
-#define OMAP3530_REV_ES2_0      OMAP_MAKEREV(OMAP3350_DEV, 2, 0, 0)
-#define OMAP3530_REV_ES2_1      OMAP_MAKEREV(OMAP3350_DEV, 2, 1, 0)
-#define OMAP3530_REV_ES3_0      OMAP_MAKEREV(OMAP3350_DEV, 3, 0, 0)
-#define OMAP3530_REV_ES3_1      OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 0)
-#define OMAP3530_REV_ES3_1_2    OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 2)
+#define        OMAP3350_REV_ES1_0      OMAP_MAKEREV(OMAP3350_DEV, 1, 0, 0)
+#define        OMAP3530_REV_ES2_0      OMAP_MAKEREV(OMAP3350_DEV, 2, 0, 0)
+#define        OMAP3530_REV_ES2_1      OMAP_MAKEREV(OMAP3350_DEV, 2, 1, 0)
+#define        OMAP3530_REV_ES3_0      OMAP_MAKEREV(OMAP3350_DEV, 3, 0, 0)
+#define        OMAP3530_REV_ES3_1      OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 0)
+#define        OMAP3530_REV_ES3_1_2    OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 2)
 
 #define        OMAP4430_DEV            0x4430
-#define OMAP4430_REV_ES1_0      OMAP_MAKEREV(OMAP4430_DEV, 1, 0, 0)
-#define OMAP4430_REV_ES2_0      OMAP_MAKEREV(OMAP4430_DEV, 2, 0, 0)
-#define OMAP4430_REV_ES2_1      OMAP_MAKEREV(OMAP4430_DEV, 2, 1, 0)
-#define OMAP4430_REV_ES2_2      OMAP_MAKEREV(OMAP4430_DEV, 2, 2, 0)
-#define OMAP4430_REV_ES2_3      OMAP_MAKEREV(OMAP4430_DEV, 2, 3, 0)
-
-#define AM335X_DEVREV(x)       ((x) >> 28)
-
-#define CHIP_OMAP_3    0
-#define CHIP_OMAP_4    1
-#define CHIP_AM335X    2
+#define        OMAP4430_REV_ES1_0      OMAP_MAKEREV(OMAP4430_DEV, 1, 0, 0)
+#define        OMAP4430_REV_ES2_0      OMAP_MAKEREV(OMAP4430_DEV, 2, 0, 0)
+#define        OMAP4430_REV_ES2_1      OMAP_MAKEREV(OMAP4430_DEV, 2, 1, 0)
+#define        OMAP4430_REV_ES2_2      OMAP_MAKEREV(OMAP4430_DEV, 2, 2, 0)
+#define        OMAP4430_REV_ES2_3      OMAP_MAKEREV(OMAP4430_DEV, 2, 3, 0)
+#define        OMAP4430_REV_UNKNOWN    OMAP_MAKEREV(OMAP4430_DEV, 9, 9, 9)
+
+#define        OMAP4460_DEV            0x4460
+#define        OMAP4460_REV_ES1_0      OMAP_MAKEREV(OMAP4460_DEV, 1, 0, 0)
+#define        OMAP4460_REV_ES1_1      OMAP_MAKEREV(OMAP4460_DEV, 1, 1, 0)
+#define        OMAP4460_REV_UNKNOWN    OMAP_MAKEREV(OMAP4460_DEV, 9, 9, 9)
+
+#define        OMAP4470_DEV            0x4470
+#define        OMAP4470_REV_ES1_0      OMAP_MAKEREV(OMAP4470_DEV, 1, 0, 0)
+#define        OMAP4470_REV_UNKNOWN    OMAP_MAKEREV(OMAP4470_DEV, 9, 9, 9)
+
+#define        OMAP_UNKNOWN_DEV        OMAP_MAKEREV(0x9999, 9, 9, 9)
+
+#define        AM335X_DEVREV(x)        ((x) >> 28)
+
+#define        CHIP_OMAP_3     0
+#define        CHIP_OMAP_4     1
+#define        CHIP_AM335X     2
 
 static __inline int ti_chip(void)
 {
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to