Blackfin arch: print out error/warning if you are running on the incorrect CPU type
Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
This commit is contained in:
parent
6d0b8c993d
commit
e482cad241
|
@ -134,6 +134,12 @@ static inline uint32_t __pure bfin_revid(void)
|
||||||
return revid;
|
return revid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline uint16_t __pure bfin_cpuid(void)
|
||||||
|
{
|
||||||
|
return (bfin_read_CHIPID() & CHIPID_FAMILY) >> 12;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static inline uint32_t __pure bfin_compiled_revid(void)
|
static inline uint32_t __pure bfin_compiled_revid(void)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_BF_REV_0_0)
|
#if defined(CONFIG_BF_REV_0_0)
|
||||||
|
|
|
@ -813,6 +813,11 @@ void __init setup_arch(char **cmdline_p)
|
||||||
printk(KERN_INFO "Compiled for ADSP-%s Rev none\n", CPU);
|
printk(KERN_INFO "Compiled for ADSP-%s Rev none\n", CPU);
|
||||||
else
|
else
|
||||||
printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid());
|
printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid());
|
||||||
|
|
||||||
|
if (unlikely(CPUID != bfin_cpuid()))
|
||||||
|
printk(KERN_ERR "ERROR: Not running on ADSP-%s: unknown CPUID 0x%04x Rev 0.%d\n",
|
||||||
|
CPU, bfin_cpuid(), bfin_revid());
|
||||||
|
else {
|
||||||
if (bfin_revid() != bfin_compiled_revid()) {
|
if (bfin_revid() != bfin_compiled_revid()) {
|
||||||
if (bfin_compiled_revid() == -1)
|
if (bfin_compiled_revid() == -1)
|
||||||
printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n",
|
printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n",
|
||||||
|
@ -824,6 +829,7 @@ void __init setup_arch(char **cmdline_p)
|
||||||
if (bfin_revid() <= CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX)
|
if (bfin_revid() <= CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX)
|
||||||
printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n",
|
printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n",
|
||||||
CPU, bfin_revid());
|
CPU, bfin_revid());
|
||||||
|
}
|
||||||
|
|
||||||
printk(KERN_INFO "Blackfin Linux support by http://blackfin.uclinux.org/\n");
|
printk(KERN_INFO "Blackfin Linux support by http://blackfin.uclinux.org/\n");
|
||||||
|
|
||||||
|
@ -997,13 +1003,18 @@ static int show_cpuinfo(struct seq_file *m, void *v)
|
||||||
}
|
}
|
||||||
|
|
||||||
seq_printf(m, "processor\t: %d\n"
|
seq_printf(m, "processor\t: %d\n"
|
||||||
"vendor_id\t: %s\n"
|
"vendor_id\t: %s\n",
|
||||||
"cpu family\t: 0x%x\n"
|
|
||||||
"model name\t: ADSP-%s %lu(MHz CCLK) %lu(MHz SCLK) (%s)\n"
|
|
||||||
"stepping\t: %d\n",
|
|
||||||
*(unsigned int *)v,
|
*(unsigned int *)v,
|
||||||
vendor,
|
vendor);
|
||||||
(bfin_read_CHIPID() & CHIPID_FAMILY),
|
|
||||||
|
if (CPUID == bfin_cpuid())
|
||||||
|
seq_printf(m, "cpu family\t: 0x%04x\n", CPUID);
|
||||||
|
else
|
||||||
|
seq_printf(m, "cpu family\t: Compiled for:0x%04x, running on:0x%04x\n",
|
||||||
|
CPUID, bfin_cpuid());
|
||||||
|
|
||||||
|
seq_printf(m, "model name\t: ADSP-%s %lu(MHz CCLK) %lu(MHz SCLK) (%s)\n"
|
||||||
|
"stepping\t: %d\n",
|
||||||
cpu, cclk/1000000, sclk/1000000,
|
cpu, cclk/1000000, sclk/1000000,
|
||||||
#ifdef CONFIG_MPU
|
#ifdef CONFIG_MPU
|
||||||
"mpu on",
|
"mpu on",
|
||||||
|
|
|
@ -110,16 +110,31 @@
|
||||||
|
|
||||||
#ifdef CONFIG_BF527
|
#ifdef CONFIG_BF527
|
||||||
#define CPU "BF527"
|
#define CPU "BF527"
|
||||||
|
#define CPUID 0x27e4
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_BF526
|
||||||
|
#define CPU "BF526"
|
||||||
|
#define CPUID 0x27e4
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_BF525
|
#ifdef CONFIG_BF525
|
||||||
#define CPU "BF525"
|
#define CPU "BF525"
|
||||||
|
#define CPUID 0x27e4
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_BF524
|
||||||
|
#define CPU "BF524"
|
||||||
|
#define CPUID 0x27e4
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_BF523
|
||||||
|
#define CPU "BF523"
|
||||||
|
#define CPUID 0x27e4
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_BF522
|
#ifdef CONFIG_BF522
|
||||||
#define CPU "BF522"
|
#define CPU "BF522"
|
||||||
|
#define CPUID 0x27e4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CPU
|
#ifndef CPU
|
||||||
#define CPU "UNKNOWN"
|
#error Unknown CPU type - This kernel doesn't seem to be configured properly
|
||||||
#define CPUID 0x0
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __MACH_BF527_H__ */
|
#endif /* __MACH_BF527_H__ */
|
||||||
|
|
|
@ -141,19 +141,19 @@
|
||||||
|
|
||||||
#ifdef CONFIG_BF533
|
#ifdef CONFIG_BF533
|
||||||
#define CPU "BF533"
|
#define CPU "BF533"
|
||||||
#define CPUID 0x027a5000
|
#define CPUID 0x27a5
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_BF532
|
#ifdef CONFIG_BF532
|
||||||
#define CPU "BF532"
|
#define CPU "BF532"
|
||||||
#define CPUID 0x0275A000
|
#define CPUID 0x275A
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_BF531
|
#ifdef CONFIG_BF531
|
||||||
#define CPU "BF531"
|
#define CPU "BF531"
|
||||||
#define CPUID 0x027a5000
|
#define CPUID 0x27a5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CPU
|
#ifndef CPU
|
||||||
#define CPU "UNKNOWN"
|
#error Unknown CPU type - This kernel doesn't seem to be configured properly
|
||||||
#define CPUID 0x0
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __MACH_BF533_H__ */
|
#endif /* __MACH_BF533_H__ */
|
||||||
|
|
|
@ -121,19 +121,19 @@
|
||||||
|
|
||||||
#ifdef CONFIG_BF537
|
#ifdef CONFIG_BF537
|
||||||
#define CPU "BF537"
|
#define CPU "BF537"
|
||||||
#define CPUID 0x027c8000
|
#define CPUID 0x27c8
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_BF536
|
#ifdef CONFIG_BF536
|
||||||
#define CPU "BF536"
|
#define CPU "BF536"
|
||||||
#define CPUID 0x027c8000
|
#define CPUID 0x27c8
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_BF534
|
#ifdef CONFIG_BF534
|
||||||
#define CPU "BF534"
|
#define CPU "BF534"
|
||||||
#define CPUID 0x027c6000
|
#define CPUID 0x27c6
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CPU
|
#ifndef CPU
|
||||||
#define CPU "UNKNOWN"
|
#error Unknown CPU type - This kernel doesn't seem to be configured properly
|
||||||
#define CPUID 0x0
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __MACH_BF537_H__ */
|
#endif /* __MACH_BF537_H__ */
|
||||||
|
|
|
@ -106,20 +106,23 @@
|
||||||
|
|
||||||
#if defined(CONFIG_BF542)
|
#if defined(CONFIG_BF542)
|
||||||
# define CPU "BF542"
|
# define CPU "BF542"
|
||||||
# define CPUID 0x027c8000
|
# define CPUID 0x27de
|
||||||
#elif defined(CONFIG_BF544)
|
#elif defined(CONFIG_BF544)
|
||||||
# define CPU "BF544"
|
# define CPU "BF544"
|
||||||
# define CPUID 0x027c8000
|
# define CPUID 0x27de
|
||||||
#elif defined(CONFIG_BF547)
|
#elif defined(CONFIG_BF547)
|
||||||
# define CPU "BF547"
|
# define CPU "BF547"
|
||||||
|
# define CPUID 0x27de
|
||||||
#elif defined(CONFIG_BF548)
|
#elif defined(CONFIG_BF548)
|
||||||
# define CPU "BF548"
|
# define CPU "BF548"
|
||||||
# define CPUID 0x027c6000
|
# define CPUID 0x27de
|
||||||
#elif defined(CONFIG_BF549)
|
#elif defined(CONFIG_BF549)
|
||||||
# define CPU "BF549"
|
# define CPU "BF549"
|
||||||
#else
|
# define CPUID 0x27de
|
||||||
# define CPU "UNKNOWN"
|
#endif
|
||||||
# define CPUID 0x0
|
|
||||||
|
#ifndef CPU
|
||||||
|
#error Unknown CPU type - This kernel doesn't seem to be configured properly
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __MACH_BF48_H__ */
|
#endif /* __MACH_BF48_H__ */
|
||||||
|
|
|
@ -211,11 +211,11 @@
|
||||||
|
|
||||||
#ifdef CONFIG_BF561
|
#ifdef CONFIG_BF561
|
||||||
#define CPU "BF561"
|
#define CPU "BF561"
|
||||||
#define CPUID 0x027bb000
|
#define CPUID 0x27bb
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CPU
|
#ifndef CPU
|
||||||
#define CPU "UNKNOWN"
|
#error Unknown CPU type - This kernel doesn't seem to be configured properly
|
||||||
#define CPUID 0x0
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __MACH_BF561_H__ */
|
#endif /* __MACH_BF561_H__ */
|
||||||
|
|
Loading…
Reference in New Issue