All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mm/pg-r4k.c: Fix a typo in an R4600 v2 erratum workaround
@ 2007-10-02 13:47 Maciej W. Rozycki
  2007-10-02 14:36 ` Thiemo Seufer
  2007-10-03  0:04 ` Ralf Baechle
  0 siblings, 2 replies; 4+ messages in thread
From: Maciej W. Rozycki @ 2007-10-02 13:47 UTC (permalink / raw)
  To: Ralf Baechle, Thiemo Seufer; +Cc: linux-mips

 Restore a load from KSEG1 done as a workaround for an R4600 v2 
erratum, dropped with 211be16de99a7424e66c0b6c0d00e2c970508ac2.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
---
Thiemo,

 It reverts your change of Sep 1st, 2005; given the way the code is 
written, I am assuming the change was accidental, correct?  At the moment 
the load never happens.

 Ralf, please apply.

  Maciej

patch-mips-2.6.23-rc5-20070904-pg-r4k-r4600-0
diff -up --recursive --new-file linux-mips-2.6.23-rc5-20070904.macro/arch/mips/mm/pg-r4k.c linux-mips-2.6.23-rc5-20070904/arch/mips/mm/pg-r4k.c
--- linux-mips-2.6.23-rc5-20070904.macro/arch/mips/mm/pg-r4k.c	2007-02-05 16:38:47.000000000 +0000
+++ linux-mips-2.6.23-rc5-20070904/arch/mips/mm/pg-r4k.c	2007-10-02 00:15:33.000000000 +0000
@@ -209,7 +209,7 @@ static inline void build_cdex_p(void)
 	}
 
 	if (R4600_V2_HIT_CACHEOP_WAR && cpu_is_r4600_v2_x())
-		build_insn_word(0x3c01a000);	/* lui     $at, 0xa000  */
+		build_insn_word(0x8c200000);	/* lw      $zero, ($at) */
 
 	mi.c_format.opcode     = cache_op;
 	mi.c_format.rs         = 4;		/* $a0 */

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mm/pg-r4k.c: Fix a typo in an R4600 v2 erratum workaround
  2007-10-02 13:47 [PATCH] mm/pg-r4k.c: Fix a typo in an R4600 v2 erratum workaround Maciej W. Rozycki
@ 2007-10-02 14:36 ` Thiemo Seufer
  2007-10-03  0:04 ` Ralf Baechle
  1 sibling, 0 replies; 4+ messages in thread
From: Thiemo Seufer @ 2007-10-02 14:36 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Ralf Baechle, linux-mips

Maciej W. Rozycki wrote:
>  Restore a load from KSEG1 done as a workaround for an R4600 v2 
> erratum, dropped with 211be16de99a7424e66c0b6c0d00e2c970508ac2.
> 
> Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
> ---
> Thiemo,
> 
>  It reverts your change of Sep 1st, 2005; given the way the code is 
> written, I am assuming the change was accidental, correct?  At the moment 
> the load never happens.

That's correct.


Thiemo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mm/pg-r4k.c: Fix a typo in an R4600 v2 erratum workaround
  2007-10-02 13:47 [PATCH] mm/pg-r4k.c: Fix a typo in an R4600 v2 erratum workaround Maciej W. Rozycki
  2007-10-02 14:36 ` Thiemo Seufer
@ 2007-10-03  0:04 ` Ralf Baechle
  2007-10-03  0:21   ` Ralf Baechle
  1 sibling, 1 reply; 4+ messages in thread
From: Ralf Baechle @ 2007-10-03  0:04 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Thiemo Seufer, linux-mips

On Tue, Oct 02, 2007 at 02:47:22PM +0100, Maciej W. Rozycki wrote:

>  Restore a load from KSEG1 done as a workaround for an R4600 v2 
> erratum, dropped with 211be16de99a7424e66c0b6c0d00e2c970508ac2.
> 
> Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
> ---
> Thiemo,
> 
>  It reverts your change of Sep 1st, 2005; given the way the code is 
> written, I am assuming the change was accidental, correct?  At the moment 
> the load never happens.

But it should ...  So this seems to be the right thing, no?

  Ralf

diff --git a/arch/mips/mm/pg-r4k.c b/arch/mips/mm/pg-r4k.c
index dc795be..66921fb 100644
--- a/arch/mips/mm/pg-r4k.c
+++ b/arch/mips/mm/pg-r4k.c
@@ -208,8 +208,10 @@ static inline void build_cdex_p(void)
 		build_nop();
 	}
 
-	if (R4600_V2_HIT_CACHEOP_WAR && cpu_is_r4600_v2_x())
+	if (R4600_V2_HIT_CACHEOP_WAR && cpu_is_r4600_v2_x()) {
 		build_insn_word(0x3c01a000);	/* lui     $at, 0xa000  */
+		build_insn_word(0x8c200000);	/* lw      $zero, ($at) */
+	}
 
 	mi.c_format.opcode     = cache_op;
 	mi.c_format.rs         = 4;		/* $a0 */
@@ -390,8 +392,10 @@ void __init build_clear_page(void)
 	} else
 		build_addiu_a2_a0(off);
 
-	if (R4600_V2_HIT_CACHEOP_WAR && cpu_is_r4600_v2_x())
+	if (R4600_V2_HIT_CACHEOP_WAR && cpu_is_r4600_v2_x()) {
 		build_insn_word(0x3c01a000);	/* lui     $at, 0xa000  */
+		build_insn_word(0x8c200000);	/* lw      $zero, ($at) */
+	}
 
 dest = label();
 	do {
@@ -452,8 +456,10 @@ void __init build_copy_page(void)
 	} else
 		build_addiu_a2_a0(off);
 
-	if (R4600_V2_HIT_CACHEOP_WAR && cpu_is_r4600_v2_x())
+	if (R4600_V2_HIT_CACHEOP_WAR && cpu_is_r4600_v2_x()) {
 		build_insn_word(0x3c01a000);	/* lui     $at, 0xa000  */
+		build_insn_word(0x8c200000);	/* lw      $zero, ($at) */
+	}
 
 dest = label();
 	loop_start = store_offset;

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] mm/pg-r4k.c: Fix a typo in an R4600 v2 erratum workaround
  2007-10-03  0:04 ` Ralf Baechle
@ 2007-10-03  0:21   ` Ralf Baechle
  0 siblings, 0 replies; 4+ messages in thread
From: Ralf Baechle @ 2007-10-03  0:21 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Thiemo Seufer, linux-mips

On Wed, Oct 03, 2007 at 01:04:25AM +0100, Ralf Baechle wrote:

> >  Restore a load from KSEG1 done as a workaround for an R4600 v2 
> > erratum, dropped with 211be16de99a7424e66c0b6c0d00e2c970508ac2.
> > 
> > Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
> > ---
> > Thiemo,
> > 
> >  It reverts your change of Sep 1st, 2005; given the way the code is 
> > written, I am assuming the change was accidental, correct?  At the moment 
> > the load never happens.
> 
> But it should ...  So this seems to be the right thing, no?

Ah, I see.  So I applied your patch.

  Ralf

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-10-03  0:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-02 13:47 [PATCH] mm/pg-r4k.c: Fix a typo in an R4600 v2 erratum workaround Maciej W. Rozycki
2007-10-02 14:36 ` Thiemo Seufer
2007-10-03  0:04 ` Ralf Baechle
2007-10-03  0:21   ` Ralf Baechle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.