linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
To: Scott Wood <scottwood@freescale.com>,
	"linuxppc-dev@ozlabs.org" <linuxppc-dev@ozlabs.org>,
	Rex Feany <RFeany@mrv.com>
Subject: [PATCH 07/10] 8xx: Restore _PAGE_WRITETHRU
Date: Fri, 20 Nov 2009 11:21:08 +0100	[thread overview]
Message-ID: <1258712471-3104-8-git-send-email-Joakim.Tjernlund@transmode.se> (raw)
In-Reply-To: <1258712471-3104-7-git-send-email-Joakim.Tjernlund@transmode.se>

8xx has not had WRITETHRU due to lack of bits in the pte.
After the recent rewrite of the 8xx TLB code, there are
two bits left. Use one of them to WRITETHRU.

Perhaps use the last SW bit to PAGE_SPECIAL or PAGE_FILE?

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
---
 arch/powerpc/include/asm/pte-8xx.h |    5 +++--
 arch/powerpc/kernel/head_8xx.S     |    8 ++++++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/include/asm/pte-8xx.h b/arch/powerpc/include/asm/pte-8xx.h
index 68ba861..d44826e 100644
--- a/arch/powerpc/include/asm/pte-8xx.h
+++ b/arch/powerpc/include/asm/pte-8xx.h
@@ -35,11 +35,12 @@
 #define _PAGE_SPECIAL	0x0008	/* SW entry, forced to 0 by the TLB miss */
 #define _PAGE_DIRTY	0x0100	/* C: page changed */
 
-/* These 3 software bits must be masked out when the entry is loaded
- * into the TLB, 2 SW bits left.
+/* These 4 software bits must be masked out when the entry is loaded
+ * into the TLB, 1 SW bit left(0x0080).
  */
 #define _PAGE_GUARDED	0x0010	/* software: guarded access */
 #define _PAGE_ACCESSED	0x0020	/* software: page referenced */
+#define _PAGE_WRITETHRU	0x0040	/* software: caching is write through */
 
 /* Setting any bits in the nibble with the follow two controls will
  * require a TLB exception handler change.  It is assumed unused bits
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
index 9a5a34b..d3f09ef 100644
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -422,6 +422,10 @@ DataStoreTLBMiss:
 	 * above.
 	 */
 	rlwimi	r11, r10, 0, 27, 27
+	/* Insert the WriteThru flag into the TWC from the Linux PTE.
+	 * It is bit 25 in the Linux PTE and bit 30 in the TWC
+	 */
+	rlwimi	r11, r10, 32-5, 30, 30
 	DO_8xx_CPU6(0x3b80, r3)
 	mtspr	SPRN_MD_TWC, r11
 
@@ -559,6 +563,10 @@ DARFixed:/* Return from dcbx instruction bug workaround, r10 holds value of DAR
 	 * It is bit 27 of both the Linux PTE and the TWC
 	 */
 	rlwimi	r11, r10, 0, 27, 27
+	/* Insert the WriteThru flag into the TWC from the Linux PTE.
+	 * It is bit 25 in the Linux PTE and bit 30 in the TWC
+	 */
+	rlwimi	r11, r10, 32-5, 30, 30
 	DO_8xx_CPU6(0x3b80, r3)
 	mtspr	SPRN_MD_TWC, r11
 	mfspr	r11, SPRN_MD_TWC	/* get the pte address again */
