[PATCH v3 0/8] Support Trusted Foundations firmware on Tegra30

From: Dmitry Osipenko
Date: Thu Aug 30 2018 - 14:05:26 EST


Hello,

All consumer-grade Tegra30 devices, like Nexus 7 tablet; Ouya console and
others, use Trusted Foundations firmware that doesn't allow CPU to access
secure registers directly from the Linux kernel, these accesses shall be
done via the firmware calls. This patch-series adds a full-featured support
of the Trusted Foundations firmware that opens the door for supporting of
various Tegra30-based devices in the upstream Linux kernel.

Changelog:

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: Setup 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 | 43 ++++++++++++
arch/arm/mach-tegra/reset-handler.S | 66 ++++++++++++++----
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 | 4 ++
arch/arm/mach-tegra/tegra.c | 10 +++
11 files changed, 216 insertions(+), 21 deletions(-)

--
2.18.0