diff options
author | Ben Dooks <ben-linux@fluff.org> | 2007-07-22 16:14:02 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-07-22 16:44:36 +0100 |
commit | 5c49218a15188cc036364c4cda325bae3cb138ae (patch) | |
tree | 7a33b7048b05275e6fd6b0f520511511e0fb290f /include | |
parent | a14a26aca610bbd09fb62fb9fd5dbf6b41321972 (diff) |
[ARM] 4516/1: S3C: Fix uncompressor serial output for ARM926
Ensure we check for ARM926 in the uncompressor, as all current
ARM926s do not have an ID register and all have S3C2440 style
UARTs.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-arm/arch-s3c2410/uncompress.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/asm-arm/arch-s3c2410/uncompress.h b/include/asm-arm/arch-s3c2410/uncompress.h index 22328b70ba5..7058382a640 100644 --- a/include/asm-arm/arch-s3c2410/uncompress.h +++ b/include/asm-arm/arch-s3c2410/uncompress.h @@ -25,6 +25,15 @@ /* how many bytes we allow into the FIFO at a time in FIFO mode */ #define FIFO_MAX (14) +static inline int is_arm926(void) +{ + unsigned int cpuid; + + asm volatile ("mrc p15, 0, %0, c1, c0, 0" : "=r" (cpuid)); + + return ((cpuid & 0xff0) == 0x260); +} + static void arch_detect_cpu(void) { unsigned int cpuid; @@ -32,7 +41,7 @@ static void arch_detect_cpu(void) cpuid = *((volatile unsigned int *)S3C2410_GSTATUS1); cpuid &= S3C2410_GSTATUS1_IDMASK; - if (cpuid == S3C2410_GSTATUS1_2440 || + if (is_arm926() || cpuid == S3C2410_GSTATUS1_2440 || cpuid == S3C2410_GSTATUS1_2442) { fifo_mask = S3C2440_UFSTAT_TXMASK; fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT; |