Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Oct 2003 22:28:38 -0800 (PST)
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 40943 for review
Message-ID:  <200310310628.h9V6Sche027528@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=40943

Change 40943 by jmallett@jmallett_sprout on 2003/10/30 22:28:24

	First stab at entryhi region stuff, probably fairly wrong.

Affected files ...

.. //depot/projects/mips/sys/mips/include/pte.h#10 edit
.. //depot/projects/mips/sys/mips/mips/mips_subr.S#13 edit
.. //depot/projects/mips/sys/mips/mips/tlb.c#3 edit

Differences ...

==== //depot/projects/mips/sys/mips/include/pte.h#10 (text+ko) ====

@@ -67,6 +67,9 @@
  * bit 12 to bit 8 there is a 5-bit 0 field.  Low byte is ASID.
  */
 #define	MIPS_HI_R_SHIFT		62
+#define	MIPS_HI_R_USER		(0x00 << MIPS_HI_R_SHIFT)
+#define	MIPS_HI_R_SUPERVISOR	(0x01 << MIPS_HI_R_SHIFT)
+#define	MIPS_HI_R_KERNEL	(0x11 << MIPS_HI_R_SHIFT)
 #define	MIPS_HI_FILL_SHIFT	40
 #define	MIPS_HI_VPN2_SHIFT	13
 #define	MIPS_HI_VPN2_BMASK	0xFFFFFFE
@@ -75,10 +78,16 @@
 
 /*
  * TLB page bits that aren't really flags:
+ * 	R0:	Region 0, user
+ * 	R1:	Region 1, supervisor
+ * 	R3:	Region 3, kernel
  * 	ODDPG:	Is this page odd?	! XXX NetBSD compat
  * 	HVPN:	Hardware VPN mask	! XXX NetBSD compat
  * 	ASID:	Address space ID
  */
+#define	PG_R0		MIPS_HI_R_USER
+#define	PG_R1		MIPS_HI_R_SUPERVISOR
+#define	PG_R3		MIPS_HI_R_KERNEL
 #define	PG_ODDPG	0x00001000
 #define	PG_HVPN		MIPS_HI_VPN2_MASK
 #define	PG_ASID		0x000000ff

==== //depot/projects/mips/sys/mips/mips/mips_subr.S#13 (text+ko) ====

@@ -368,7 +368,7 @@
 	mtc0	zero, MIPS_COP_0_STATUS		# disable interrupts
 	COP0_SYNC
 
-	li	v0, (PG_HVPN | PG_ASID)
+	li	v0, (PG_HVPN | PG_ASID | PG_R3) # XXX assumes Region3
 	_MFC0	t0, MIPS_COP_0_TLB_HI		# save current ASID
 	mfc0	t3, MIPS_COP_0_TLB_PG_MASK	# save current pgMask
 	and	a0, a0, v0			# make sure valid entryHi

==== //depot/projects/mips/sys/mips/mips/tlb.c#3 (text+ko) ====

@@ -137,7 +137,8 @@
 {
 	va &= ~PAGE_SIZE;
 	critical_enter();
-	mips_wr_entryhi(MIPS_HI_VA_TO_VPN2(va) /* XXX | ASID */);
+	/* XXX assumes kernel region - region 3. */
+	mips_wr_entryhi(MIPS_HI_R_KERNEL | MIPS_HI_VA_TO_VPN2(va) /* XXX | ASID */);
 	mips_wr_entrylo0(pte0);
 	mips_wr_entrylo1(pte1);
 	mips_tlbwr();



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310310628.h9V6Sche027528>