powerpc/book3s: Add flush_tlb operation in cpu_spec.
This patch introduces flush_tlb operation in cpu_spec structure. This will help us to invoke appropriate CPU-side flush tlb routine. This patch adds the foundation to invoke CPU specific flush routine for respective architectures. Currently this patch introduce flush_tlb for p7 and p8. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Acked-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
committed by
Benjamin Herrenschmidt
parent
4c703416ef
commit
0440705049
@@ -71,6 +71,8 @@ extern void __restore_cpu_power7(void);
|
||||
extern void __setup_cpu_power8(unsigned long offset, struct cpu_spec* spec);
|
||||
extern void __restore_cpu_power8(void);
|
||||
extern void __restore_cpu_a2(void);
|
||||
extern void __flush_tlb_power7(unsigned long inval_selector);
|
||||
extern void __flush_tlb_power8(unsigned long inval_selector);
|
||||
#endif /* CONFIG_PPC64 */
|
||||
#if defined(CONFIG_E500)
|
||||
extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec);
|
||||
@@ -440,6 +442,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
.oprofile_cpu_type = "ppc64/ibm-compat-v1",
|
||||
.cpu_setup = __setup_cpu_power7,
|
||||
.cpu_restore = __restore_cpu_power7,
|
||||
.flush_tlb = __flush_tlb_power7,
|
||||
.platform = "power7",
|
||||
},
|
||||
{ /* 2.07-compliant processor, i.e. Power8 "architected" mode */
|
||||
@@ -456,6 +459,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
.oprofile_cpu_type = "ppc64/ibm-compat-v1",
|
||||
.cpu_setup = __setup_cpu_power8,
|
||||
.cpu_restore = __restore_cpu_power8,
|
||||
.flush_tlb = __flush_tlb_power8,
|
||||
.platform = "power8",
|
||||
},
|
||||
{ /* Power7 */
|
||||
@@ -474,6 +478,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
.oprofile_type = PPC_OPROFILE_POWER4,
|
||||
.cpu_setup = __setup_cpu_power7,
|
||||
.cpu_restore = __restore_cpu_power7,
|
||||
.flush_tlb = __flush_tlb_power7,
|
||||
.platform = "power7",
|
||||
},
|
||||
{ /* Power7+ */
|
||||
@@ -492,6 +497,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
.oprofile_type = PPC_OPROFILE_POWER4,
|
||||
.cpu_setup = __setup_cpu_power7,
|
||||
.cpu_restore = __restore_cpu_power7,
|
||||
.flush_tlb = __flush_tlb_power7,
|
||||
.platform = "power7+",
|
||||
},
|
||||
{ /* Power8E */
|
||||
@@ -510,6 +516,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
.oprofile_type = PPC_OPROFILE_INVALID,
|
||||
.cpu_setup = __setup_cpu_power8,
|
||||
.cpu_restore = __restore_cpu_power8,
|
||||
.flush_tlb = __flush_tlb_power8,
|
||||
.platform = "power8",
|
||||
},
|
||||
{ /* Power8 */
|
||||
@@ -528,6 +535,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
.oprofile_type = PPC_OPROFILE_INVALID,
|
||||
.cpu_setup = __setup_cpu_power8,
|
||||
.cpu_restore = __restore_cpu_power8,
|
||||
.flush_tlb = __flush_tlb_power8,
|
||||
.platform = "power8",
|
||||
},
|
||||
{ /* Cell Broadband Engine */
|
||||
|
||||
Reference in New Issue
Block a user