]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ARM: 8388/1: tcm: Don't crash when TCM banks are protected by TrustZone
authorMichael van der Westhuizen <michael@smart-africa.com>
Thu, 4 Jun 2015 14:14:51 +0000 (15:14 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 6 Jun 2015 09:37:28 +0000 (10:37 +0100)
commit0bbe6b5a73c00f8c8e7eb38fb86993f03cd64b70
tree955e890a18d41e330497d4a4f23c574ac6a79489
parentd2b30cd4b7223a96e606dfc8120626f66d81e091
ARM: 8388/1: tcm: Don't crash when TCM banks are protected by TrustZone

Fixes the TCM initialisation code to handle TCM banks that are
present but inaccessible due to TrustZone configuration.  This is
the default case when enabling the non-secure world.  It may also
be the case that that the user decided to use TCM for TrustZone.

This change has exposed a bug in handling of TCM where no TCM bank
was usable (the 0 size TCM case).  This change addresses the
resulting hang.

This code only handles the ARMv6 TCMTR register format, and will not
work correctly on boards that use the ARMv7 (or any other) format.
This is handled by performing an early exit from the initialisation
function when the TCMTR reports any format other than v6.

Signed-off-by: Michael van der Westhuizen <michael@smart-africa.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/tcm.c