diff mbox series

[01/17] armv8: Fix SMCC and ARM_PSCI_FW dependencies

Message ID 20200701162959.9814-2-vicooodin@gmail.com
State New
Headers show
Series Add new board: Xen guest for ARM64 | expand

Commit Message

Nastya Vicodin July 1, 2020, 4:29 p.m. UTC
From: Oleksandr Andrushchenko <oleksandr_andrushchenko at epam.com>

Currently SMCC selects ARM_PSCI_FW if enabled which is not correct
as there are cases that PSCI can function without firmware at all.
ARM_PSCI_FW itself is built with driver model approach, so it cannot
be enabled if DM is off.
Fix this by making PSCI reset functionality depend on ARM_PSCI_FW and
only in case if DM is enabled.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko at epam.com>
Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko at epam.com>
Suggested-by: Volodymyr Babchuk <volodymyr_babchuk at epam.com>
---
 arch/arm/Kconfig           | 1 -
 arch/arm/cpu/armv8/Kconfig | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Nastya Vicodin July 3, 2020, 9:57 a.m. UTC | #1
On Thu, Jul 2, 2020 at 4:14 AM Peng Fan <peng.fan at nxp.com> wrote:
>
> > Subject: [PATCH 01/17] armv8: Fix SMCC and ARM_PSCI_FW dependencies
> >
> > From: Oleksandr Andrushchenko <oleksandr_andrushchenko at epam.com>
> >
> > Currently SMCC selects ARM_PSCI_FW if enabled which is not correct as
> > there are cases that PSCI can function without firmware at all.
> > ARM_PSCI_FW itself is built with driver model approach, so it cannot be
> > enabled if DM is off.
> > Fix this by making PSCI reset functionality depend on ARM_PSCI_FW and
only
> > in case if DM is enabled.
>
> I think this might break others, see drivers/firmware/psci.c
>
> Regards,
> Peng.

Well, the only reason we have this patch *was* the problem with the board
support
if CONFIG_DM is off when we tried to add an early console support w/o
driver model.

But it seems this is not needed at all now, so this patch can be easily
dropped without
causing any harm. I?ll also enable CONFIG_DM from the very start as all the
drivers
we are adding will use it anyway.

But, IMO, CONFIG_ARM_PSCI_FW support is still broken wrt the fact that SMCC
can function without PSCI_FW, but made a strong requirement. Even more, it
requires
DM because of the PSCI driver which detects if we are about to use SMCCC or
HVC.

Regards,
Anastasiia

>
>
> >
> > Signed-off-by: Oleksandr Andrushchenko
> > <oleksandr_andrushchenko at epam.com>
> > Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko at epam.com>
> > Suggested-by: Volodymyr Babchuk <volodymyr_babchuk at epam.com>
> > ---
> >  arch/arm/Kconfig           | 1 -
> >  arch/arm/cpu/armv8/Kconfig | 2 ++
> >  2 files changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index
> > 54d65f8488..e9ad716aaa 100644
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -387,7 +387,6 @@ config SYS_ARCH_TIMER  config ARM_SMCCC
> >       bool "Support for ARM SMC Calling Convention (SMCCC)"
> >       depends on CPU_V7A || ARM64
> > -     select ARM_PSCI_FW
> >       help
> >         Say Y here if you want to enable ARM SMC Calling Convention.
> >         This should be enabled if U-Boot needs to communicate with
system
> > diff --git a/arch/arm/cpu/armv8/Kconfig b/arch/arm/cpu/armv8/Kconfig
> > index 3655990772..c8727f4175 100644
> > --- a/arch/arm/cpu/armv8/Kconfig
> > +++ b/arch/arm/cpu/armv8/Kconfig
> > @@ -103,6 +103,8 @@ config PSCI_RESET
> >       bool "Use PSCI for reset and shutdown"
> >       default y
> >       select ARM_SMCCC if OF_CONTROL
> > +     select ARM_PSCI_FW if DM
> > +
> >       depends on !ARCH_EXYNOS7 && !ARCH_BCM283X && \
> >                  !TARGET_LS2080A_SIMU && !TARGET_LS2080AQDS && \
> >                  !TARGET_LS2080ARDB && !TARGET_LS2080A_EMU && \
> > --
> > 2.17.1
diff mbox series

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 54d65f8488..e9ad716aaa 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -387,7 +387,6 @@  config SYS_ARCH_TIMER
 config ARM_SMCCC
 	bool "Support for ARM SMC Calling Convention (SMCCC)"
 	depends on CPU_V7A || ARM64
-	select ARM_PSCI_FW
 	help
 	  Say Y here if you want to enable ARM SMC Calling Convention.
 	  This should be enabled if U-Boot needs to communicate with system
diff --git a/arch/arm/cpu/armv8/Kconfig b/arch/arm/cpu/armv8/Kconfig
index 3655990772..c8727f4175 100644
--- a/arch/arm/cpu/armv8/Kconfig
+++ b/arch/arm/cpu/armv8/Kconfig
@@ -103,6 +103,8 @@  config PSCI_RESET
 	bool "Use PSCI for reset and shutdown"
 	default y
 	select ARM_SMCCC if OF_CONTROL
+	select ARM_PSCI_FW if DM
+
 	depends on !ARCH_EXYNOS7 && !ARCH_BCM283X && \
 		   !TARGET_LS2080A_SIMU && !TARGET_LS2080AQDS && \
 		   !TARGET_LS2080ARDB && !TARGET_LS2080A_EMU && \