On Mon, 21 Apr 2014, Abhilash Kesavan wrote: > Hi Nicolas, > > On Thu, Apr 17, 2014 at 1:48 AM, Nicolas Pitre <nicolas.pitre@xxxxxxxxxx> wrote: > > Here's what I mean: > > > > ----- >8 > > > > From: Nicolas Pitre <nicolas.pitre@xxxxxxxxxx> > > Date: Wed, 16 Apr 2014 15:43:59 -0400 > > Subject: [PATCH] ARM: bL_switcher: fix validation check before its activation > > > > The switcher should not depend on MAX_CLUSTER which is a build time > > limit to determine ifit should be activated or not. In a multiplatform > > kernel binary it is possible to have dual-cluster and quad-cluster > > platforms configured in. In that case MAX_CLUSTER should be 4 and that > > shouldn't prevent the switcher from working if the kernel is booted on a > > b.L dual-cluster system. > > > > In bL_switcher_halve_cpus() we already have a runtime validation check > > to make sure we're dealing with only two clusters, so booting on a quad > > cluster system will be caught and switcher activation aborted. > > > > However, the b.L switcher must ensure the MCPM layer is initialized on > > the booted hardware before doing anything. The mcpm_is_available() > > function is added to that effect. > > > > Signed-off-by: Nicolas Pitre <nico@xxxxxxxxxx> > > Thank you for the explanation and patch. I have tested this on our > multi-platform configuration and it works fine - activating the > switcher on one SoC and not on the other. Good. It is in RMK's patch system now. > Even though it is not the case now, could we have a scenario where we > may use mcpm for only secondary core boot-up on one SoC and for > switching on another ? I would then have mcpm ops populated for both > but still want bL switcher activated for only one of them. Absolutely. As soon as you have cluster synchronization issues, you must use MCPM. The switcher is just one amongst a couple users relying on MCPM to do the cluster handling. Secondary CPU boot is an other such user, as well as CPU hotplug that you then get for free. The important thing to remember is that MCPM is a separate layer independent from the b.L switcher. The switcher will accept to be started only on a dual cluster system. But if you don't want it started on a particular dual-cluster SoC you just need to add no_bL_switcher to the kernel cmdline for that SoC. Nicolas -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html