vexpress64: Add ARMv8R-64 board variant
authorPeter Hoyes <Peter.Hoyes@arm.com>
Fri, 4 Mar 2022 16:30:18 +0000 (16:30 +0000)
committerTom Rini <trini@konsulko.com>
Fri, 1 Apr 2022 19:03:03 +0000 (15:03 -0400)
commit8d78a6b67467145f7e02295ca5d4944251dbc645
treed7740ca3f69063f5ed0e37eed78dc222c529a381
parent1a1143a45457161e90ea4cd5f3b0561d924ed8fe
vexpress64: Add ARMv8R-64 board variant

The ARMv8-R64 architecture introduces optional VMSA (paging based MMU)
support in the EL1/0 translation regime, which makes that part mostly
compatible to ARMv8-A.

Add a new board variant to describe the "BASE-R64" FVP model, which
inherits a lot from the existing v8-A FVP support. One major difference
is that the memory map in "inverted": DRAM starts at 0x0, MMIO is at
2GB [1].

 * Create new TARGET_VEXPRESS64_BASER_FVP target, sharing most of the
   exising configuration.
 * Implement inverted memory map in vexpress_aemv8.h
 * Create vexpress_aemv8r defconfig
 * Provide an MMU memory map for the BASER_FVP
 * Update vexpress64 documentation

At the moment the boot-wrapper is the only supported secure firmware. As
there is no official DT for the board yet, we rely on it being supplied
by the boot-wrapper into U-Boot, so use OF_HAS_PRIOR_STAGE, and go with
a dummy DT for now.

[1] https://developer.arm.com/documentation/100964/1114/Base-Platform/Base---memory/BaseR-Platform-memory-map

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
[Andre: rebase and add Linux kernel header]
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
[trini: Add MAINTAINERS entry for Peter]
arch/arm/dts/Makefile
arch/arm/dts/arm_fvp.dts [new file with mode: 0644]
board/armltd/vexpress64/Kconfig
board/armltd/vexpress64/MAINTAINERS
configs/vexpress_aemv8r_defconfig [new file with mode: 0644]
doc/arch/arm64.rst
doc/board/armltd/vexpress64.rst
include/configs/vexpress_aemv8.h