arch-arm: ArmSystem::resetAddr64 renamed to be used in AArch32
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Wed, 31 Oct 2018 17:12:30 +0000 (17:12 +0000)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Wed, 7 Nov 2018 15:22:43 +0000 (15:22 +0000)
commit6fa49382ef22e1b01fb24503e3bbe5ab3556750a
tree503b9ab214e8a52116debf268c7add2f6f41a962
parentf97164aa29ad50c1b324416c14f93e0b463bcfa7
arch-arm: ArmSystem::resetAddr64 renamed to be used in AArch32

ARMv8 differs from ARMv7 with the presence of RVBAR register, which
contains the implementation defined reset address when EL3 is not
implemented.
The entry 0x0 in the AArch32 vector table, once used for the Reset
Vector, is now marked as "Not used", stating that it is now IMPLEMENTATION
DEFINED. An implementation might still use this vector table entry to
hold the Reset vector, but having a Reset address != than the general
vector table (for any other exception) is allowed.

At the moment any Reset exception is still using 0 as a vector table
base address. This patch is extending the ArmSystem::resetAddr64 to
ArmSystem::resetAddr so that it can be used for initializing
MVBAR/RVBAR. In order to do so, we are providing a specialized behavior
for the Reset exception when evaluating the vector base address.

Change-Id: I051a730dc089e194db3b107bbed19251c661f87e
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/14000
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
src/arch/arm/ArmSystem.py
src/arch/arm/faults.cc
src/arch/arm/faults.hh
src/arch/arm/isa.cc
src/arch/arm/system.cc
src/arch/arm/system.hh