diff options
Diffstat (limited to 'arch/powerpc/kernel/setup_64.c')
| -rw-r--r-- | arch/powerpc/kernel/setup_64.c | 42 |
1 files changed, 5 insertions, 37 deletions
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index 2d34196bba8c..c410c606955d 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c | |||
| @@ -202,8 +202,6 @@ void __init early_setup(unsigned long dt_ptr) | |||
| 202 | 202 | ||
| 203 | /* Fix up paca fields required for the boot cpu */ | 203 | /* Fix up paca fields required for the boot cpu */ |
| 204 | get_paca()->cpu_start = 1; | 204 | get_paca()->cpu_start = 1; |
| 205 | get_paca()->stab_real = __pa((u64)&initial_stab); | ||
| 206 | get_paca()->stab_addr = (u64)&initial_stab; | ||
| 207 | 205 | ||
| 208 | /* Probe the machine type */ | 206 | /* Probe the machine type */ |
| 209 | probe_machine(); | 207 | probe_machine(); |
| @@ -212,20 +210,8 @@ void __init early_setup(unsigned long dt_ptr) | |||
| 212 | 210 | ||
| 213 | DBG("Found, Initializing memory management...\n"); | 211 | DBG("Found, Initializing memory management...\n"); |
| 214 | 212 | ||
| 215 | /* | 213 | /* Initialize the hash table or TLB handling */ |
| 216 | * Initialize the MMU Hash table and create the linear mapping | 214 | early_init_mmu(); |
| 217 | * of memory. Has to be done before stab/slb initialization as | ||
| 218 | * this is currently where the page size encoding is obtained | ||
| 219 | */ | ||
| 220 | htab_initialize(); | ||
| 221 | |||
| 222 | /* | ||
| 223 | * Initialize stab / SLB management except on iSeries | ||
| 224 | */ | ||
| 225 | if (cpu_has_feature(CPU_FTR_SLB)) | ||
| 226 | slb_initialize(); | ||
| 227 | else if (!firmware_has_feature(FW_FEATURE_ISERIES)) | ||
| 228 | stab_initialize(get_paca()->stab_real); | ||
| 229 | 215 | ||
| 230 | DBG(" <- early_setup()\n"); | 216 | DBG(" <- early_setup()\n"); |
| 231 | } | 217 | } |
| @@ -233,22 +219,11 @@ void __init early_setup(unsigned long dt_ptr) | |||
| 233 | #ifdef CONFIG_SMP | 219 | #ifdef CONFIG_SMP |
| 234 | void early_setup_secondary(void) | 220 | void early_setup_secondary(void) |
| 235 | { | 221 | { |
| 236 | struct paca_struct *lpaca = get_paca(); | ||
| 237 | |||
| 238 | /* Mark interrupts enabled in PACA */ | 222 | /* Mark interrupts enabled in PACA */ |
| 239 | lpaca->soft_enabled = 0; | 223 | get_paca()->soft_enabled = 0; |
| 240 | 224 | ||
| 241 | /* Initialize hash table for that CPU */ | 225 | /* Initialize the hash table or TLB handling */ |
| 242 | htab_initialize_secondary(); | 226 | early_init_mmu_secondary(); |
| 243 | |||
| 244 | /* Initialize STAB/SLB. We use a virtual address as it works | ||
| 245 | * in real mode on pSeries and we want a virutal address on | ||
| 246 | * iSeries anyway | ||
| 247 | */ | ||
| 248 | if (cpu_has_feature(CPU_FTR_SLB)) | ||
| 249 | slb_initialize(); | ||
| 250 | else | ||
| 251 | stab_initialize(lpaca->stab_addr); | ||
| 252 | } | 227 | } |
| 253 | 228 | ||
| 254 | #endif /* CONFIG_SMP */ | 229 | #endif /* CONFIG_SMP */ |
| @@ -578,13 +553,6 @@ void ppc64_boot_msg(unsigned int src, const char *msg) | |||
| 578 | printk("[boot]%04x %s\n", src, msg); | 553 | printk("[boot]%04x %s\n", src, msg); |
| 579 | } | 554 | } |
| 580 | 555 | ||
| 581 | /* Print a termination message (print only -- does not stop the kernel) */ | ||
| 582 | void ppc64_terminate_msg(unsigned int src, const char *msg) | ||
| 583 | { | ||
| 584 | ppc64_do_msg(PPC64_LINUX_FUNCTION|PPC64_TERM_MESSAGE|src, msg); | ||
| 585 | printk("[terminate]%04x %s\n", src, msg); | ||
| 586 | } | ||
| 587 | |||
| 588 | void cpu_die(void) | 556 | void cpu_die(void) |
| 589 | { | 557 | { |
| 590 | if (ppc_md.cpu_die) | 558 | if (ppc_md.cpu_die) |
