[PATCH] arm: mvebu: AC5: Use finer grained memory map
Stefan Roese
sr at denx.de
Wed Jan 10 15:08:11 CET 2024
On 10/27/23 02:44, Chris Packham wrote:
> The ATF implementation for AC5/AC5X ends up with bl31 living in some
> internal SRAM. This is in the middle of the large MMIO region that we
> were using. Adjust this to be finer grained blocks based on the address
> map from the AC5X Family Control and Management Subsystem Functional
> Datasheet.
>
> Signed-off-by: Chris Packham <judge.packham at gmail.com>
Applied to u-boot-marvell/master
Thanks,
Stefan
> ---
>
> arch/arm/mach-mvebu/alleycat5/cpu.c | 66 ++++++++++++++++++++++-------
> 1 file changed, 51 insertions(+), 15 deletions(-)
>
> diff --git a/arch/arm/mach-mvebu/alleycat5/cpu.c b/arch/arm/mach-mvebu/alleycat5/cpu.c
> index 8204d9627515..0f72ae1709be 100644
> --- a/arch/arm/mach-mvebu/alleycat5/cpu.c
> +++ b/arch/arm/mach-mvebu/alleycat5/cpu.c
> @@ -16,7 +16,10 @@
>
> DECLARE_GLOBAL_DATA_PTR;
>
> -#define RAM_SIZE SZ_1G
> +#define AC5_PTE_BLOCK_DEVICE \
> + (PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | \
> + PTE_BLOCK_NON_SHARE | \
> + PTE_BLOCK_PXN | PTE_BLOCK_UXN)
>
> static struct mm_region ac5_mem_map[] = {
> {
> @@ -31,30 +34,63 @@ static struct mm_region ac5_mem_map[] = {
> .phys = 0x00000000,
> .virt = 0xa0000000,
> .size = 0x100000,
> -
> - .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> - PTE_BLOCK_NON_SHARE |
> - PTE_BLOCK_PXN | PTE_BLOCK_UXN
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> },
> {
> /* MMIO regions */
> .phys = 0x100000,
> .virt = 0x100000,
> .size = 0x3ff00000,
> -
> - .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> - PTE_BLOCK_NON_SHARE |
> - PTE_BLOCK_PXN | PTE_BLOCK_UXN
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> },
> {
> - /* MMIO regions */
> .phys = 0x7F000000,
> .virt = 0x7F000000,
> - .size = 0x21000000,
> -
> - .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> - PTE_BLOCK_NON_SHARE |
> - PTE_BLOCK_PXN | PTE_BLOCK_UXN
> + .size = SZ_8M,
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> + },
> + {
> + .phys = 0x7F800000,
> + .virt = 0x7F800000,
> + .size = SZ_4M,
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> + },
> + {
> + .phys = 0x7FC00000,
> + .virt = 0x7FC00000,
> + .size = SZ_512K,
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> + },
> + {
> + .phys = 0x7FC80000,
> + .virt = 0x7FC80000,
> + .size = SZ_512K,
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> + },
> + {
> + .phys = 0x7FD00000,
> + .virt = 0x7FD00000,
> + .size = SZ_512K,
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> + },
> + /* ATF region 0x7FE00000-0x7FE20000 not mapped */
> + {
> + .phys = 0x7FE80000,
> + .virt = 0x7FE80000,
> + .size = SZ_512K,
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> + },
> + {
> + .phys = 0x7FFF0000,
> + .virt = 0x7FFF0000,
> + .size = SZ_1M,
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> + },
> + {
> + .phys = 0x80000000,
> + .virt = 0x80000000,
> + .size = SZ_2G,
> + .attrs = AC5_PTE_BLOCK_DEVICE,
> },
> {
> 0,
Viele Grüße,
Stefan Roese
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list