[U-Boot] [PATCHv6 4/6] ARMv8/Layerscape: switch SMP method accordingly

Zhiqiang Hou zhiqiang.hou at nxp.com
Thu Jun 23 05:56:13 CEST 2016


Hi York,

Thanks for your comments!

> -----Original Message-----
> From: york sun
> Sent: 2016年6月23日 0:22
> To: Zhiqiang Hou <zhiqiang.hou at nxp.com>; u-boot at lists.denx.de;
> albert.u.boot at aribaud.net; scottwood at freescale.com;
> Mingkai.hu at freescale.com; yorksun at freescale.com; leoli at freescale.com;
> prabhakar at freescale.com; bhupesh.sharma at freescale.com
> Subject: Re: [PATCHv6 4/6] ARMv8/Layerscape: switch SMP method accordingly
> 
> On 06/21/2016 08:45 PM, Zhiqiang Hou wrote:
> > From: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
> >
> > If the PSCI and PPA is ready, skip the fixup for spin-table and waking
> > secondary cores. Otherwise, change SMP method to spin-table, and the
> > device node of PSCI will be removed.
> >
> > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
> > ---
> > V6:
> >   - no change
> >
> > V5:
> >   - Changed the checking if the PSCI feature is ready to read the psci version.
> >
> > V4:
> >   - Reordered this patch.
> >
> >   arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 17 ++++++++++++++---
> >   arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 34
> +++++++++++++++++++++++++++++++++
> >   2 files changed, 48 insertions(+), 3 deletions(-)
> >
> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> > b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> > index d5bcf67..f284b77 100644
> > --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> > @@ -23,6 +23,9 @@
> >   #ifdef CONFIG_FSL_ESDHC
> >   #include <fsl_esdhc.h>
> >   #endif
> > +#ifdef CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT #include
> > +<asm/armv8/sec_firmware.h> #endif
> >
> >   DECLARE_GLOBAL_DATA_PTR;
> >
> > @@ -622,6 +625,7 @@ int arch_early_init_r(void)
> >   {
> >   #ifdef CONFIG_MP
> >   	int rv = 1;
> > +	bool psci_support = false;
> >   #endif
> >
> >   #ifdef CONFIG_SYS_FSL_ERRATUM_A009635 @@ -629,9 +633,16 @@ int
> > arch_early_init_r(void)
> >   #endif
> >
> >   #ifdef CONFIG_MP
> > -	rv = fsl_layerscape_wake_seconday_cores();
> > -	if (rv)
> > -		printf("Did not wake secondary cores\n");
> > +#if defined(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT) &&
> defined(CONFIG_ARMV8_PSCI)
> > +	/* Check the psci version to determine if the psci is supported */
> > +	psci_support = sec_firmware_support_psci_version() != 0xffffffff ?
> > +			true : false;
> 
> If the only error code is 0xffffffff, you can delete the "? true :
> false" part. The logical operation results "true" or "false" already.
> 

Yes, will fix it.

> > +#endif
> > +	if (!psci_support) {
> > +		rv = fsl_layerscape_wake_seconday_cores();
> > +		if (rv)
> > +			printf("Did not wake secondary cores\n");
> > +	}
> >   #endif
> 
> <snip>

Thanks,
Zhiqiang


More information about the U-Boot mailing list