Re: [PATCH v5 2/5] powerpc/85xx: add HOTPLUG_CPU support
flat view
From: Zhao Chenhui <hidden>
Date: 2012-06-04 11:04:17
Also in:
lkml
On Fri, Jun 01, 2012 at 04:27:27PM -0500, Scott Wood wrote:
On 05/11/2012 06:53 AM, Zhao Chenhui wrote: \> +#if defined(CONFIG_FSL_BOOKE) || defined(CONFIG_6xx)quoted
+extern void __flush_disable_L1(void); +#endifPrototypes aren't normally guarded by ifdefs.
OK. Thanks.
quoted
+static void __cpuinit smp_85xx_mach_cpu_die(void) +{ + unsigned int cpu = smp_processor_id(); + u32 tmp; + + local_irq_disable(); + idle_task_exit(); + generic_set_cpu_dead(cpu); + mb(); + + mtspr(SPRN_TCR, 0); + + __flush_disable_L1(); + tmp = (mfspr(SPRN_HID0) & ~(HID0_DOZE|HID0_SLEEP)) | HID0_NAP; + mtspr(SPRN_HID0, tmp); + + /* Enter NAP mode. */ + tmp = mfmsr(); + tmp |= MSR_WE; + mb(); + mtmsr(tmp); + isync();Need isync after writing to HID0.quoted
+ /* + * We don't set the BPTR register here upon it points + * to the boot page properly. + */ + mpic_reset_core(hw_cpu);That comment's wording is hard to follow -- maybe s/upon it points/since it already points/quoted
+ /* wait until core is ready... */ + if (!spin_event_timeout(in_be32(&spin_table->addr_l) == 1, + 10000, 100)) { + pr_err("%s: timeout waiting for core %d to reset\n", + __func__, hw_cpu); + ret = -ENOENT; + goto out; + }We need to fix U-Boot to write addr_l last (with an msync beforehand).
I agree.
quoted
-#ifdef CONFIG_KEXEC +#if defined(CONFIG_KEXEC) || defined(CONFIG_HOTPLUG_CPU)Let's not grow lists like this. Is there any harm in building it unconditionally? -Scott
We need this ifdef. We only set give_timebase/take_timebase when CONFIG_KEXEC or CONFIG_HOTPLUG_CPU is defined. -Chenhui