Re: [PATCH v4 0/8] Support Trusted Foundations firmware on Tegra30

From: Thierry Reding
Date: Mon Feb 18 2019 - 03:51:21 EST


On Mon, Feb 18, 2019 at 03:17:18AM +0300, Dmitry Osipenko wrote:
> Hello,
>
> This patchset adds support for the Trusted Foundations firmware on
> NVIDIA Tegra30. Pretty much all of Tegra30 consumer devices have that
> firmware and upstream kernel can't boot on those devices without the
> firmware support.
>
> Changelog:
>
> v4: - Fixed Thumb2-kernel hanging on Tegra20, turned out it was not a
> good idea to switch CPU into Thumb2 mode right after jumping into
> the reset handler.
>
> - Moved LP2-mode-set firmware call invocation to a later stage to
> better replicate what downstream kernel does. This change was
> suggested by Robert Yang and fixes system hang on Ouya game
> console.
>
> - Added references to the original work made by MichaÅ MirosÅaw
> into commit messages of the relevant patches.
>
> v3: - Implemented suspend-resume support.
>
> - Reworked arm/firmware/trusted_foundations.c a tad. Now cache
> is getting properly initialized, cache enabling / disabling is
> supported.
>
> v2:
> - The "Don't apply CPU erratas in insecure mode" patch got some
> cleanup, in particular resolved the messiness in
> __tegra_cpu_reset_handler_data.
>
> - Added a comment to tf_cache_write_sec(), justifying the warning
> message.
>
> Dmitry Osipenko (8):
> ARM: trusted_foundations: Implement L2 cache initialization callback
> ARM: trusted_foundations: Make prepare_idle call to take mode argument
> ARM: trusted_foundations: Provide information about whether firmware
> is registered
> ARM: tegra: Set up L2 cache using Trusted Foundations firmware
> ARM: tegra: Don't apply CPU erratas in insecure mode
> ARM: tegra: Always boot CPU in ARM-mode
> ARM: tegra: Support L2 cache maintenance done via firmware
> ARM: tegra: Add firmware calls required for suspend-resume
>
> arch/arm/firmware/trusted_foundations.c | 80 +++++++++++++++++++++-
> arch/arm/include/asm/firmware.h | 2 +-
> arch/arm/include/asm/trusted_foundations.h | 13 ++++
> arch/arm/mach-tegra/cpuidle-tegra114.c | 3 +-
> arch/arm/mach-tegra/pm.c | 50 ++++++++++++++
> arch/arm/mach-tegra/reset-handler.S | 52 ++++++++++----
> arch/arm/mach-tegra/reset.c | 3 +
> arch/arm/mach-tegra/reset.h | 9 ++-
> arch/arm/mach-tegra/sleep-tegra20.S | 4 ++
> arch/arm/mach-tegra/sleep.S | 11 +--
> arch/arm/mach-tegra/tegra.c | 10 +++
> 11 files changed, 214 insertions(+), 23 deletions(-)

Hi Russell,

I'm not sure if this is something that you have a vested interest in. It
looks like Tegra is the only platform that uses this, and usage is
limited to two generations (Tegra30 and Tegra114). Do you mind if I pick
this up into the Tegra tree and send this as part of the pull requests
for v5.2?

Actually, Trusted Foundations is the only firmware implementation left
in arch/arm/firmware, so how about we move this file over to
drivers/firmware (perhaps even the tegra subdirectory given that nobody
else seems to be using it) and get rid of arch/arm/firmware?

I can prepare a patch that does that on top of this series, just let me
know how you want to handle this.

Thanks,
Thierry

Attachment: signature.asc
Description: PGP signature