[U-Boot] [PATCH v3 5/5] ARMv8: LS1043A: Enable LS1043A default PSCI support
Z.Q. Hou
zhiqiang.hou at nxp.com
Tue Nov 15 04:37:29 CET 2016
Hi York
> -----Original Message-----
> From: york sun
> Sent: 2016年11月15日 2:12
> To: macro.wave.z at gmail.com; u-boot at lists.denx.de; trini at konsulko.com;
> Z.Q. Hou <zhiqiang.hou at nxp.com>
> Cc: wens at csie.org; H.B. Zhang <hongbo.zhang at nxp.com>
> Subject: Re: [PATCH v3 5/5] ARMv8: LS1043A: Enable LS1043A default PSCI
> support
>
> On 11/06/2016 08:14 PM, macro.wave.z at gmail.com wrote:
> > From: Hongbo Zhang <hongbo.zhang at nxp.com>
> >
> > A most basic PSCI implementation with only one psci_version is added
> > for LS1043A, this can verify the generic PSCI framework, and more
> > platform specific implementation will be added later.
> >
> > Signed-off-by: Hongbo Zhang <hongbo.zhang at nxp.com>
> > ---
> > arch/arm/cpu/armv8/fsl-layerscape/Makefile | 1 +
> > arch/arm/cpu/armv8/fsl-layerscape/ls1043a_psci.S | 20
> ++++++++++++++++++++
> > board/freescale/ls1043ardb/Kconfig | 9 +++++++++
> > configs/ls1043ardb_defconfig | 3 +++
> > 4 files changed, 33 insertions(+)
> > create mode 100644 arch/arm/cpu/armv8/fsl-layerscape/ls1043a_psci.S
> >
> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Makefile
> > b/arch/arm/cpu/armv8/fsl-layerscape/Makefile
> > index 51c1cee..423b4b3 100644
> > --- a/arch/arm/cpu/armv8/fsl-layerscape/Makefile
> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/Makefile
> > @@ -28,6 +28,7 @@ endif
> >
> > ifneq ($(CONFIG_LS1043A),)
> > obj-$(CONFIG_SYS_HAS_SERDES) += ls1043a_serdes.o
> > +obj-$(CONFIG_ARMV8_PSCI) += ls1043a_psci.o
> > endif
> >
> > ifneq ($(CONFIG_ARCH_LS1012A),)
> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/ls1043a_psci.S
> > b/arch/arm/cpu/armv8/fsl-layerscape/ls1043a_psci.S
> > new file mode 100644
> > index 0000000..86045ac
> > --- /dev/null
> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/ls1043a_psci.S
> > @@ -0,0 +1,20 @@
> > +/*
> > + * Copyright 2016 Freescale Semiconductor, Inc.
> > + * Author: Hongbo Zhang <hongbo.zhang at nxp.com>
> > + *
> > + * SPDX-License-Identifier: GPL-2.0+
> > + * This file implements LS102X platform PSCI SYSTEM-SUSPEND function
> > +*/
> > +
> > +#include <config.h>
> > +#include <linux/linkage.h>
> > +#include <asm/psci.h>
> > +
> > + .pushsection ._secure.text, "ax"
> > +
> > +.globl psci_version
> > +psci_version:
> > + ldr w0, =0x00010000 /* PSCI v1.0 */
> > + ret
> > +
> > + .popsection
> > diff --git a/board/freescale/ls1043ardb/Kconfig
> > b/board/freescale/ls1043ardb/Kconfig
> > index 51818ec..0c596f9 100644
> > --- a/board/freescale/ls1043ardb/Kconfig
> > +++ b/board/freescale/ls1043ardb/Kconfig
> > @@ -13,4 +13,13 @@ config SYS_SOC
> > config SYS_CONFIG_NAME
> > default "ls1043ardb"
> >
> > +config SYS_HAS_ARMV8_SECURE_BASE
> > + bool "Enable secure RAM for PSCI image"
> > + depends on ARMV8_PSCI
> > + default y
> > + help
> > + PSCI image can be re-located to secure RAM.
> > + If enabled, please also define the value for ARMV8_SECURE_BASE,
> > + for LS1043ARDB, it is address in OCRAM.
> > +
> > endif
> > diff --git a/configs/ls1043ardb_defconfig
> > b/configs/ls1043ardb_defconfig index 79a4eb2..cb189f3 100644
> > --- a/configs/ls1043ardb_defconfig
> > +++ b/configs/ls1043ardb_defconfig
> > @@ -28,3 +28,6 @@ CONFIG_DM_USB=y
> > CONFIG_USB_XHCI_HCD=y
> > CONFIG_USB_XHCI_DWC3=y
> > CONFIG_USB_STORAGE=y
> > +CONFIG_ARMV8_PSCI=y
> > +CONFIG_ARMV8_PSCI_CPUS_PER_CLUSTER=4
> > +CONFIG_ARMV8_SECURE_BASE=0x10010000
> >
>
> How do you decide the CONFIG_ARMV8_SECURE_BASE?
>
> Zhiqiang,
>
> Does this patch set interfere with existing PPA support?
Tried Hongbo's patches with PPA enabled on ls1043ardb, kernel boot failed.
I guess hongbo's u-boot psci setup triggered an exception, because when PPA is initialized u-boot will execute on EL2.
Hongbo, how did you process this circumstance? Another problem, if PPA is disabled, u-boot will go through the spin-table process to wake up secondary cores, will this affect u-boot psci?
Thanks,
Zhiqiang
More information about the U-Boot
mailing list