ARM: tegra: align carveout size
authorStephen Warren <swarren@nvidia.com>
Tue, 31 Jul 2018 18:38:27 +0000 (12:38 -0600)
committerTom Rini <trini@konsulko.com>
Thu, 2 Aug 2018 00:06:10 +0000 (20:06 -0400)
Align the size of the carveout region to 2M. This ensures that the size
can be accurately represented by an LPAE page table that uses sections.

This solves a bug (hang at boot time soon after printing the DRAM size)
that only shows up when the following two commits are merged together:
d32e86bde8a3 ARM: HYP/non-sec: enable ARMV7_LPAE if HYP mode is supported
6e584e633d10 ARM: tegra: avoid using secure carveout RAM

Cc: Mark Kettenis <kettenis@openbsd.org>
Cc: Alexander Graf <agraf@suse.de>
Acked-by: Tom Warren <twarren@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
arch/arm/mach-tegra/board2.c

index 5ecadf705e7ebaffa35a2c97f1a2df4532a0b3eb..421a71b3014d1d195c3e138161f417a58cbc18b6 100644 (file)
@@ -252,7 +252,7 @@ static ulong carveout_size(void)
 #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);
+       return (0 - CONFIG_ARMV7_SECURE_BASE) & ~(SZ_2M - 1);
 #else
        return 0;
 #endif