[PATCH] ppc32: Add support for Freescale e200 (Book-E) core
The e200 core is a Book-E core (similar to e500) that has a unified L1 cache and is not cache coherent on the bus. The e200 core also adds a separate exception level for debug exceptions. Part of this patch helps to cleanup a few cases that are true for all Freescale Book-E parts, not just e500. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Kumar Gala <kumar.gala@freescale.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
62aa751d16
commit
33d9e9b56d
@@ -405,7 +405,7 @@ typedef struct _P601_BAT {
|
||||
|
||||
#define MAS0_TLBSEL(x) ((x << 28) & 0x30000000)
|
||||
#define MAS0_ESEL(x) ((x << 16) & 0x0FFF0000)
|
||||
#define MAS0_NV 0x00000FFF
|
||||
#define MAS0_NV(x) ((x) & 0x00000FFF)
|
||||
|
||||
#define MAS1_VALID 0x80000000
|
||||
#define MAS1_IPROT 0x40000000
|
||||
|
||||
@@ -63,7 +63,7 @@ static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
|
||||
#define LAST_CONTEXT 255
|
||||
#define FIRST_CONTEXT 1
|
||||
|
||||
#elif defined(CONFIG_E500)
|
||||
#elif defined(CONFIG_E200) || defined(CONFIG_E500)
|
||||
#define NO_CONTEXT 256
|
||||
#define LAST_CONTEXT 255
|
||||
#define FIRST_CONTEXT 1
|
||||
|
||||
@@ -174,6 +174,8 @@ END_FTR_SECTION_IFCLR(CPU_FTR_601)
|
||||
#define CLR_TOP32(r)
|
||||
#endif /* CONFIG_PPC64BRIDGE */
|
||||
|
||||
#define RFCI .long 0x4c000066 /* rfci instruction */
|
||||
#define RFDI .long 0x4c00004e /* rfdi instruction */
|
||||
#define RFMCI .long 0x4c00004c /* rfmci instruction */
|
||||
|
||||
#ifdef CONFIG_IBM405_ERR77
|
||||
|
||||
@@ -160,6 +160,7 @@
|
||||
#define HID0_ICFI (1<<11) /* Instr. Cache Flash Invalidate */
|
||||
#define HID0_DCI (1<<10) /* Data Cache Invalidate */
|
||||
#define HID0_SPD (1<<9) /* Speculative disable */
|
||||
#define HID0_DAPUEN (1<<8) /* Debug APU enable */
|
||||
#define HID0_SGE (1<<7) /* Store Gathering Enable */
|
||||
#define HID0_SIED (1<<7) /* Serial Instr. Execution [Disable] */
|
||||
#define HID0_DFCA (1<<6) /* Data Cache Flush Assist */
|
||||
|
||||
@@ -165,6 +165,8 @@ do { \
|
||||
#define SPRN_MCSRR1 0x23B /* Machine Check Save and Restore Register 1 */
|
||||
#define SPRN_MCSR 0x23C /* Machine Check Status Register */
|
||||
#define SPRN_MCAR 0x23D /* Machine Check Address Register */
|
||||
#define SPRN_DSRR0 0x23E /* Debug Save and Restore Register 0 */
|
||||
#define SPRN_DSRR1 0x23F /* Debug Save and Restore Register 1 */
|
||||
#define SPRN_MAS0 0x270 /* MMU Assist Register 0 */
|
||||
#define SPRN_MAS1 0x271 /* MMU Assist Register 1 */
|
||||
#define SPRN_MAS2 0x272 /* MMU Assist Register 2 */
|
||||
@@ -264,6 +266,17 @@ do { \
|
||||
#define MCSR_BUS_IPERR 0x00000002UL /* Instruction parity Error */
|
||||
#define MCSR_BUS_RPERR 0x00000001UL /* Read parity Error */
|
||||
#endif
|
||||
#ifdef CONFIG_E200
|
||||
#define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */
|
||||
#define MCSR_CP_PERR 0x20000000UL /* Cache Push Parity Error */
|
||||
#define MCSR_CPERR 0x10000000UL /* Cache Parity Error */
|
||||
#define MCSR_EXCP_ERR 0x08000000UL /* ISI, ITLB, or Bus Error on 1st insn
|
||||
fetch for an exception handler */
|
||||
#define MCSR_BUS_IRERR 0x00000010UL /* Read Bus Error on instruction fetch*/
|
||||
#define MCSR_BUS_DRERR 0x00000008UL /* Read Bus Error on data load */
|
||||
#define MCSR_BUS_WRERR 0x00000004UL /* Write Bus Error on buffered
|
||||
store or cache line push */
|
||||
#endif
|
||||
|
||||
/* Bit definitions for the DBSR. */
|
||||
/*
|
||||
@@ -311,6 +324,7 @@ do { \
|
||||
#define ESR_ST 0x00800000 /* Store Operation */
|
||||
#define ESR_DLK 0x00200000 /* Data Cache Locking */
|
||||
#define ESR_ILK 0x00100000 /* Instr. Cache Locking */
|
||||
#define ESR_PUO 0x00040000 /* Unimplemented Operation exception */
|
||||
#define ESR_BO 0x00020000 /* Byte Ordering */
|
||||
|
||||
/* Bit definitions related to the DBCR0. */
|
||||
@@ -387,10 +401,12 @@ do { \
|
||||
#define ICCR_CACHE 1 /* Cacheable */
|
||||
|
||||
/* Bit definitions for L1CSR0. */
|
||||
#define L1CSR0_CLFC 0x00000100 /* Cache Lock Bits Flash Clear */
|
||||
#define L1CSR0_DCFI 0x00000002 /* Data Cache Flash Invalidate */
|
||||
#define L1CSR0_CFI 0x00000002 /* Cache Flash Invalidate */
|
||||
#define L1CSR0_DCE 0x00000001 /* Data Cache Enable */
|
||||
|
||||
/* Bit definitions for L1CSR0. */
|
||||
/* Bit definitions for L1CSR1. */
|
||||
#define L1CSR1_ICLFR 0x00000100 /* Instr Cache Lock Bits Flash Reset */
|
||||
#define L1CSR1_ICFI 0x00000002 /* Instr Cache Flash Invalidate */
|
||||
#define L1CSR1_ICE 0x00000001 /* Instr Cache Enable */
|
||||
|
||||
Reference in New Issue
Block a user