{ .hawkeye = 0xb5d9, .dev = 0x4, .type = 0x24220000 },
        { .hawkeye = 0xb5d9, .dev = 0x8, .type = 0x24230000 },
        { .hawkeye = 0xb68a, .dev = 0x0, .type = 0x24300000 },
-       { .hawkeye = 0xb7ae, .dev = 0xf, .type = 0x34300000 },
-       { .hawkeye = 0xb7ae, .dev = 0x0, .type = 0x34301000 },
-       { .hawkeye = 0xb7ae, .dev = 0xe, .type = 0x34302000 },
 };
 
 static u32 __init read_tap_reg(int reg)
                case OMAP_TAP_DIE_ID_2: regval = 0x00000000; break;
                case OMAP_TAP_DIE_ID_3: regval = 0x2d2c0000; break;
                }
-       } else if ((((cpuid >> 4) & 0xFFF) == 0xC08) && ((cpuid & 0xF) == 0x1)) {
-               switch (reg) {
-               case OMAP_TAP_IDCODE  : regval = 0x1b7ae02f; break;
-               /* Making DevType as 0xE in ES2 to differ from other ESx */
-               case OMAP_TAP_PROD_ID : regval = 0x000E00F0; break;
-               case OMAP_TAP_DIE_ID_0: regval = 0x0400800f; break;
-               case OMAP_TAP_DIE_ID_1: regval = 0x04013d1d; break;
-               case OMAP_TAP_DIE_ID_2: regval = 0x00000000; break;
-               case OMAP_TAP_DIE_ID_3: regval = 0x1fe80001; break;
-               }
        } else
                regval = __raw_readl(TAP_BASE + reg);
 
                prod_id, dev_type);
 #endif
 
+       /*
+        * Detection for 34xx ES2.0 and above can be done with just
+        * hawkeye and rev. See TRM 1.5.2 Device Identification.
+        * Note that rev cannot be used directly as ES1.0 uses value 0.
+        */
+       if (hawkeye == 0xb7ae) {
+               system_rev = 0x34300000 | ((1 + rev) << 12);
+               pr_info("OMAP%04x ES2.%i\n", system_rev >> 16, rev);
+               return;
+       }
+
        /* Check hawkeye ids */
        for (i = 0; i < ARRAY_SIZE(omap_ids); i++) {
                if (hawkeye == omap_ids[i].hawkeye)