diff --git a/include/asm-arm/arch-s3c2410/uncompress.h b/include/asm-arm/arch-s3c2410/uncompress.h index 22328b70ba5d..7058382a6405 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;