diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2014-07-09 22:29:19 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-07-28 00:10:22 -0400 |
commit | 376af5947c0e441ccbf98f0212d4ffbf171528f6 (patch) | |
tree | 8d80f48caea9448257de40a2a9c7279cc80e60b0 /arch/powerpc/include/asm | |
parent | 468a33028edd62549ad3c4dcbc23dd0311c67832 (diff) |
powerpc: Remove STAB code
Old cpus didn't have a Segment Lookaside Buffer (SLB), instead they had
a Segment Table (STAB). Now that we've dropped support for those cpus,
we can remove the STAB support entirely.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm')
-rw-r--r-- | arch/powerpc/include/asm/mmu-hash64.h | 22 | ||||
-rw-r--r-- | arch/powerpc/include/asm/mmu_context.h | 3 | ||||
-rw-r--r-- | arch/powerpc/include/asm/paca.h | 4 | ||||
-rw-r--r-- | arch/powerpc/include/asm/reg.h | 2 |
4 files changed, 1 insertions, 30 deletions
diff --git a/arch/powerpc/include/asm/mmu-hash64.h b/arch/powerpc/include/asm/mmu-hash64.h index c2b4dcf23d03..d76514487d6f 100644 --- a/arch/powerpc/include/asm/mmu-hash64.h +++ b/arch/powerpc/include/asm/mmu-hash64.h | |||
@@ -25,26 +25,6 @@ | |||
25 | #include <asm/processor.h> | 25 | #include <asm/processor.h> |
26 | 26 | ||
27 | /* | 27 | /* |
28 | * Segment table | ||
29 | */ | ||
30 | |||
31 | #define STE_ESID_V 0x80 | ||
32 | #define STE_ESID_KS 0x20 | ||
33 | #define STE_ESID_KP 0x10 | ||
34 | #define STE_ESID_N 0x08 | ||
35 | |||
36 | #define STE_VSID_SHIFT 12 | ||
37 | |||
38 | /* Location of cpu0's segment table */ | ||
39 | #define STAB0_PAGE 0x8 | ||
40 | #define STAB0_OFFSET (STAB0_PAGE << 12) | ||
41 | #define STAB0_PHYS_ADDR (STAB0_OFFSET + PHYSICAL_START) | ||
42 | |||
43 | #ifndef __ASSEMBLY__ | ||
44 | extern char initial_stab[]; | ||
45 | #endif /* ! __ASSEMBLY */ | ||
46 | |||
47 | /* | ||
48 | * SLB | 28 | * SLB |
49 | */ | 29 | */ |
50 | 30 | ||
@@ -370,10 +350,8 @@ extern void hpte_init_lpar(void); | |||
370 | extern void hpte_init_beat(void); | 350 | extern void hpte_init_beat(void); |
371 | extern void hpte_init_beat_v3(void); | 351 | extern void hpte_init_beat_v3(void); |
372 | 352 | ||
373 | extern void stabs_alloc(void); | ||
374 | extern void slb_initialize(void); | 353 | extern void slb_initialize(void); |
375 | extern void slb_flush_and_rebolt(void); | 354 | extern void slb_flush_and_rebolt(void); |
376 | extern void stab_initialize(unsigned long stab); | ||
377 | 355 | ||
378 | extern void slb_vmalloc_update(void); | 356 | extern void slb_vmalloc_update(void); |
379 | extern void slb_set_size(u16 size); | 357 | extern void slb_set_size(u16 size); |
diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/asm/mmu_context.h index b467530e2485..f5690e2689c7 100644 --- a/arch/powerpc/include/asm/mmu_context.h +++ b/arch/powerpc/include/asm/mmu_context.h | |||
@@ -18,7 +18,6 @@ extern int init_new_context(struct task_struct *tsk, struct mm_struct *mm); | |||
18 | extern void destroy_context(struct mm_struct *mm); | 18 | extern void destroy_context(struct mm_struct *mm); |
19 | 19 | ||
20 | extern void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next); | 20 | extern void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next); |
21 | extern void switch_stab(struct task_struct *tsk, struct mm_struct *mm); | ||
22 | extern void switch_slb(struct task_struct *tsk, struct mm_struct *mm); | 21 | extern void switch_slb(struct task_struct *tsk, struct mm_struct *mm); |
23 | extern void set_context(unsigned long id, pgd_t *pgd); | 22 | extern void set_context(unsigned long id, pgd_t *pgd); |
24 | 23 | ||
@@ -79,8 +78,6 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, | |||
79 | #ifdef CONFIG_PPC_STD_MMU_64 | 78 | #ifdef CONFIG_PPC_STD_MMU_64 |
80 | if (mmu_has_feature(MMU_FTR_SLB)) | 79 | if (mmu_has_feature(MMU_FTR_SLB)) |
81 | switch_slb(tsk, next); | 80 | switch_slb(tsk, next); |
82 | else | ||
83 | switch_stab(tsk, next); | ||
84 | #else | 81 | #else |
85 | /* Out of line for now */ | 82 | /* Out of line for now */ |
86 | switch_mmu_context(prev, next); | 83 | switch_mmu_context(prev, next); |
diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h index bb0bd25f20d0..5abde4e223bb 100644 --- a/arch/powerpc/include/asm/paca.h +++ b/arch/powerpc/include/asm/paca.h | |||
@@ -78,10 +78,6 @@ struct paca_struct { | |||
78 | u64 kernel_toc; /* Kernel TOC address */ | 78 | u64 kernel_toc; /* Kernel TOC address */ |
79 | u64 kernelbase; /* Base address of kernel */ | 79 | u64 kernelbase; /* Base address of kernel */ |
80 | u64 kernel_msr; /* MSR while running in kernel */ | 80 | u64 kernel_msr; /* MSR while running in kernel */ |
81 | #ifdef CONFIG_PPC_STD_MMU_64 | ||
82 | u64 stab_real; /* Absolute address of segment table */ | ||
83 | u64 stab_addr; /* Virtual address of segment table */ | ||
84 | #endif /* CONFIG_PPC_STD_MMU_64 */ | ||
85 | void *emergency_sp; /* pointer to emergency stack */ | 81 | void *emergency_sp; /* pointer to emergency stack */ |
86 | u64 data_offset; /* per cpu data offset */ | 82 | u64 data_offset; /* per cpu data offset */ |
87 | s16 hw_cpu_id; /* Physical processor number */ | 83 | s16 hw_cpu_id; /* Physical processor number */ |
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index bffd89d27301..f7b97b895708 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
@@ -254,7 +254,7 @@ | |||
254 | #define DSISR_PROTFAULT 0x08000000 /* protection fault */ | 254 | #define DSISR_PROTFAULT 0x08000000 /* protection fault */ |
255 | #define DSISR_ISSTORE 0x02000000 /* access was a store */ | 255 | #define DSISR_ISSTORE 0x02000000 /* access was a store */ |
256 | #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */ | 256 | #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */ |
257 | #define DSISR_NOSEGMENT 0x00200000 /* STAB/SLB miss */ | 257 | #define DSISR_NOSEGMENT 0x00200000 /* SLB miss */ |
258 | #define DSISR_KEYFAULT 0x00200000 /* Key fault */ | 258 | #define DSISR_KEYFAULT 0x00200000 /* Key fault */ |
259 | #define SPRN_TBRL 0x10C /* Time Base Read Lower Register (user, R/O) */ | 259 | #define SPRN_TBRL 0x10C /* Time Base Read Lower Register (user, R/O) */ |
260 | #define SPRN_TBRU 0x10D /* Time Base Read Upper Register (user, R/O) */ | 260 | #define SPRN_TBRU 0x10D /* Time Base Read Upper Register (user, R/O) */ |