ARM: tegra: avoid using secure carveout RAM
authorStephen Warren <swarren@nvidia.com>
Fri, 22 Jun 2018 19:03:19 +0000 (13:03 -0600)
committerTom Warren <twarren@nvidia.com>
Thu, 26 Jul 2018 20:15:30 +0000 (13:15 -0700)
If a secure carveout exists, U-Boot cannot use that memory. Fix
carveout_size() to reflect this, and hence transitively fix
usable_ram_size_below_4g() and board_get_usable_ram_top(). This change
ensures that when U-Boot copies the secure monitor code to install it, the
copy target is not in-use for U-Boot code/data.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
arch/arm/mach-tegra/board2.c

index 25da771607b7b0d497ab56f64add72586619accd..5ecadf705e7ebaffa35a2c97f1a2df4532a0b3eb 100644 (file)
@@ -249,6 +249,10 @@ static ulong carveout_size(void)
 {
 #ifdef CONFIG_ARM64
        return SZ_512M;
+#elif defined(CONFIG_ARMV7_SECURE_RESERVE_SIZE)
+       // BASE+SIZE might not == 4GB. If so, we want the carveout to cover
+       // from BASE to 4GB, not BASE to BASE+SIZE.
+       return (0 - CONFIG_ARMV7_SECURE_BASE);
 #else
        return 0;
 #endif