diff options
Diffstat (limited to 'arch/sparc64/kernel/smp.c')
| -rw-r--r-- | arch/sparc64/kernel/smp.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index b4fc6a5462b2..b137fd63f5e1 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
| @@ -93,6 +93,27 @@ void __init smp_store_cpu_info(int id) | |||
| 93 | cpu_data(id).pte_cache[1] = NULL; | 93 | cpu_data(id).pte_cache[1] = NULL; |
| 94 | cpu_data(id).pgd_cache = NULL; | 94 | cpu_data(id).pgd_cache = NULL; |
| 95 | cpu_data(id).idle_volume = 1; | 95 | cpu_data(id).idle_volume = 1; |
| 96 | |||
| 97 | cpu_data(id).dcache_size = prom_getintdefault(cpu_node, "dcache-size", | ||
| 98 | 16 * 1024); | ||
| 99 | cpu_data(id).dcache_line_size = | ||
| 100 | prom_getintdefault(cpu_node, "dcache-line-size", 32); | ||
| 101 | cpu_data(id).icache_size = prom_getintdefault(cpu_node, "icache-size", | ||
| 102 | 16 * 1024); | ||
| 103 | cpu_data(id).icache_line_size = | ||
| 104 | prom_getintdefault(cpu_node, "icache-line-size", 32); | ||
| 105 | cpu_data(id).ecache_size = prom_getintdefault(cpu_node, "ecache-size", | ||
| 106 | 4 * 1024 * 1024); | ||
| 107 | cpu_data(id).ecache_line_size = | ||
| 108 | prom_getintdefault(cpu_node, "ecache-line-size", 64); | ||
| 109 | printk("CPU[%d]: Caches " | ||
| 110 | "D[sz(%d):line_sz(%d)] " | ||
| 111 | "I[sz(%d):line_sz(%d)] " | ||
| 112 | "E[sz(%d):line_sz(%d)]\n", | ||
| 113 | id, | ||
| 114 | cpu_data(id).dcache_size, cpu_data(id).dcache_line_size, | ||
| 115 | cpu_data(id).icache_size, cpu_data(id).icache_line_size, | ||
| 116 | cpu_data(id).ecache_size, cpu_data(id).ecache_line_size); | ||
| 96 | } | 117 | } |
| 97 | 118 | ||
| 98 | static void smp_setup_percpu_timer(void); | 119 | static void smp_setup_percpu_timer(void); |
| @@ -980,13 +1001,6 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) | |||
| 980 | preempt_enable(); | 1001 | preempt_enable(); |
| 981 | } | 1002 | } |
| 982 | 1003 | ||
| 983 | extern unsigned long xcall_promstop; | ||
| 984 | |||
| 985 | void smp_promstop_others(void) | ||
| 986 | { | ||
| 987 | smp_cross_call(&xcall_promstop, 0, 0, 0); | ||
| 988 | } | ||
| 989 | |||
| 990 | #define prof_multiplier(__cpu) cpu_data(__cpu).multiplier | 1004 | #define prof_multiplier(__cpu) cpu_data(__cpu).multiplier |
| 991 | #define prof_counter(__cpu) cpu_data(__cpu).counter | 1005 | #define prof_counter(__cpu) cpu_data(__cpu).counter |
| 992 | 1006 | ||
