Loading arch/arm/mach-omap2/id.c +31 −7 Original line number Diff line number Diff line Loading @@ -298,7 +298,6 @@ static void __init omap4_check_revision(void) u32 idcode; u16 hawkeye; u8 rev; char *rev_name = "ES1.0"; /* * The IC rev detection is done with hawkeye and rev. Loading @@ -309,14 +308,39 @@ static void __init omap4_check_revision(void) hawkeye = (idcode >> 12) & 0xffff; rev = (idcode >> 28) & 0xff; if ((hawkeye == 0xb852) && (rev == 0x0)) { /* * Few initial ES2.0 samples IDCODE is same as ES1.0 * Use ARM register to detect the correct ES version */ if (!rev) { idcode = read_cpuid(CPUID_ID); rev = (idcode & 0xf) - 1; } switch (hawkeye) { case 0xb852: switch (rev) { case 0: omap_revision = OMAP4430_REV_ES1_0; omap_chip.oc |= CHIP_IS_OMAP4430ES1; pr_info("OMAP%04x %s\n", omap_rev() >> 16, rev_name); return; break; case 1: omap_revision = OMAP4430_REV_ES2_0; omap_chip.oc |= CHIP_IS_OMAP4430ES2; break; default: omap_revision = OMAP4430_REV_ES2_0; omap_chip.oc |= CHIP_IS_OMAP4430ES2; } break; default: /* Unknown default to latest silicon rev as default*/ omap_revision = OMAP4430_REV_ES2_0; omap_chip.oc |= CHIP_IS_OMAP4430ES2; } pr_err("Unknown OMAP4 CPU id\n"); pr_info("OMAP%04x ES%d.0\n", omap_rev() >> 16, ((omap_rev() >> 12) & 0xf) + 1); } #define OMAP3_SHOW_FEATURE(feat) \ Loading arch/arm/mach-omap2/omap4-common.c +7 −3 Original line number Diff line number Diff line Loading @@ -61,10 +61,14 @@ static int __init omap_l2_cache_init(void) omap_smc1(0x102, 0x1); /* * 32KB way size, 16-way associativity, * parity disabled * 16-way associativity, parity disabled * Way size - 32KB (es1.0) * Way size - 64KB (es2.0 +) */ if (omap_rev() == OMAP4430_REV_ES1_0) l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff); else l2x0_init(l2cache_base, 0x0e070000, 0xc0000fff); return 0; } Loading arch/arm/plat-omap/dmtimer.c +1 −1 Original line number Diff line number Diff line Loading @@ -581,7 +581,7 @@ int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source) * When the functional clock disappears, too quick writes seem * to cause an abort. XXX Is this still necessary? */ __delay(150000); __delay(300000); return ret; } Loading arch/arm/plat-omap/include/plat/cpu.h +4 −1 Original line number Diff line number Diff line Loading @@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517) #define OMAP443X_CLASS 0x44300044 #define OMAP4430_REV_ES1_0 0x44300044 #define OMAP4430_REV_ES2_0 0x44301044 /* * omap_chip bits Loading @@ -417,10 +418,12 @@ IS_OMAP_TYPE(3517, 0x3517) #define CHIP_IS_OMAP4430ES1 (1 << 8) #define CHIP_IS_OMAP3630ES1_1 (1 << 9) #define CHIP_IS_OMAP3630ES1_2 (1 << 10) #define CHIP_IS_OMAP4430ES2 (1 << 11) #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1) #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1 | \ CHIP_IS_OMAP4430ES2) /* * "GE" here represents "greater than or equal to" in terms of ES Loading arch/arm/plat-omap/include/plat/uncompress.h +1 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ static inline void __arch_decomp_setup(unsigned long arch_id) /* omap4 based boards using UART3 */ DEBUG_LL_OMAP4(3, omap_4430sdp); DEBUG_LL_OMAP4(3, omap4_panda); /* zoom2/3 external uart */ DEBUG_LL_ZOOM(omap_zoom2); Loading Loading
arch/arm/mach-omap2/id.c +31 −7 Original line number Diff line number Diff line Loading @@ -298,7 +298,6 @@ static void __init omap4_check_revision(void) u32 idcode; u16 hawkeye; u8 rev; char *rev_name = "ES1.0"; /* * The IC rev detection is done with hawkeye and rev. Loading @@ -309,14 +308,39 @@ static void __init omap4_check_revision(void) hawkeye = (idcode >> 12) & 0xffff; rev = (idcode >> 28) & 0xff; if ((hawkeye == 0xb852) && (rev == 0x0)) { /* * Few initial ES2.0 samples IDCODE is same as ES1.0 * Use ARM register to detect the correct ES version */ if (!rev) { idcode = read_cpuid(CPUID_ID); rev = (idcode & 0xf) - 1; } switch (hawkeye) { case 0xb852: switch (rev) { case 0: omap_revision = OMAP4430_REV_ES1_0; omap_chip.oc |= CHIP_IS_OMAP4430ES1; pr_info("OMAP%04x %s\n", omap_rev() >> 16, rev_name); return; break; case 1: omap_revision = OMAP4430_REV_ES2_0; omap_chip.oc |= CHIP_IS_OMAP4430ES2; break; default: omap_revision = OMAP4430_REV_ES2_0; omap_chip.oc |= CHIP_IS_OMAP4430ES2; } break; default: /* Unknown default to latest silicon rev as default*/ omap_revision = OMAP4430_REV_ES2_0; omap_chip.oc |= CHIP_IS_OMAP4430ES2; } pr_err("Unknown OMAP4 CPU id\n"); pr_info("OMAP%04x ES%d.0\n", omap_rev() >> 16, ((omap_rev() >> 12) & 0xf) + 1); } #define OMAP3_SHOW_FEATURE(feat) \ Loading
arch/arm/mach-omap2/omap4-common.c +7 −3 Original line number Diff line number Diff line Loading @@ -61,10 +61,14 @@ static int __init omap_l2_cache_init(void) omap_smc1(0x102, 0x1); /* * 32KB way size, 16-way associativity, * parity disabled * 16-way associativity, parity disabled * Way size - 32KB (es1.0) * Way size - 64KB (es2.0 +) */ if (omap_rev() == OMAP4430_REV_ES1_0) l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff); else l2x0_init(l2cache_base, 0x0e070000, 0xc0000fff); return 0; } Loading
arch/arm/plat-omap/dmtimer.c +1 −1 Original line number Diff line number Diff line Loading @@ -581,7 +581,7 @@ int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source) * When the functional clock disappears, too quick writes seem * to cause an abort. XXX Is this still necessary? */ __delay(150000); __delay(300000); return ret; } Loading
arch/arm/plat-omap/include/plat/cpu.h +4 −1 Original line number Diff line number Diff line Loading @@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517) #define OMAP443X_CLASS 0x44300044 #define OMAP4430_REV_ES1_0 0x44300044 #define OMAP4430_REV_ES2_0 0x44301044 /* * omap_chip bits Loading @@ -417,10 +418,12 @@ IS_OMAP_TYPE(3517, 0x3517) #define CHIP_IS_OMAP4430ES1 (1 << 8) #define CHIP_IS_OMAP3630ES1_1 (1 << 9) #define CHIP_IS_OMAP3630ES1_2 (1 << 10) #define CHIP_IS_OMAP4430ES2 (1 << 11) #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1) #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1 | \ CHIP_IS_OMAP4430ES2) /* * "GE" here represents "greater than or equal to" in terms of ES Loading
arch/arm/plat-omap/include/plat/uncompress.h +1 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ static inline void __arch_decomp_setup(unsigned long arch_id) /* omap4 based boards using UART3 */ DEBUG_LL_OMAP4(3, omap_4430sdp); DEBUG_LL_OMAP4(3, omap4_panda); /* zoom2/3 external uart */ DEBUG_LL_ZOOM(omap_zoom2); Loading