summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/include/mach
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2012-04-04 09:27:19 -0700
committerKukjin Kim <kgene.kim@samsung.com>2012-04-04 09:27:19 -0700
commitfd9abe1b5beafe776c51507dac32486f627c6ad8 (patch)
treee3a2a1db44bf7bc1b75a8f838e3bb1977e974b2d /arch/arm/mach-exynos/include/mach
parent8551f3ff49aeda57c6c204a4a4769395fa679fb8 (diff)
downloadtalos-obmc-linux-fd9abe1b5beafe776c51507dac32486f627c6ad8.tar.gz
talos-obmc-linux-fd9abe1b5beafe776c51507dac32486f627c6ad8.zip
ARM: EXYNOS: fix CONFIG_DEBUG_LL
addruart cannot read from the physical address of the chipid register, that will fail as soon as the mmu is turned on. Fixing it to read from the physical or virtual address depending on the mmu state also does not work, because there is a period between head.S and exynos_map_io where the mmu is on, the uart is mapped and used, but the chipid mapping is not yet present. Fix addruart to use the ARM Main ID cp15 register to determine if the core is Cortex A15 (EXYNOS5) or not (EXYNOS4). Signed-off-by: Colin Cross <ccross@android.com> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Thomas Abraham <thomas.abraham@linaro.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-exynos/include/mach')
-rw-r--r--arch/arm/mach-exynos/include/mach/debug-macro.S7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/arm/mach-exynos/include/mach/debug-macro.S b/arch/arm/mach-exynos/include/mach/debug-macro.S
index 6c857ff0b5d8..e0c86ea475e7 100644
--- a/arch/arm/mach-exynos/include/mach/debug-macro.S
+++ b/arch/arm/mach-exynos/include/mach/debug-macro.S
@@ -21,10 +21,9 @@
*/
.macro addruart, rp, rv, tmp
- mov \rp, #0x10000000
- ldr \rp, [\rp, #0x0]
- and \rp, \rp, #0xf00000
- teq \rp, #0x500000 @@ EXYNOS5
+ mrc p15, 0, \tmp, c0, c0, 0
+ and \tmp, \tmp, #0xf0
+ teq \tmp, #0xf0 @@ A15
ldreq \rp, =EXYNOS5_PA_UART
movne \rp, #EXYNOS4_PA_UART @@ EXYNOS4
ldr \rv, =S3C_VA_UART
OpenPOWER on IntegriCloud