diff options
author | Tony Lindgren <tony@atomide.com> | 2010-09-24 19:01:57 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-09-24 19:01:57 -0400 |
commit | 5a37e7840f445b551b8bdba3b4f10f7ea365dcfc (patch) | |
tree | eb3102db3932144ce0946e270b5d135212afb26f | |
parent | 39cdd14570e3c32728d407cb38de17e80cf16104 (diff) | |
parent | e7193cc8e7b67b29483d9fd4fec04ec7b42861f0 (diff) |
Merge branch 'omap_for_2.6.37' of git://dev.omapzoom.org/pub/scm/santosh/kernel-omap4-base into omap-for-linus
-rw-r--r-- | arch/arm/mach-omap2/id.c | 38 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap4-common.c | 10 | ||||
-rw-r--r-- | arch/arm/plat-omap/dmtimer.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/cpu.h | 5 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/uncompress.h | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/sram.c | 13 |
6 files changed, 46 insertions, 23 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 9a879f95950..91d7df402b3 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -298,7 +298,6 @@ static void __init omap4_check_revision(void) | |||
298 | u32 idcode; | 298 | u32 idcode; |
299 | u16 hawkeye; | 299 | u16 hawkeye; |
300 | u8 rev; | 300 | u8 rev; |
301 | char *rev_name = "ES1.0"; | ||
302 | 301 | ||
303 | /* | 302 | /* |
304 | * The IC rev detection is done with hawkeye and rev. | 303 | * The IC rev detection is done with hawkeye and rev. |
@@ -309,14 +308,39 @@ static void __init omap4_check_revision(void) | |||
309 | hawkeye = (idcode >> 12) & 0xffff; | 308 | hawkeye = (idcode >> 12) & 0xffff; |
310 | rev = (idcode >> 28) & 0xff; | 309 | rev = (idcode >> 28) & 0xff; |
311 | 310 | ||
312 | if ((hawkeye == 0xb852) && (rev == 0x0)) { | 311 | /* |
313 | omap_revision = OMAP4430_REV_ES1_0; | 312 | * Few initial ES2.0 samples IDCODE is same as ES1.0 |
314 | omap_chip.oc |= CHIP_IS_OMAP4430ES1; | 313 | * Use ARM register to detect the correct ES version |
315 | pr_info("OMAP%04x %s\n", omap_rev() >> 16, rev_name); | 314 | */ |
316 | return; | 315 | if (!rev) { |
316 | idcode = read_cpuid(CPUID_ID); | ||
317 | rev = (idcode & 0xf) - 1; | ||
318 | } | ||
319 | |||
320 | switch (hawkeye) { | ||
321 | case 0xb852: | ||
322 | switch (rev) { | ||
323 | case 0: | ||
324 | omap_revision = OMAP4430_REV_ES1_0; | ||
325 | omap_chip.oc |= CHIP_IS_OMAP4430ES1; | ||
326 | break; | ||
327 | case 1: | ||
328 | omap_revision = OMAP4430_REV_ES2_0; | ||
329 | omap_chip.oc |= CHIP_IS_OMAP4430ES2; | ||
330 | break; | ||
331 | default: | ||
332 | omap_revision = OMAP4430_REV_ES2_0; | ||
333 | omap_chip.oc |= CHIP_IS_OMAP4430ES2; | ||
334 | } | ||
335 | break; | ||
336 | default: | ||
337 | /* Unknown default to latest silicon rev as default*/ | ||
338 | omap_revision = OMAP4430_REV_ES2_0; | ||
339 | omap_chip.oc |= CHIP_IS_OMAP4430ES2; | ||
317 | } | 340 | } |
318 | 341 | ||
319 | pr_err("Unknown OMAP4 CPU id\n"); | 342 | pr_info("OMAP%04x ES%d.0\n", |
343 | omap_rev() >> 16, ((omap_rev() >> 12) & 0xf) + 1); | ||
320 | } | 344 | } |
321 | 345 | ||
322 | #define OMAP3_SHOW_FEATURE(feat) \ | 346 | #define OMAP3_SHOW_FEATURE(feat) \ |
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c index 13dc9794dcc..923f9f5f91c 100644 --- a/arch/arm/mach-omap2/omap4-common.c +++ b/arch/arm/mach-omap2/omap4-common.c | |||
@@ -61,10 +61,14 @@ static int __init omap_l2_cache_init(void) | |||
61 | omap_smc1(0x102, 0x1); | 61 | omap_smc1(0x102, 0x1); |
62 | 62 | ||
63 | /* | 63 | /* |
64 | * 32KB way size, 16-way associativity, | 64 | * 16-way associativity, parity disabled |
65 | * parity disabled | 65 | * Way size - 32KB (es1.0) |
66 | * Way size - 64KB (es2.0 +) | ||
66 | */ | 67 | */ |
67 | l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff); | 68 | if (omap_rev() == OMAP4430_REV_ES1_0) |
69 | l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff); | ||
70 | else | ||
71 | l2x0_init(l2cache_base, 0x0e070000, 0xc0000fff); | ||
68 | 72 | ||
69 | return 0; | 73 | return 0; |
70 | } | 74 | } |
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 44bafdab2dc..1d706cf63ca 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -581,7 +581,7 @@ int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source) | |||
581 | * When the functional clock disappears, too quick writes seem | 581 | * When the functional clock disappears, too quick writes seem |
582 | * to cause an abort. XXX Is this still necessary? | 582 | * to cause an abort. XXX Is this still necessary? |
583 | */ | 583 | */ |
584 | __delay(150000); | 584 | __delay(300000); |
585 | 585 | ||
586 | return ret; | 586 | return ret; |
587 | } | 587 | } |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index 2e2ae530fce..9b38e4bddf5 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
@@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
391 | 391 | ||
392 | #define OMAP443X_CLASS 0x44300044 | 392 | #define OMAP443X_CLASS 0x44300044 |
393 | #define OMAP4430_REV_ES1_0 0x44300044 | 393 | #define OMAP4430_REV_ES1_0 0x44300044 |
394 | #define OMAP4430_REV_ES2_0 0x44301044 | ||
394 | 395 | ||
395 | /* | 396 | /* |
396 | * omap_chip bits | 397 | * omap_chip bits |
@@ -417,10 +418,12 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
417 | #define CHIP_IS_OMAP4430ES1 (1 << 8) | 418 | #define CHIP_IS_OMAP4430ES1 (1 << 8) |
418 | #define CHIP_IS_OMAP3630ES1_1 (1 << 9) | 419 | #define CHIP_IS_OMAP3630ES1_1 (1 << 9) |
419 | #define CHIP_IS_OMAP3630ES1_2 (1 << 10) | 420 | #define CHIP_IS_OMAP3630ES1_2 (1 << 10) |
421 | #define CHIP_IS_OMAP4430ES2 (1 << 11) | ||
420 | 422 | ||
421 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) | 423 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) |
422 | 424 | ||
423 | #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1) | 425 | #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1 | \ |
426 | CHIP_IS_OMAP4430ES2) | ||
424 | 427 | ||
425 | /* | 428 | /* |
426 | * "GE" here represents "greater than or equal to" in terms of ES | 429 | * "GE" here represents "greater than or equal to" in terms of ES |
diff --git a/arch/arm/plat-omap/include/plat/uncompress.h b/arch/arm/plat-omap/include/plat/uncompress.h index ddf723be48d..57dffa7e3ea 100644 --- a/arch/arm/plat-omap/include/plat/uncompress.h +++ b/arch/arm/plat-omap/include/plat/uncompress.h | |||
@@ -153,6 +153,7 @@ static inline void __arch_decomp_setup(unsigned long arch_id) | |||
153 | 153 | ||
154 | /* omap4 based boards using UART3 */ | 154 | /* omap4 based boards using UART3 */ |
155 | DEBUG_LL_OMAP4(3, omap_4430sdp); | 155 | DEBUG_LL_OMAP4(3, omap_4430sdp); |
156 | DEBUG_LL_OMAP4(3, omap4_panda); | ||
156 | 157 | ||
157 | /* zoom2/3 external uart */ | 158 | /* zoom2/3 external uart */ |
158 | DEBUG_LL_ZOOM(omap_zoom2); | 159 | DEBUG_LL_ZOOM(omap_zoom2); |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 226b2e858d6..98c86ff1720 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -53,7 +53,7 @@ | |||
53 | #define OMAP4_SRAM_PUB_PA (OMAP4_SRAM_PA + 0x4000) | 53 | #define OMAP4_SRAM_PUB_PA (OMAP4_SRAM_PA + 0x4000) |
54 | #define OMAP4_SRAM_PUB_VA (OMAP4_SRAM_VA + 0x4000) | 54 | #define OMAP4_SRAM_PUB_VA (OMAP4_SRAM_VA + 0x4000) |
55 | 55 | ||
56 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) | 56 | #if defined(CONFIG_ARCH_OMAP2PLUS) |
57 | #define SRAM_BOOTLOADER_SZ 0x00 | 57 | #define SRAM_BOOTLOADER_SZ 0x00 |
58 | #else | 58 | #else |
59 | #define SRAM_BOOTLOADER_SZ 0x80 | 59 | #define SRAM_BOOTLOADER_SZ 0x80 |
@@ -93,16 +93,7 @@ extern unsigned long omapfb_reserve_sram(unsigned long sram_pstart, | |||
93 | */ | 93 | */ |
94 | static int is_sram_locked(void) | 94 | static int is_sram_locked(void) |
95 | { | 95 | { |
96 | int type = 0; | 96 | if (OMAP2_DEVICE_TYPE_GP == omap_type()) { |
97 | |||
98 | if (cpu_is_omap44xx()) | ||
99 | /* Not yet supported */ | ||
100 | return 0; | ||
101 | |||
102 | if (cpu_is_omap242x()) | ||
103 | type = omap_rev() & OMAP2_DEVICETYPE_MASK; | ||
104 | |||
105 | if (type == GP_DEVICE) { | ||
106 | /* RAMFW: R/W access to all initiators for all qualifier sets */ | 97 | /* RAMFW: R/W access to all initiators for all qualifier sets */ |
107 | if (cpu_is_omap242x()) { | 98 | if (cpu_is_omap242x()) { |
108 | __raw_writel(0xFF, OMAP24XX_VA_REQINFOPERM0); /* all q-vects */ | 99 | __raw_writel(0xFF, OMAP24XX_VA_REQINFOPERM0); /* all q-vects */ |