aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorRafal Jaworowski <raj@FreeBSD.org>2009-04-22 13:11:38 +0000
committerRafal Jaworowski <raj@FreeBSD.org>2009-04-22 13:11:38 +0000
commitb9b8eb777fb0dcdf66dbc08de0d5eee9c45e14d9 (patch)
tree84f339ba66bce8e572cae8d1409ffc2a45766fb3 /sys
parent1f6ac2bd3d9b048676794adc651cf9a5ad67791c (diff)
downloadsrc-b9b8eb777fb0dcdf66dbc08de0d5eee9c45e14d9.tar.gz
src-b9b8eb777fb0dcdf66dbc08de0d5eee9c45e14d9.zip
Centralize setting HID0/1 for E500. Rename HID defines which are specific
to E500 rather than shared within Book-E family. Obtained from: Freescale, Semihalf
Notes
Notes: svn path=/head/; revision=191375
Diffstat (limited to 'sys')
-rw-r--r--sys/powerpc/booke/locore.S10
-rw-r--r--sys/powerpc/include/hid.h15
2 files changed, 21 insertions, 4 deletions
diff --git a/sys/powerpc/booke/locore.S b/sys/powerpc/booke/locore.S
index 7034c4615a20..f62d9948145d 100644
--- a/sys/powerpc/booke/locore.S
+++ b/sys/powerpc/booke/locore.S
@@ -29,6 +29,7 @@
#include "assym.s"
#include <machine/asm.h>
+#include <machine/hid.h>
#include <machine/param.h>
#include <machine/spr.h>
#include <machine/psl.h>
@@ -103,6 +104,15 @@ __start:
mtmsr %r3
isync
+ lis %r3, HID0_E500_DEFAULT_SET@h
+ ori %r3, %r3, HID0_E500_DEFAULT_SET@l
+ mtspr SPR_HID0, %r3
+ isync
+ lis %r3, HID1_E500_DEFAULT_SET@h
+ ori %r3, %r3, HID1_E500_DEFAULT_SET@l
+ mtspr SPR_HID1, %r3
+ isync
+
/* Invalidate all entries in TLB0 */
li %r3, 0
bl tlb_inval_all
diff --git a/sys/powerpc/include/hid.h b/sys/powerpc/include/hid.h
index 41602fdf607d..3ba5b5594493 100644
--- a/sys/powerpc/include/hid.h
+++ b/sys/powerpc/include/hid.h
@@ -32,7 +32,7 @@
/* Hardware Implementation Dependent registers for the PowerPC */
-#define HID0_EMCP 0x80000000 /* Enable MCP */
+#define HID0_EMCP 0x80000000 /* Enable machine check pin */
#define HID0_DBP 0x40000000 /* Disable 60x bus parity generation */
#define HID0_EBA 0x20000000 /* Enable 60x bus address parity checking */
#define HID0_EBD 0x10000000 /* Enable 60x bus data parity checking */
@@ -73,9 +73,9 @@
#define HID0_AIM_TBEN 0x04000000 /* Time base enable (7450) */
-#define HID0_BOOKE_TBEN 0x00004000 /* Time Base and decr. enable */
-#define HID0_BOOKE_SEL_TBCLK 0x00002000 /* Select Time Base clock */
-#define HID0_BOOKE_MAS7UPDEN 0x00000080 /* Enable MAS7 update (e500v2) */
+#define HID0_E500_TBEN 0x00004000 /* Time Base and decr. enable */
+#define HID0_E500_SEL_TBCLK 0x00002000 /* Select Time Base clock */
+#define HID0_E500_MAS7UPDEN 0x00000080 /* Enable MAS7 update (e500v2) */
#define HID0_BITMASK \
"\20" \
@@ -147,6 +147,13 @@
* 7457: XBSEN = Extended BAT Block Size Enable
*/
+#define HID1_E500_ABE 0x00001000 /* Address broadcast enable */
+#define HID1_E500_ASTME 0x00002000 /* Address bus streaming mode enable */
+#define HID1_E500_RFXE 0x00020000 /* Read fault exception enable */
+
+#define HID0_E500_DEFAULT_SET (HID0_EMCP | HID0_E500_TBEN)
+#define HID1_E500_DEFAULT_SET (HID1_E500_ABE | HID1_E500_ASTME)
+
#define HID5_970_DCBZ_SIZE_HI 0x01000000 /* dcbz does a 32-byte store */
#endif /* _POWERPC_HID_H_ */