[PATCH 10/10] ARM: Layerscape: LS1028a: fixup psci node

Sascha Hauer s.hauer at pengutronix.de
Tue Jan 9 01:37:54 PST 2024


On Tue, Jan 09, 2024 at 10:26:28AM +0100, Ahmad Fatoum wrote:
> Hello Sascha,
> 
> On 09.01.24 10:16, Sascha Hauer wrote:
> > The upstream LS1028a dtsi files do not have a psci node, so add one
> > in a fixup. This is necessary to bring up the secondary CPU core.
> > 
> > Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> > ---
> >  arch/arm/mach-layerscape/Kconfig |  1 +
> >  arch/arm/mach-layerscape/soc.c   | 16 ++++++++++++++++
> >  2 files changed, 17 insertions(+)
> > 
> > diff --git a/arch/arm/mach-layerscape/Kconfig b/arch/arm/mach-layerscape/Kconfig
> > index 5658a63b33..97f2061eee 100644
> > --- a/arch/arm/mach-layerscape/Kconfig
> > +++ b/arch/arm/mach-layerscape/Kconfig
> > @@ -20,6 +20,7 @@ config ARCH_LS1028
> >  	select SYS_SUPPORTS_64BIT_KERNEL
> >  	select ARM_ATF
> >  	select FIRMWARE_LS1028A_ATF
> > +	select ARM_PSCI_OF
> >  
> >  config ARCH_LS1046
> >  	bool
> > diff --git a/arch/arm/mach-layerscape/soc.c b/arch/arm/mach-layerscape/soc.c
> > index 70c1dedb46..30fbb5d1bf 100644
> > --- a/arch/arm/mach-layerscape/soc.c
> > +++ b/arch/arm/mach-layerscape/soc.c
> > @@ -3,7 +3,9 @@
> >  #include <io.h>
> >  #include <init.h>
> >  #include <memory.h>
> > +#include <linux/arm-smccc.h>
> >  #include <linux/bug.h>
> > +#include <asm/psci.h>
> >  #include <mach/layerscape/layerscape.h>
> >  #include <of.h>
> >  
> > @@ -84,6 +86,19 @@ static int ls1021a_init(void)
> >  	return 0;
> >  }
> >  
> > +static int ls1028a_psci_fixup(struct device_node *root, void *unused)
> > +{
> > +	unsigned long psci_version;
> > +	struct arm_smccc_res res = {};
> > +
> > +	arm_smccc_smc(ARM_PSCI_0_2_FN_PSCI_VERSION, 0, 0, 0, 0, 0, 0, 0, &res);
> > +	psci_version = res.a0;
> > +
> > +	of_psci_fixup(root, psci_version, "smc");
> 
> Do you have a restart handler registered for LS1028A? If not, you may consider
> adding the same node to the barebox device tree node too, so it can use PSCI
> to reset the system.

Will do. This makes this patch unnecessary as the existing PSCI client
support will automatically add a PSCI node to the dtb the Kernel is
started with.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list