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:
committed by
Giacomo Travaglini
parent
4cde1075d6
commit
b4f4b33ada
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user