diff options
Diffstat (limited to 'arch/powerpc/include/asm/reg_booke.h')
-rw-r--r-- | arch/powerpc/include/asm/reg_booke.h | 50 |
1 files changed, 41 insertions, 9 deletions
diff --git a/arch/powerpc/include/asm/reg_booke.h b/arch/powerpc/include/asm/reg_booke.h index 6bcf364cbb2f..3bf783505528 100644 --- a/arch/powerpc/include/asm/reg_booke.h +++ b/arch/powerpc/include/asm/reg_booke.h | |||
@@ -18,18 +18,26 @@ | |||
18 | #define MSR_IS MSR_IR /* Instruction Space */ | 18 | #define MSR_IS MSR_IR /* Instruction Space */ |
19 | #define MSR_DS MSR_DR /* Data Space */ | 19 | #define MSR_DS MSR_DR /* Data Space */ |
20 | #define MSR_PMM (1<<2) /* Performance monitor mark bit */ | 20 | #define MSR_PMM (1<<2) /* Performance monitor mark bit */ |
21 | #define MSR_CM (1<<31) /* Computation Mode (0=32-bit, 1=64-bit) */ | ||
21 | 22 | ||
22 | /* Default MSR for kernel mode. */ | 23 | #if defined(CONFIG_PPC_BOOK3E_64) |
23 | #if defined (CONFIG_40x) | 24 | #define MSR_ MSR_ME | MSR_CE |
25 | #define MSR_KERNEL MSR_ | MSR_CM | ||
26 | #define MSR_USER32 MSR_ | MSR_PR | MSR_EE | ||
27 | #define MSR_USER64 MSR_USER32 | MSR_CM | ||
28 | #elif defined (CONFIG_40x) | ||
24 | #define MSR_KERNEL (MSR_ME|MSR_RI|MSR_IR|MSR_DR|MSR_CE) | 29 | #define MSR_KERNEL (MSR_ME|MSR_RI|MSR_IR|MSR_DR|MSR_CE) |
25 | #elif defined(CONFIG_BOOKE) | 30 | #define MSR_USER (MSR_KERNEL|MSR_PR|MSR_EE) |
31 | #else | ||
26 | #define MSR_KERNEL (MSR_ME|MSR_RI|MSR_CE) | 32 | #define MSR_KERNEL (MSR_ME|MSR_RI|MSR_CE) |
33 | #define MSR_USER (MSR_KERNEL|MSR_PR|MSR_EE) | ||
27 | #endif | 34 | #endif |
28 | 35 | ||
29 | /* Special Purpose Registers (SPRNs)*/ | 36 | /* Special Purpose Registers (SPRNs)*/ |
30 | #define SPRN_DECAR 0x036 /* Decrementer Auto Reload Register */ | 37 | #define SPRN_DECAR 0x036 /* Decrementer Auto Reload Register */ |
31 | #define SPRN_IVPR 0x03F /* Interrupt Vector Prefix Register */ | 38 | #define SPRN_IVPR 0x03F /* Interrupt Vector Prefix Register */ |
32 | #define SPRN_USPRG0 0x100 /* User Special Purpose Register General 0 */ | 39 | #define SPRN_USPRG0 0x100 /* User Special Purpose Register General 0 */ |
40 | #define SPRN_SPRG3R 0x103 /* Special Purpose Register General 3 Read */ | ||
33 | #define SPRN_SPRG4R 0x104 /* Special Purpose Register General 4 Read */ | 41 | #define SPRN_SPRG4R 0x104 /* Special Purpose Register General 4 Read */ |
34 | #define SPRN_SPRG5R 0x105 /* Special Purpose Register General 5 Read */ | 42 | #define SPRN_SPRG5R 0x105 /* Special Purpose Register General 5 Read */ |
35 | #define SPRN_SPRG6R 0x106 /* Special Purpose Register General 6 Read */ | 43 | #define SPRN_SPRG6R 0x106 /* Special Purpose Register General 6 Read */ |
@@ -38,11 +46,18 @@ | |||
38 | #define SPRN_SPRG5W 0x115 /* Special Purpose Register General 5 Write */ | 46 | #define SPRN_SPRG5W 0x115 /* Special Purpose Register General 5 Write */ |
39 | #define SPRN_SPRG6W 0x116 /* Special Purpose Register General 6 Write */ | 47 | #define SPRN_SPRG6W 0x116 /* Special Purpose Register General 6 Write */ |
40 | #define SPRN_SPRG7W 0x117 /* Special Purpose Register General 7 Write */ | 48 | #define SPRN_SPRG7W 0x117 /* Special Purpose Register General 7 Write */ |
49 | #define SPRN_EPCR 0x133 /* Embedded Processor Control Register */ | ||
41 | #define SPRN_DBCR2 0x136 /* Debug Control Register 2 */ | 50 | #define SPRN_DBCR2 0x136 /* Debug Control Register 2 */ |
42 | #define SPRN_IAC3 0x13A /* Instruction Address Compare 3 */ | 51 | #define SPRN_IAC3 0x13A /* Instruction Address Compare 3 */ |
43 | #define SPRN_IAC4 0x13B /* Instruction Address Compare 4 */ | 52 | #define SPRN_IAC4 0x13B /* Instruction Address Compare 4 */ |
44 | #define SPRN_DVC1 0x13E /* Data Value Compare Register 1 */ | 53 | #define SPRN_DVC1 0x13E /* Data Value Compare Register 1 */ |
45 | #define SPRN_DVC2 0x13F /* Data Value Compare Register 2 */ | 54 | #define SPRN_DVC2 0x13F /* Data Value Compare Register 2 */ |
55 | #define SPRN_MAS8 0x155 /* MMU Assist Register 8 */ | ||
56 | #define SPRN_TLB0PS 0x158 /* TLB 0 Page Size Register */ | ||
57 | #define SPRN_MAS5_MAS6 0x15c /* MMU Assist Register 5 || 6 */ | ||
58 | #define SPRN_MAS8_MAS1 0x15d /* MMU Assist Register 8 || 1 */ | ||
59 | #define SPRN_MAS7_MAS3 0x174 /* MMU Assist Register 7 || 3 */ | ||
60 | #define SPRN_MAS0_MAS1 0x175 /* MMU Assist Register 0 || 1 */ | ||
46 | #define SPRN_IVOR0 0x190 /* Interrupt Vector Offset Register 0 */ | 61 | #define SPRN_IVOR0 0x190 /* Interrupt Vector Offset Register 0 */ |
47 | #define SPRN_IVOR1 0x191 /* Interrupt Vector Offset Register 1 */ | 62 | #define SPRN_IVOR1 0x191 /* Interrupt Vector Offset Register 1 */ |
48 | #define SPRN_IVOR2 0x192 /* Interrupt Vector Offset Register 2 */ | 63 | #define SPRN_IVOR2 0x192 /* Interrupt Vector Offset Register 2 */ |
@@ -93,6 +108,8 @@ | |||
93 | #define SPRN_PID2 0x27A /* Process ID Register 2 */ | 108 | #define SPRN_PID2 0x27A /* Process ID Register 2 */ |
94 | #define SPRN_TLB0CFG 0x2B0 /* TLB 0 Config Register */ | 109 | #define SPRN_TLB0CFG 0x2B0 /* TLB 0 Config Register */ |
95 | #define SPRN_TLB1CFG 0x2B1 /* TLB 1 Config Register */ | 110 | #define SPRN_TLB1CFG 0x2B1 /* TLB 1 Config Register */ |
111 | #define SPRN_TLB2CFG 0x2B2 /* TLB 2 Config Register */ | ||
112 | #define SPRN_TLB3CFG 0x2B3 /* TLB 3 Config Register */ | ||
96 | #define SPRN_EPR 0x2BE /* External Proxy Register */ | 113 | #define SPRN_EPR 0x2BE /* External Proxy Register */ |
97 | #define SPRN_CCR1 0x378 /* Core Configuration Register 1 */ | 114 | #define SPRN_CCR1 0x378 /* Core Configuration Register 1 */ |
98 | #define SPRN_ZPR 0x3B0 /* Zone Protection Register (40x) */ | 115 | #define SPRN_ZPR 0x3B0 /* Zone Protection Register (40x) */ |
@@ -415,16 +432,31 @@ | |||
415 | #define L2CSR0_L2LOA 0x00000080 /* L2 Cache Lock Overflow Allocate */ | 432 | #define L2CSR0_L2LOA 0x00000080 /* L2 Cache Lock Overflow Allocate */ |
416 | #define L2CSR0_L2LO 0x00000020 /* L2 Cache Lock Overflow */ | 433 | #define L2CSR0_L2LO 0x00000020 /* L2 Cache Lock Overflow */ |
417 | 434 | ||
418 | /* Bit definitions for MMUCSR0 */ | ||
419 | #define MMUCSR0_TLB1FI 0x00000002 /* TLB1 Flash invalidate */ | ||
420 | #define MMUCSR0_TLB0FI 0x00000004 /* TLB0 Flash invalidate */ | ||
421 | #define MMUCSR0_TLB2FI 0x00000040 /* TLB2 Flash invalidate */ | ||
422 | #define MMUCSR0_TLB3FI 0x00000020 /* TLB3 Flash invalidate */ | ||
423 | |||
424 | /* Bit definitions for SGR. */ | 435 | /* Bit definitions for SGR. */ |
425 | #define SGR_NORMAL 0 /* Speculative fetching allowed. */ | 436 | #define SGR_NORMAL 0 /* Speculative fetching allowed. */ |
426 | #define SGR_GUARDED 1 /* Speculative fetching disallowed. */ | 437 | #define SGR_GUARDED 1 /* Speculative fetching disallowed. */ |
427 | 438 | ||
439 | /* Bit definitions for EPCR */ | ||
440 | #define SPRN_EPCR_EXTGS 0x80000000 /* External Input interrupt | ||
441 | * directed to Guest state */ | ||
442 | #define SPRN_EPCR_DTLBGS 0x40000000 /* Data TLB Error interrupt | ||
443 | * directed to guest state */ | ||
444 | #define SPRN_EPCR_ITLBGS 0x20000000 /* Instr. TLB error interrupt | ||
445 | * directed to guest state */ | ||
446 | #define SPRN_EPCR_DSIGS 0x10000000 /* Data Storage interrupt | ||
447 | * directed to guest state */ | ||
448 | #define SPRN_EPCR_ISIGS 0x08000000 /* Instr. Storage interrupt | ||
449 | * directed to guest state */ | ||
450 | #define SPRN_EPCR_DUVD 0x04000000 /* Disable Hypervisor Debug */ | ||
451 | #define SPRN_EPCR_ICM 0x02000000 /* Interrupt computation mode | ||
452 | * (copied to MSR:CM on intr) */ | ||
453 | #define SPRN_EPCR_GICM 0x01000000 /* Guest Interrupt Comp. mode */ | ||
454 | #define SPRN_EPCR_DGTMI 0x00800000 /* Disable TLB Guest Management | ||
455 | * instructions */ | ||
456 | #define SPRN_EPCR_DMIUH 0x00400000 /* Disable MAS Interrupt updates | ||
457 | * for hypervisor */ | ||
458 | |||
459 | |||
428 | /* | 460 | /* |
429 | * The IBM-403 is an even more odd special case, as it is much | 461 | * The IBM-403 is an even more odd special case, as it is much |
430 | * older than the IBM-405 series. We put these down here incase someone | 462 | * older than the IBM-405 series. We put these down here incase someone |