Browse Source

Add Dcbz(), Dcbi() and Dcbf() routines for MPC83xx.

Marian Balakowicz 19 năm trước cách đây
mục cha
commit
cd94ba397e
3 tập tin đã thay đổi với 38 bổ sung1 xóa
  1. 2 0
      CHANGELOG
  2. 34 0
      cpu/mpc83xx/start.S
  3. 2 1
      include/common.h

+ 2 - 0
CHANGELOG

@@ -2,6 +2,8 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Add Dcbz(), Dcbi() and Dcbf() routines for MPC83xx.
+
 * Correct shift offsets in icache_status and dcache_status for MPC83xx.
 
 * Add support for DS1374 RTC chip.

+ 34 - 0
cpu/mpc83xx/start.S

@@ -836,6 +836,40 @@ get_pvr:
 	mfspr	r3, PVR
 	blr
 
+/*------------------------------------------------------------------------------- */
+/* Function:	 ppcDcbf */
+/* Description:	 Data Cache block flush */
+/* Input:	 r3 = effective address */
+/* Output:	 none. */
+/*------------------------------------------------------------------------------- */
+	.globl	ppcDcbf
+ppcDcbf:
+	dcbf	r0,r3
+	blr
+
+/*------------------------------------------------------------------------------- */
+/* Function:	 ppcDcbi */
+/* Description:	 Data Cache block Invalidate */
+/* Input:	 r3 = effective address */
+/* Output:	 none. */
+/*------------------------------------------------------------------------------- */
+	.globl	ppcDcbi
+ppcDcbi:
+	dcbi	r0,r3
+	blr
+
+/*--------------------------------------------------------------------------
+ * Function:	 ppcDcbz
+ * Description:	 Data Cache block zero.
+ * Input:	 r3 = effective address
+ * Output:	 none.
+ *-------------------------------------------------------------------------- */
+
+	.globl	ppcDcbz
+ppcDcbz:
+	dcbz	r0,r3
+	blr
+
 /*-------------------------------------------------------------------*/
 
 /*

+ 2 - 1
include/common.h

@@ -365,7 +365,8 @@ void	trap_init     (ulong);
     defined (CONFIG_75x)	|| \
     defined (CONFIG_74xx)	|| \
     defined (CONFIG_MPC8220)	|| \
-    defined(CONFIG_MPC85xx)
+    defined (CONFIG_MPC85xx)	|| \
+    defined (CONFIG_MPC83XX)
 unsigned char	in8(unsigned int);
 void		out8(unsigned int, unsigned char);
 unsigned short	in16(unsigned int);