[ARM] 4516/1: S3C: Fix uncompressor serial output for ARM926
authorBen Dooks <ben-linux@fluff.org>
Sun, 22 Jul 2007 15:14:02 +0000 (16:14 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 22 Jul 2007 15:44:36 +0000 (16:44 +0100)
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>
include/asm-arm/arch-s3c2410/uncompress.h

index 22328b7..7058382 100644 (file)
 /* 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;