Commit 071d2f0b authored by Paul Burton's avatar Paul Burton

MIPS: r4k-bugs64: Limit R4k bug checks to affected systems

Only build the checks for R4k errata workarounds if we expect that the
kernel might actually run on a system with an R4k CPU - ie.
CONFIG_SYS_HAS_CPU_R4X00=y & we're targeting a pre-MIPSr1 ISA revision.

Rename cpu-bugs64.c to r4k-bugs64.c to indicate the fact that the code
is specific to R4k CPUs.
Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
parent 4bf841eb
...@@ -2554,6 +2554,10 @@ config CPU_R4000_WORKAROUNDS ...@@ -2554,6 +2554,10 @@ config CPU_R4000_WORKAROUNDS
config CPU_R4400_WORKAROUNDS config CPU_R4400_WORKAROUNDS
bool bool
config CPU_R4X00_BUGS64
bool
default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
config MIPS_ASID_SHIFT config MIPS_ASID_SHIFT
int int
default 6 if CPU_R3000 || CPU_TX39XX default 6 if CPU_R3000 || CPU_TX39XX
......
...@@ -26,9 +26,8 @@ extern void check_bugs64(void); ...@@ -26,9 +26,8 @@ extern void check_bugs64(void);
static inline void check_bugs_early(void) static inline void check_bugs_early(void)
{ {
#ifdef CONFIG_64BIT if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
check_bugs64_early(); check_bugs64_early();
#endif
} }
static inline void check_bugs(void) static inline void check_bugs(void)
...@@ -37,19 +36,18 @@ static inline void check_bugs(void) ...@@ -37,19 +36,18 @@ static inline void check_bugs(void)
cpu_data[cpu].udelay_val = loops_per_jiffy; cpu_data[cpu].udelay_val = loops_per_jiffy;
check_bugs32(); check_bugs32();
#ifdef CONFIG_64BIT
if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
check_bugs64(); check_bugs64();
#endif
} }
static inline int r4k_daddiu_bug(void) static inline int r4k_daddiu_bug(void)
{ {
#ifdef CONFIG_64BIT if (!IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
return 0;
WARN_ON(daddiu_bug < 0); WARN_ON(daddiu_bug < 0);
return daddiu_bug != 0; return daddiu_bug != 0;
#else
return 0;
#endif
} }
#endif /* _ASM_BUGS_H */ #endif /* _ASM_BUGS_H */
...@@ -80,7 +80,7 @@ obj-$(CONFIG_KGDB) += kgdb.o ...@@ -80,7 +80,7 @@ obj-$(CONFIG_KGDB) += kgdb.o
obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_PROC_FS) += proc.o
obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o
obj-$(CONFIG_64BIT) += cpu-bugs64.o obj-$(CONFIG_CPU_R4X00_BUGS64) += r4k-bugs64.o
obj-$(CONFIG_I8253) += i8253.o obj-$(CONFIG_I8253) += i8253.o
......
...@@ -657,7 +657,7 @@ isrdhwr: ...@@ -657,7 +657,7 @@ isrdhwr:
.set pop .set pop
END(handle_ri_rdhwr) END(handle_ri_rdhwr)
#ifdef CONFIG_64BIT #ifdef CONFIG_CPU_R4X00_BUGS64
/* A temporary overflow handler used by check_daddi(). */ /* A temporary overflow handler used by check_daddi(). */
__INIT __INIT
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment