The new ISA-agnostic interface is the PartitionManager. We therefore make the PartitionFieldExtention private to the Arm implementation of memory partitioning (FEAT_MPAM) Any other partitioning implementation should override the PartitionManager::readPacketPartitionID to provide a mean for extracting partitioning data (partition_id) from the incoming Packet. With this commit we also define an MPAM MSC which is supposed to be the partitioning manager for the Memory System Component Change-Id: I6959ace0c0cbca549dcc1aacd53dff223b5fe328 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
131 lines
6.0 KiB
Python
131 lines
6.0 KiB
Python
# -*- mode:python -*-
|
|
|
|
# Copyright (c) 2009, 2012-2013, 2020 ARM Limited
|
|
# All rights reserved.
|
|
#
|
|
# The license below extends only to copyright in the software and shall
|
|
# not be construed as granting a license to any other intellectual
|
|
# property including but not limited to intellectual property relating
|
|
# to a hardware implementation of the functionality of the software
|
|
# licensed hereunder. You may use the software subject to the license
|
|
# terms below provided that you ensure that this notice is replicated
|
|
# unmodified and in its entirety in all distributions of the software,
|
|
# modified or unmodified, in source code or in binary form.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are
|
|
# met: redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer;
|
|
# redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution;
|
|
# neither the name of the copyright holders nor the names of its
|
|
# contributors may be used to endorse or promote products derived from
|
|
# this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
Import('*')
|
|
|
|
SimObject('AbstractNVM.py', sim_objects=['AbstractNVM'], tags='arm isa')
|
|
SimObject('Display.py', sim_objects=['Display'], tags='arm isa')
|
|
SimObject('Doorbell.py', sim_objects=['Doorbell'], tags='arm isa')
|
|
SimObject('FlashDevice.py', sim_objects=['FlashDevice'],
|
|
enums=['DataDistribution'], tags='arm isa')
|
|
SimObject('GenericTimer.py', sim_objects=[
|
|
'SystemCounter', 'GenericTimer', 'GenericTimerFrame',
|
|
'GenericTimerMem'], tags='arm isa')
|
|
SimObject('Gic.py', sim_objects=[
|
|
'BaseGic', 'ArmInterruptPin', 'ArmSPI', 'ArmPPI', 'ArmSigInterruptPin',
|
|
'GicV2', 'Gicv2mFrame', 'Gicv2m', 'VGic', 'Gicv3Its', 'Gicv3'],
|
|
enums=['ArmInterruptType'], tags='arm isa')
|
|
SimObject('Mpam.py', sim_objects=['MpamMSC'], tags='arm isa')
|
|
SimObject('RealView.py', sim_objects=[
|
|
'AmbaPioDevice', 'AmbaIntDevice', 'AmbaDmaDevice', 'A9SCU',
|
|
'GenericArmPciHost', 'RealViewCtrl', 'RealViewOsc',
|
|
'RealViewTemperatureSensor', 'AmbaFake', 'Pl011', 'Sp804', 'Sp805',
|
|
'GenericWatchdog', 'CpuLocalTimer', 'PL031', 'Pl050', 'Pl111', 'HDLcd',
|
|
'FVPBasePwrCtrl', 'RealView', 'SysSecCtrl'],
|
|
enums=['ArmPciIntRouting'], tags='arm isa')
|
|
SimObject('SMMUv3.py', sim_objects=['SMMUv3DeviceInterface', 'SMMUv3'],
|
|
tags='arm isa')
|
|
SimObject('UFSHostDevice.py', sim_objects=['UFSHostDevice'], tags='arm isa')
|
|
SimObject('EnergyCtrl.py', sim_objects=['EnergyCtrl'], tags='arm isa')
|
|
SimObject('NoMali.py', sim_objects=['NoMaliGpu', 'CustomNoMaliGpu'],
|
|
enums=['NoMaliGpuType'], tags='arm isa')
|
|
SimObject('VirtIOMMIO.py', sim_objects=['MmioVirtIO'], tags='arm isa')
|
|
if env['CONF']['USE_ARM_FASTMODEL']:
|
|
SimObject('VExpressFastmodel.py', sim_objects=[], tags='arm isa')
|
|
|
|
Source('a9scu.cc', tags='arm isa')
|
|
Source('amba_device.cc', tags='arm isa')
|
|
Source('amba_fake.cc', tags='arm isa')
|
|
Source('base_gic.cc', tags='arm isa')
|
|
Source('display.cc', tags='arm isa')
|
|
Source('flash_device.cc', tags='arm isa')
|
|
Source('generic_timer.cc', tags='arm isa')
|
|
Source('gic_v2.cc', tags='arm isa')
|
|
Source('gic_v2m.cc', tags='arm isa')
|
|
Source('gic_v3.cc', tags='arm isa')
|
|
Source('gic_v3_cpu_interface.cc', tags='arm isa')
|
|
Source('gic_v3_distributor.cc', tags='arm isa')
|
|
Source('gic_v3_redistributor.cc', tags='arm isa')
|
|
Source('gic_v3_its.cc', tags='arm isa')
|
|
Source('mpam.cc', tags='arm isa')
|
|
Source('pl011.cc', tags='arm isa')
|
|
Source('pl111.cc', tags='arm isa')
|
|
Source('hdlcd.cc', tags='arm isa')
|
|
Source('kmi.cc', tags='arm isa')
|
|
Source('smmu_v3.cc', tags='arm isa');
|
|
Source('smmu_v3_caches.cc', tags='arm isa');
|
|
Source('smmu_v3_cmdexec.cc', tags='arm isa');
|
|
Source('smmu_v3_defs.cc', tags='arm isa');
|
|
Source('smmu_v3_events.cc', tags='arm isa');
|
|
Source('smmu_v3_ports.cc', tags='arm isa');
|
|
Source('smmu_v3_proc.cc', tags='arm isa');
|
|
Source('smmu_v3_deviceifc.cc', tags='arm isa');
|
|
Source('smmu_v3_transl.cc', tags='arm isa');
|
|
Source('ssc.cc', tags='arm isa');
|
|
Source('timer_sp804.cc', tags='arm isa')
|
|
Source('watchdog_generic.cc', tags='arm isa')
|
|
Source('watchdog_sp805.cc', tags='arm isa')
|
|
Source('gpu_nomali.cc', tags='arm isa')
|
|
Source('pci_host.cc', tags='arm isa')
|
|
Source('rv_ctrl.cc', tags='arm isa')
|
|
Source('realview.cc', tags='arm isa')
|
|
Source('rtc_pl031.cc', tags='arm isa')
|
|
Source('timer_cpulocal.cc', tags='arm isa')
|
|
Source('vgic.cc', tags='arm isa')
|
|
Source('vio_mmio.cc', tags='arm isa')
|
|
Source('ufs_device.cc', tags='arm isa')
|
|
Source('energy_ctrl.cc', tags='arm isa')
|
|
Source('fvp_base_pwr_ctrl.cc', tags='arm isa')
|
|
|
|
DebugFlag('AMBA', tags='arm isa')
|
|
DebugFlag('FlashDevice', tags='arm isa')
|
|
DebugFlag('HDLcd', tags='arm isa')
|
|
DebugFlag('PL111', tags='arm isa')
|
|
DebugFlag('GICV2M', tags='arm isa')
|
|
DebugFlag('Pl050', tags='arm isa')
|
|
DebugFlag('GIC', tags='arm isa')
|
|
DebugFlag('ITS', tags='arm isa')
|
|
DebugFlag('RVCTRL', tags='arm isa')
|
|
DebugFlag('SMMUv3', tags='arm isa')
|
|
DebugFlag('SMMUv3Hazard', tags='arm isa')
|
|
DebugFlag('Sp805', tags='arm isa')
|
|
DebugFlag('EnergyCtrl', tags='arm isa')
|
|
DebugFlag('FVPBasePwrCtrl', tags='arm isa')
|
|
DebugFlag('UFSHostDevice', tags='arm isa')
|
|
DebugFlag('VGIC', tags='arm isa')
|
|
DebugFlag('NoMali', tags='arm isa')
|