diff options
| -rw-r--r-- | arch/blackfin/include/asm/processor.h | 6 | ||||
| -rw-r--r-- | arch/blackfin/kernel/setup.c | 43 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf527/include/mach/bf527.h | 19 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf533/include/mach/bf533.h | 10 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf537/include/mach/bf537.h | 10 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf548/include/mach/bf548.h | 23 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf561/include/mach/bf561.h | 6 |
7 files changed, 76 insertions, 41 deletions
diff --git a/arch/blackfin/include/asm/processor.h b/arch/blackfin/include/asm/processor.h index 6f3995b119d8..e3e9b41fa8db 100644 --- a/arch/blackfin/include/asm/processor.h +++ b/arch/blackfin/include/asm/processor.h | |||
| @@ -134,6 +134,12 @@ static inline uint32_t __pure bfin_revid(void) | |||
| 134 | return revid; | 134 | return revid; |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | static inline uint16_t __pure bfin_cpuid(void) | ||
| 138 | { | ||
| 139 | return (bfin_read_CHIPID() & CHIPID_FAMILY) >> 12; | ||
| 140 | |||
| 141 | } | ||
| 142 | |||
| 137 | static inline uint32_t __pure bfin_compiled_revid(void) | 143 | static inline uint32_t __pure bfin_compiled_revid(void) |
| 138 | { | 144 | { |
| 139 | #if defined(CONFIG_BF_REV_0_0) | 145 | #if defined(CONFIG_BF_REV_0_0) |
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index 4267523912bd..74370f3707b9 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
| @@ -813,17 +813,23 @@ void __init setup_arch(char **cmdline_p) | |||
| 813 | printk(KERN_INFO "Compiled for ADSP-%s Rev none\n", CPU); | 813 | printk(KERN_INFO "Compiled for ADSP-%s Rev none\n", CPU); |
| 814 | else | 814 | else |
| 815 | printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid()); | 815 | printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid()); |
| 816 | if (bfin_revid() != bfin_compiled_revid()) { | 816 | |
| 817 | if (bfin_compiled_revid() == -1) | 817 | if (unlikely(CPUID != bfin_cpuid())) |
| 818 | printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n", | 818 | printk(KERN_ERR "ERROR: Not running on ADSP-%s: unknown CPUID 0x%04x Rev 0.%d\n", |
| 819 | bfin_revid()); | 819 | CPU, bfin_cpuid(), bfin_revid()); |
| 820 | else if (bfin_compiled_revid() != 0xffff) | 820 | else { |
| 821 | printk(KERN_ERR "Warning: Compiled for Rev %d, but running on Rev %d\n", | 821 | if (bfin_revid() != bfin_compiled_revid()) { |
| 822 | bfin_compiled_revid(), bfin_revid()); | 822 | if (bfin_compiled_revid() == -1) |
| 823 | printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n", | ||
| 824 | bfin_revid()); | ||
| 825 | else if (bfin_compiled_revid() != 0xffff) | ||
| 826 | printk(KERN_ERR "Warning: Compiled for Rev %d, but running on Rev %d\n", | ||
| 827 | bfin_compiled_revid(), bfin_revid()); | ||
| 828 | } | ||
| 829 | if (bfin_revid() <= CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX) | ||
| 830 | printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n", | ||
| 831 | CPU, bfin_revid()); | ||
| 823 | } | 832 | } |
| 824 | if (bfin_revid() <= CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX) | ||
| 825 | printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n", | ||
| 826 | CPU, bfin_revid()); | ||
| 827 | 833 | ||
| 828 | printk(KERN_INFO "Blackfin Linux support by http://blackfin.uclinux.org/\n"); | 834 | printk(KERN_INFO "Blackfin Linux support by http://blackfin.uclinux.org/\n"); |
| 829 | 835 | ||
| @@ -997,13 +1003,18 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
| 997 | } | 1003 | } |
| 998 | 1004 | ||
| 999 | seq_printf(m, "processor\t: %d\n" | 1005 | seq_printf(m, "processor\t: %d\n" |
| 1000 | "vendor_id\t: %s\n" | 1006 | "vendor_id\t: %s\n", |
| 1001 | "cpu family\t: 0x%x\n" | ||
| 1002 | "model name\t: ADSP-%s %lu(MHz CCLK) %lu(MHz SCLK) (%s)\n" | ||
| 1003 | "stepping\t: %d\n", | ||
| 1004 | *(unsigned int *)v, | 1007 | *(unsigned int *)v, |
| 1005 | vendor, | 1008 | vendor); |
| 1006 | (bfin_read_CHIPID() & CHIPID_FAMILY), | 1009 | |
| 1010 | if (CPUID == bfin_cpuid()) | ||
| 1011 | seq_printf(m, "cpu family\t: 0x%04x\n", CPUID); | ||
| 1012 | else | ||
| 1013 | seq_printf(m, "cpu family\t: Compiled for:0x%04x, running on:0x%04x\n", | ||
| 1014 | CPUID, bfin_cpuid()); | ||
| 1015 | |||
| 1016 | seq_printf(m, "model name\t: ADSP-%s %lu(MHz CCLK) %lu(MHz SCLK) (%s)\n" | ||
| 1017 | "stepping\t: %d\n", | ||
| 1007 | cpu, cclk/1000000, sclk/1000000, | 1018 | cpu, cclk/1000000, sclk/1000000, |
| 1008 | #ifdef CONFIG_MPU | 1019 | #ifdef CONFIG_MPU |
| 1009 | "mpu on", | 1020 | "mpu on", |
diff --git a/arch/blackfin/mach-bf527/include/mach/bf527.h b/arch/blackfin/mach-bf527/include/mach/bf527.h index 330041fde546..144f08d3f8ea 100644 --- a/arch/blackfin/mach-bf527/include/mach/bf527.h +++ b/arch/blackfin/mach-bf527/include/mach/bf527.h | |||
| @@ -110,16 +110,31 @@ | |||
| 110 | 110 | ||
| 111 | #ifdef CONFIG_BF527 | 111 | #ifdef CONFIG_BF527 |
| 112 | #define CPU "BF527" | 112 | #define CPU "BF527" |
| 113 | #define CPUID 0x27e4 | ||
| 114 | #endif | ||
| 115 | #ifdef CONFIG_BF526 | ||
| 116 | #define CPU "BF526" | ||
| 117 | #define CPUID 0x27e4 | ||
| 113 | #endif | 118 | #endif |
| 114 | #ifdef CONFIG_BF525 | 119 | #ifdef CONFIG_BF525 |
| 115 | #define CPU "BF525" | 120 | #define CPU "BF525" |
| 121 | #define CPUID 0x27e4 | ||
| 122 | #endif | ||
| 123 | #ifdef CONFIG_BF524 | ||
| 124 | #define CPU "BF524" | ||
| 125 | #define CPUID 0x27e4 | ||
| 126 | #endif | ||
| 127 | #ifdef CONFIG_BF523 | ||
| 128 | #define CPU "BF523" | ||
| 129 | #define CPUID 0x27e4 | ||
| 116 | #endif | 130 | #endif |
| 117 | #ifdef CONFIG_BF522 | 131 | #ifdef CONFIG_BF522 |
| 118 | #define CPU "BF522" | 132 | #define CPU "BF522" |
| 133 | #define CPUID 0x27e4 | ||
| 119 | #endif | 134 | #endif |
| 135 | |||
| 120 | #ifndef CPU | 136 | #ifndef CPU |
| 121 | #define CPU "UNKNOWN" | 137 | #error Unknown CPU type - This kernel doesn't seem to be configured properly |
| 122 | #define CPUID 0x0 | ||
| 123 | #endif | 138 | #endif |
| 124 | 139 | ||
| 125 | #endif /* __MACH_BF527_H__ */ | 140 | #endif /* __MACH_BF527_H__ */ |
diff --git a/arch/blackfin/mach-bf533/include/mach/bf533.h b/arch/blackfin/mach-bf533/include/mach/bf533.h index 949801112303..dfc8c1ad2d7a 100644 --- a/arch/blackfin/mach-bf533/include/mach/bf533.h +++ b/arch/blackfin/mach-bf533/include/mach/bf533.h | |||
| @@ -141,19 +141,19 @@ | |||
| 141 | 141 | ||
| 142 | #ifdef CONFIG_BF533 | 142 | #ifdef CONFIG_BF533 |
| 143 | #define CPU "BF533" | 143 | #define CPU "BF533" |
| 144 | #define CPUID 0x027a5000 | 144 | #define CPUID 0x27a5 |
| 145 | #endif | 145 | #endif |
| 146 | #ifdef CONFIG_BF532 | 146 | #ifdef CONFIG_BF532 |
| 147 | #define CPU "BF532" | 147 | #define CPU "BF532" |
| 148 | #define CPUID 0x0275A000 | 148 | #define CPUID 0x275A |
| 149 | #endif | 149 | #endif |
| 150 | #ifdef CONFIG_BF531 | 150 | #ifdef CONFIG_BF531 |
| 151 | #define CPU "BF531" | 151 | #define CPU "BF531" |
| 152 | #define CPUID 0x027a5000 | 152 | #define CPUID 0x27a5 |
| 153 | #endif | 153 | #endif |
| 154 | |||
| 154 | #ifndef CPU | 155 | #ifndef CPU |
| 155 | #define CPU "UNKNOWN" | 156 | #error Unknown CPU type - This kernel doesn't seem to be configured properly |
| 156 | #define CPUID 0x0 | ||
| 157 | #endif | 157 | #endif |
| 158 | 158 | ||
| 159 | #endif /* __MACH_BF533_H__ */ | 159 | #endif /* __MACH_BF533_H__ */ |
diff --git a/arch/blackfin/mach-bf537/include/mach/bf537.h b/arch/blackfin/mach-bf537/include/mach/bf537.h index 7a047e04e383..24d5c9d42323 100644 --- a/arch/blackfin/mach-bf537/include/mach/bf537.h +++ b/arch/blackfin/mach-bf537/include/mach/bf537.h | |||
| @@ -121,19 +121,19 @@ | |||
| 121 | 121 | ||
| 122 | #ifdef CONFIG_BF537 | 122 | #ifdef CONFIG_BF537 |
| 123 | #define CPU "BF537" | 123 | #define CPU "BF537" |
| 124 | #define CPUID 0x027c8000 | 124 | #define CPUID 0x27c8 |
| 125 | #endif | 125 | #endif |
| 126 | #ifdef CONFIG_BF536 | 126 | #ifdef CONFIG_BF536 |
| 127 | #define CPU "BF536" | 127 | #define CPU "BF536" |
| 128 | #define CPUID 0x027c8000 | 128 | #define CPUID 0x27c8 |
| 129 | #endif | 129 | #endif |
| 130 | #ifdef CONFIG_BF534 | 130 | #ifdef CONFIG_BF534 |
| 131 | #define CPU "BF534" | 131 | #define CPU "BF534" |
| 132 | #define CPUID 0x027c6000 | 132 | #define CPUID 0x27c6 |
| 133 | #endif | 133 | #endif |
| 134 | |||
| 134 | #ifndef CPU | 135 | #ifndef CPU |
| 135 | #define CPU "UNKNOWN" | 136 | #error Unknown CPU type - This kernel doesn't seem to be configured properly |
| 136 | #define CPUID 0x0 | ||
| 137 | #endif | 137 | #endif |
| 138 | 138 | ||
| 139 | #endif /* __MACH_BF537_H__ */ | 139 | #endif /* __MACH_BF537_H__ */ |
diff --git a/arch/blackfin/mach-bf548/include/mach/bf548.h b/arch/blackfin/mach-bf548/include/mach/bf548.h index 14f8a7b84544..49f9b403d458 100644 --- a/arch/blackfin/mach-bf548/include/mach/bf548.h +++ b/arch/blackfin/mach-bf548/include/mach/bf548.h | |||
| @@ -106,20 +106,23 @@ | |||
| 106 | 106 | ||
| 107 | #if defined(CONFIG_BF542) | 107 | #if defined(CONFIG_BF542) |
| 108 | # define CPU "BF542" | 108 | # define CPU "BF542" |
| 109 | # define CPUID 0x027c8000 | 109 | # define CPUID 0x27de |
| 110 | #elif defined(CONFIG_BF544) | 110 | #elif defined(CONFIG_BF544) |
| 111 | # define CPU "BF544" | 111 | # define CPU "BF544" |
| 112 | # define CPUID 0x027c8000 | 112 | # define CPUID 0x27de |
| 113 | #elif defined(CONFIG_BF547) | 113 | #elif defined(CONFIG_BF547) |
| 114 | # define CPU "BF547" | 114 | # define CPU "BF547" |
| 115 | # define CPUID 0x27de | ||
| 115 | #elif defined(CONFIG_BF548) | 116 | #elif defined(CONFIG_BF548) |
| 116 | # define CPU "BF548" | 117 | # define CPU "BF548" |
| 117 | # define CPUID 0x027c6000 | 118 | # define CPUID 0x27de |
| 118 | #elif defined(CONFIG_BF549) | 119 | #elif defined(CONFIG_BF549) |
| 119 | # define CPU "BF549" | 120 | # define CPU "BF549" |
| 120 | #else | 121 | # define CPUID 0x27de |
| 121 | # define CPU "UNKNOWN" | 122 | #endif |
| 122 | # define CPUID 0x0 | 123 | |
| 124 | #ifndef CPU | ||
| 125 | #error Unknown CPU type - This kernel doesn't seem to be configured properly | ||
| 123 | #endif | 126 | #endif |
| 124 | 127 | ||
| 125 | #endif /* __MACH_BF48_H__ */ | 128 | #endif /* __MACH_BF48_H__ */ |
diff --git a/arch/blackfin/mach-bf561/include/mach/bf561.h b/arch/blackfin/mach-bf561/include/mach/bf561.h index 7787caad3555..18b1b3a223ab 100644 --- a/arch/blackfin/mach-bf561/include/mach/bf561.h +++ b/arch/blackfin/mach-bf561/include/mach/bf561.h | |||
| @@ -211,11 +211,11 @@ | |||
| 211 | 211 | ||
| 212 | #ifdef CONFIG_BF561 | 212 | #ifdef CONFIG_BF561 |
| 213 | #define CPU "BF561" | 213 | #define CPU "BF561" |
| 214 | #define CPUID 0x027bb000 | 214 | #define CPUID 0x27bb |
| 215 | #endif | 215 | #endif |
| 216 | |||
| 216 | #ifndef CPU | 217 | #ifndef CPU |
| 217 | #define CPU "UNKNOWN" | 218 | #error Unknown CPU type - This kernel doesn't seem to be configured properly |
| 218 | #define CPUID 0x0 | ||
| 219 | #endif | 219 | #endif |
| 220 | 220 | ||
| 221 | #endif /* __MACH_BF561_H__ */ | 221 | #endif /* __MACH_BF561_H__ */ |
