dev-arm: Add VExpress_GEM5_Foundation platform

A new VExpress_GEM5_Foundation platform has been added in order to match
the FVP Armv8-A Foundation Platform described in:

Armv8-A Foundation Platform - User Guide - Version 11.8

The VExpress_GEM5_V1/V2 are already loosely based on the Foundation
platform, however there are some differences in the PCI regions (V1/V2)
and the GICv3 regions (V2).
We hence introduce the VExpress_GEM5_Foundation to match closely the
FVP Foundation Platform

Change-Id: I1604c64ce566308d888c3a630019494b9fae7acf
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27388
Tested-by: Gem5 Cloud Project GCB service account <345032938727@cloudbuild.gserviceaccount.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
This commit is contained in:
Adrian Herrera
2020-03-23 18:06:05 +00:00
committed by Giacomo Travaglini
parent 4cde1075d6
commit b4f4b33ada

View File

@@ -1209,3 +1209,37 @@ class VExpress_GEM5_V2(VExpress_GEM5_V2_Base):
self.hdlcd,
]
class VExpress_GEM5_Foundation(VExpress_GEM5_Base):
"""
Based on Armv8-A FVP Foundation platform v11.8
Reference for memory and interrupt map:
Armv8-A Foundation Platform - User Guide - Version 11.8
Document ID: 100961_1180_00_en
"""
_off_chip_ranges = [
# CS1-CS5
AddrRange(0x0c000000, 0x20000000),
# External AXI interface (PCI)
AddrRange(0x40000000, 0x80000000),
]
gic = Gicv3(dist_addr=0x2f000000, redist_addr=0x2f100000,
maint_int=ArmPPI(num=25), gicv4=False,
its=NULL)
pci_host = GenericArmPciHost(
conf_base=0x40000000, conf_size='256MB', conf_device_bits=12,
pci_pio_base=0x50000000,
pci_mem_base=0x400000000,
int_policy="ARM_PCI_INT_DEV", int_base=100, int_count=4)
def _on_chip_devices(self):
return super(VExpress_GEM5_Foundation, self)._on_chip_devices() + [
self.gic
]
def setupBootLoader(self, cur_sys, loc, boot_loader=None):
if boot_loader is None:
boot_loader = [ loc('boot_v2.arm64') ]
super(VExpress_GEM5_Foundation, self).setupBootLoader(
cur_sys, boot_loader)