Commit 2f794d09 authored by Manuel Lauss's avatar Manuel Lauss Committed by Ralf Baechle

MIPS: Alchemy: MIPS hazard workarounds are not required.

The Alchemy manuals state:

"All pipeline hazards and dependencies are enforced by hardware interlocks
 so that any sequence of instructions is guaranteed to execute correctly.
 Therefore, it is not necessary to pad legacy MIPS hazards (such as
 load delay slots and coprocessor accesses) with NOPs."

Run-tested on Au12x0, without any ill effects.
Signed-off-by: default avatarManuel Lauss <mano@roarinelk.homelinux.net>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 32647e0c
...@@ -87,7 +87,7 @@ do { \ ...@@ -87,7 +87,7 @@ do { \
: "=r" (tmp)); \ : "=r" (tmp)); \
} while (0) } while (0)
#elif defined(CONFIG_CPU_MIPSR1) #elif defined(CONFIG_CPU_MIPSR1) && !defined(CONFIG_MACH_ALCHEMY)
/* /*
* These are slightly complicated by the fact that we guarantee R1 kernels to * These are slightly complicated by the fact that we guarantee R1 kernels to
...@@ -139,7 +139,7 @@ do { \ ...@@ -139,7 +139,7 @@ do { \
} while (0) } while (0)
#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_CAVIUM_OCTEON) || \ #elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_CAVIUM_OCTEON) || \
defined(CONFIG_CPU_R5500) defined(CONFIG_CPU_R5500) || defined(CONFIG_MACH_ALCHEMY)
/* /*
* R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer. * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer.
......
...@@ -292,7 +292,6 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l, ...@@ -292,7 +292,6 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
case CPU_R4300: case CPU_R4300:
case CPU_5KC: case CPU_5KC:
case CPU_TX49XX: case CPU_TX49XX:
case CPU_ALCHEMY:
case CPU_PR4450: case CPU_PR4450:
uasm_i_nop(p); uasm_i_nop(p);
tlbw(p); tlbw(p);
...@@ -315,6 +314,7 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l, ...@@ -315,6 +314,7 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
case CPU_R5500: case CPU_R5500:
if (m4kc_tlbp_war()) if (m4kc_tlbp_war())
uasm_i_nop(p); uasm_i_nop(p);
case CPU_ALCHEMY:
tlbw(p); tlbw(p);
break; break;
......
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