10.04.2019 11:57, Thierry Reding пишет: > From: Thierry Reding <treding@xxxxxxxxxx> > > Move the Trusted Foundations support out of arch/arm/firmware and into > drivers/firmware where most other firmware support implementations are > located. > > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > --- > arch/arm/Kconfig | 2 -- > arch/arm/Makefile | 1 - > arch/arm/firmware/Kconfig | 29 ------------------- > arch/arm/firmware/Makefile | 4 --- > arch/arm/mach-tegra/Kconfig | 2 +- > arch/arm/mach-tegra/cpuidle-tegra114.c | 3 +- > arch/arm/mach-tegra/pm.c | 3 +- > arch/arm/mach-tegra/reset.c | 3 +- > arch/arm/mach-tegra/tegra.c | 3 +- > drivers/firmware/Kconfig | 15 ++++++++++ > drivers/firmware/Makefile | 1 + > .../firmware/trusted_foundations.c | 4 ++- > .../linux/firmware}/trusted_foundations.h | 4 +-- > 13 files changed, 30 insertions(+), 44 deletions(-) > delete mode 100644 arch/arm/firmware/Kconfig > delete mode 100644 arch/arm/firmware/Makefile > rename {arch/arm => drivers}/firmware/trusted_foundations.c (98%) > rename {arch/arm/include/asm => include/linux/firmware}/trusted_foundations.h (97%) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 054ead960f98..f006b3c69247 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -899,8 +899,6 @@ config PLAT_PXA > config PLAT_VERSATILE > bool > > -source "arch/arm/firmware/Kconfig" > - > source "arch/arm/mm/Kconfig" > > config IWMMXT > diff --git a/arch/arm/Makefile b/arch/arm/Makefile > index 807a7d06c2a0..05ecc004de86 100644 > --- a/arch/arm/Makefile > +++ b/arch/arm/Makefile > @@ -290,7 +290,6 @@ core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/ > core-y += arch/arm/probes/ > core-y += arch/arm/net/ > core-y += arch/arm/crypto/ > -core-y += arch/arm/firmware/ > core-y += $(machdirs) $(platdirs) > > drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/ > diff --git a/arch/arm/firmware/Kconfig b/arch/arm/firmware/Kconfig > deleted file mode 100644 > index ad396af68e47..000000000000 > --- a/arch/arm/firmware/Kconfig > +++ /dev/null > @@ -1,29 +0,0 @@ > -config ARCH_SUPPORTS_FIRMWARE > - bool > - > -config ARCH_SUPPORTS_TRUSTED_FOUNDATIONS > - bool > - select ARCH_SUPPORTS_FIRMWARE > - > -menu "Firmware options" > - depends on ARCH_SUPPORTS_FIRMWARE > - > -config TRUSTED_FOUNDATIONS > - bool "Trusted Foundations secure monitor support" > - depends on ARCH_SUPPORTS_TRUSTED_FOUNDATIONS > - default y > - help > - Some devices (including most Tegra-based consumer devices on the > - market) are booted with the Trusted Foundations secure monitor > - active, requiring some core operations to be performed by the secure > - monitor instead of the kernel. > - > - This option allows the kernel to invoke the secure monitor whenever > - required on devices using Trusted Foundations. See > - arch/arm/include/asm/trusted_foundations.h or the > - tlm,trusted-foundations device tree binding documentation for details > - on how to use it. > - > - Say n if you don't know what this is about. > - > -endmenu > diff --git a/arch/arm/firmware/Makefile b/arch/arm/firmware/Makefile > deleted file mode 100644 > index 6e41336b0bc4..000000000000 > --- a/arch/arm/firmware/Makefile > +++ /dev/null > @@ -1,4 +0,0 @@ > -obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o > - > -# tf_generic_smc() fails to build with -fsanitize-coverage=trace-pc > -KCOV_INSTRUMENT := n > diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig > index 7b3fd0995a16..cbad7823f602 100644 > --- a/arch/arm/mach-tegra/Kconfig > +++ b/arch/arm/mach-tegra/Kconfig > @@ -3,7 +3,6 @@ menuconfig ARCH_TEGRA > bool "NVIDIA Tegra" > depends on ARCH_MULTI_V7 > select ARCH_HAS_RESET_CONTROLLER > - select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS > select ARM_AMBA > select ARM_GIC > select CLKSRC_MMIO > @@ -14,6 +13,7 @@ menuconfig ARCH_TEGRA > select PM_OPP > select RESET_CONTROLLER > select SOC_BUS > + select TRUSTED_FOUNDATIONS Do we really want to force-enable the driver? I think it's better to have a choice and then instead enable the driver in the tegra_defconfig. > select ZONE_DMA if ARM_LPAE > help > This enables support for NVIDIA Tegra based systems. [snip] > --- a/drivers/firmware/Kconfig > +++ b/drivers/firmware/Kconfig > @@ -267,6 +267,21 @@ config TI_SCI_PROTOCOL > This protocol library is used by client drivers to use the features > provided by the system controller. > > +config TRUSTED_FOUNDATIONS > + bool "Trusted Foundations secure monitor support" Th driver shall depend at least on ARM because of the assembly. And maybe even on ARCH_TEGRA. Do you know if there are any platforms other than Tegra that use that firmware? Won't it make sense to move the driver to tegra/ ?