-- 
1.6.4.4

  reply	other threads:[~2009-11-20 10:21 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-20 10:21 [PATCH 00/10 v6] Fix 8xx MMU/TLB Joakim Tjernlund
2009-11-20 10:21 ` [PATCH 01/10] 8xx: invalidate non present TLBs Joakim Tjernlund
2009-11-20 10:21   ` [PATCH 02/10] 8xx: Update TLB asm so it behaves as linux mm expects Joakim Tjernlund
2009-11-20 10:21     ` [PATCH 03/10] 8xx: Tag DAR with 0x00f0 to catch buggy instructions Joakim Tjernlund
2009-11-20 10:21       ` [PATCH 04/10] 8xx: Always pin kernel instruction TLB Joakim Tjernlund
2009-11-20 10:21         ` [PATCH 05/10] 8xx: Fixup DAR from buggy dcbX instructions Joakim Tjernlund
2009-11-20 10:21           ` [PATCH 06/10] 8xx: Add missing Guarded setting in DTLB Error Joakim Tjernlund
2009-11-20 10:21             ` Joakim Tjernlund [this message]
2009-11-20 10:21               ` [PATCH 08/10] 8xx: start using dcbX instructions in various copy routines Joakim Tjernlund
2009-11-20 10:21                 ` [PATCH 09/10] 8xx: Remove DIRTY pte handling in DTLB Error Joakim Tjernlund
2009-11-20 10:21                   ` [PATCH 10/10] 8xx: DTLB Miss cleanup Joakim Tjernlund
2009-12-09  4:19         ` [PATCH 04/10] 8xx: Always pin kernel instruction TLB Benjamin Herrenschmidt
2009-12-09  7:39           ` Joakim Tjernlund
2009-12-09  8:56             ` Benjamin Herrenschmidt
2009-12-09  9:24               ` Joakim Tjernlund
2009-12-29 15:10               ` Joakim Tjernlund
2009-11-20 20:28 ` [PATCH 00/10 v6] Fix 8xx MMU/TLB Rex Feany
2009-11-21 10:27   ` Joakim Tjernlund
2009-11-27 10:57 ` Joakim Tjernlund
2009-11-27 21:37   ` Benjamin Herrenschmidt
2009-11-30 22:25     ` Scott Wood
2009-11-30 22:30       ` Joakim Tjernlund
2009-12-08  8:38       ` Joakim Tjernlund
2009-12-08 20:01         ` Benjamin Herrenschmidt
  -- strict thread matches above, loose matches on Subject: below --
2009-11-15 17:09 [PATCH 00/10] " Joakim Tjernlund
2009-11-15 17:09 ` [PATCH 01/10] 8xx: invalidate non present TLBs Joakim Tjernlund
2009-11-15 17:09   ` [PATCH 02/10] 8xx: Update TLB asm so it behaves as linux mm expects Joakim Tjernlund
2009-11-15 17:09     ` [PATCH 03/10] 8xx: Tag DAR with 0x00f0 to catch buggy instructions Joakim Tjernlund
2009-11-15 17:09       ` [PATCH 04/10] 8xx: Always pin kernel instruction TLB Joakim Tjernlund
2009-11-15 17:09         ` [PATCH 05/10] 8xx: Fixup DAR from buggy dcbX instructions Joakim Tjernlund
2009-11-15 17:09           ` [PATCH 06/10] 8xx: Add missing Guarded setting in DTLB Error Joakim Tjernlund
2009-11-15 17:09             ` [PATCH 07/10] 8xx: Restore _PAGE_WRITETHRU Joakim Tjernlund
2009-11-14 10:42 [PATCH 00/10] Fix 8xx MMU/TLB Joakim Tjernlund
2009-11-14 10:42 ` [PATCH 01/10] 8xx: invalidate non present TLBs Joakim Tjernlund
2009-11-14 10:42   ` [PATCH 02/10] 8xx: Update TLB asm so it behaves as linux mm expects Joakim Tjernlund
2009-11-14 10:42     ` [PATCH 03/10] 8xx: Tag DAR with 0x00f0 to catch buggy instructions Joakim Tjernlund
2009-11-14 10:42       ` [PATCH 04/10] 8xx: Always pin kernel instruction TLB Joakim Tjernlund
2009-11-14 10:42         ` [PATCH 05/10] 8xx: Fixup DAR from buggy dcbX instructions Joakim Tjernlund
2009-11-14 10:42           ` [PATCH 06/10] 8xx: Add missing Guarded setting in DTLB Error Joakim Tjernlund
2009-11-14 10:42             ` [PATCH 07/10] 8xx: Restore _PAGE_WRITETHRU Joakim Tjernlund

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1258712471-3104-8-git-send-email-Joakim.Tjernlund@transmode.se \
    --to=joakim.tjernlund@transmode.se \
    --cc=RFeany@mrv.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=scottwood@freescale.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).