scons: Add sim_object and enums arguments to SimObject().
This will explicitly declare what SimObject and Enum types need to be set up in C++, which will make importing all the SimObject modules during the setup phase of SCons uneccessary. Change-Id: Id2d7603daf33b236ceaa0789e2f089f589d34e62 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49406 Reviewed-by: Gabe Black <gabe.black@gmail.com> Maintainer: Gabe Black <gabe.black@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -28,7 +28,8 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('Device.py')
|
||||
SimObject('Device.py', sim_objects=[
|
||||
'PioDevice', 'BasicPioDevice', 'DmaDevice', 'DmaVirtDevice', 'IsaFake'])
|
||||
Source('io_device.cc')
|
||||
Source('isa_fake.cc')
|
||||
Source('dma_device.cc')
|
||||
@@ -40,13 +41,13 @@ Source('intpin.cc')
|
||||
DebugFlag('IsaFake')
|
||||
DebugFlag('DMA')
|
||||
|
||||
SimObject('Platform.py')
|
||||
SimObject('Platform.py', sim_objects=['Platform'])
|
||||
Source('platform.cc')
|
||||
|
||||
if env['TARGET_ISA'] == 'null':
|
||||
Return()
|
||||
|
||||
SimObject('BadDevice.py')
|
||||
SimObject('BadDevice.py', sim_objects=['BadDevice'])
|
||||
|
||||
Source('baddev.cc')
|
||||
Source('intel_8254_timer.cc')
|
||||
|
||||
@@ -35,7 +35,7 @@ if not env['BUILD_GPU']:
|
||||
Return()
|
||||
|
||||
# Controllers
|
||||
SimObject('AMDGPU.py', tags='x86 isa')
|
||||
SimObject('AMDGPU.py', sim_objects=['AMDGPUDevice'], tags='x86 isa')
|
||||
|
||||
Source('amdgpu_device.cc', tags='x86 isa')
|
||||
Source('mmio_reader.cc', tags='x86 isa')
|
||||
|
||||
@@ -37,18 +37,32 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('AbstractNVM.py', tags='arm isa')
|
||||
SimObject('Display.py', tags='arm isa')
|
||||
SimObject('Doorbell.py', tags='arm isa')
|
||||
SimObject('FlashDevice.py', tags='arm isa')
|
||||
SimObject('GenericTimer.py', tags='arm isa')
|
||||
SimObject('Gic.py', tags='arm isa')
|
||||
SimObject('RealView.py', tags='arm isa')
|
||||
SimObject('SMMUv3.py', tags='arm isa')
|
||||
SimObject('UFSHostDevice.py', tags='arm isa')
|
||||
SimObject('EnergyCtrl.py', tags='arm isa')
|
||||
SimObject('NoMali.py', tags='arm isa')
|
||||
SimObject('VirtIOMMIO.py', tags='arm isa')
|
||||
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('RealView.py', sim_objects=[
|
||||
'AmbaPioDevice', 'AmbaIntDevice', 'AmbaDmaDevice', 'A9SCU',
|
||||
'GenericArmPciHost', 'RealViewCtrl', 'RealViewOsc',
|
||||
'RealViewTemperatureSensor', 'AmbaFake', 'Pl011', 'Sp804', 'Sp805',
|
||||
'GenericWatchdog', 'CpuLocalTimer', 'PL031', 'Pl050', 'Pl111', 'HDLcd',
|
||||
'FVPBasePwrCtrl', 'RealView'],
|
||||
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['USE_ARM_FASTMODEL']:
|
||||
SimObject('VExpressFastmodel.py', tags='arm isa')
|
||||
|
||||
|
||||
@@ -37,9 +37,12 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('MHU.py', tags='arm isa')
|
||||
SimObject('Scmi.py', tags='arm isa')
|
||||
SimObject('Scp.py', tags='arm isa')
|
||||
SimObject('MHU.py', sim_objects=[
|
||||
'MhuDoorbell', 'Scp2ApDoorbell', 'Ap2ScpDoorbell', 'MHU'], tags='arm isa')
|
||||
SimObject('Scmi.py', sim_objects=[
|
||||
'ScmiChannel', 'ScmiAgentChannel', 'ScmiPlatformChannel',
|
||||
'ScmiCommunication', 'ScmiPlatform'], tags='arm isa')
|
||||
SimObject('Scp.py', sim_objects=['Scp'], tags='arm isa')
|
||||
|
||||
Source('mhu.cc', tags='arm isa')
|
||||
Source('scmi_platform.cc', tags='arm isa')
|
||||
|
||||
@@ -36,7 +36,7 @@ Import('*')
|
||||
if not env['BUILD_GPU']:
|
||||
Return()
|
||||
|
||||
SimObject('HSADevice.py')
|
||||
SimObject('HSADevice.py', sim_objects=['HSAPacketProcessor'])
|
||||
|
||||
Source('hsa_packet_processor.cc')
|
||||
Source('hw_scheduler.cc')
|
||||
|
||||
@@ -40,5 +40,5 @@ Import('*')
|
||||
if env['TARGET_ISA'] == 'null':
|
||||
Return()
|
||||
|
||||
SimObject('I2C.py')
|
||||
SimObject('I2C.py', sim_objects=['I2CDevice', 'I2CBus'])
|
||||
Source('bus.cc')
|
||||
|
||||
@@ -26,14 +26,14 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('LupioBLK.py', tags='riscv isa')
|
||||
SimObject('LupioIPI.py', tags='riscv isa')
|
||||
SimObject('LupioPIC.py', tags='riscv isa')
|
||||
SimObject('LupioRNG.py', tags='riscv isa')
|
||||
SimObject('LupioRTC.py', tags='riscv isa')
|
||||
SimObject('LupioTMR.py', tags='riscv isa')
|
||||
SimObject('LupioTTY.py', tags='riscv isa')
|
||||
SimObject('LupioSYS.py', tags='riscv isa')
|
||||
SimObject('LupioBLK.py', sim_objects=['LupioBLK'], tags='riscv isa')
|
||||
SimObject('LupioIPI.py', sim_objects=['LupioIPI'], tags='riscv isa')
|
||||
SimObject('LupioPIC.py', sim_objects=['LupioPIC'], tags='riscv isa')
|
||||
SimObject('LupioRNG.py', sim_objects=['LupioRNG'], tags='riscv isa')
|
||||
SimObject('LupioRTC.py', sim_objects=['LupioRTC'], tags='riscv isa')
|
||||
SimObject('LupioTMR.py', sim_objects=['LupioTMR'], tags='riscv isa')
|
||||
SimObject('LupioTTY.py', sim_objects=['LupioTTY'], tags='riscv isa')
|
||||
SimObject('LupioSYS.py', sim_objects=['LupioSYS'], tags='riscv isa')
|
||||
|
||||
DebugFlag('LupioBLK')
|
||||
DebugFlag('LupioIPI')
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('Malta.py', tags='mips isa')
|
||||
SimObject('Malta.py', sim_objects=['MaltaCChip', 'MaltaIO', 'Malta'],
|
||||
tags='mips isa')
|
||||
|
||||
DebugFlag('Malta', tags='mips isa')
|
||||
|
||||
|
||||
@@ -40,7 +40,11 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('Ethernet.py')
|
||||
SimObject('Ethernet.py', sim_objects=[
|
||||
'EtherLink', 'DistEtherLink', 'EtherBus', 'EtherSwitch', 'EtherTapBase',
|
||||
'EtherTapStub', 'EtherDump', 'EtherDevice', 'IGbE', 'EtherDevBase',
|
||||
'NSGigE', 'Sinic'] +
|
||||
(['EtherTap'] if env['HAVE_TUNTAP'] else []))
|
||||
|
||||
# Basic Ethernet infrastructure
|
||||
Source('etherbus.cc')
|
||||
|
||||
@@ -40,14 +40,16 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('PciDevice.py')
|
||||
SimObject('PciDevice.py', sim_objects=[
|
||||
'PciBar', 'PciBarNone', 'PciIoBar', 'PciLegacyIoBar', 'PciMemBar',
|
||||
'PciMemUpperBar', 'PciDevice'])
|
||||
Source('device.cc')
|
||||
DebugFlag('PciDevice')
|
||||
|
||||
SimObject('PciHost.py')
|
||||
SimObject('PciHost.py', sim_objects=['PciHost', 'GenericPciHost'])
|
||||
Source('host.cc')
|
||||
DebugFlag('PciHost')
|
||||
|
||||
SimObject('CopyEngine.py')
|
||||
SimObject('CopyEngine.py', sim_objects=['CopyEngine'])
|
||||
Source('copy_engine.cc')
|
||||
DebugFlag('DMACopyEngine')
|
||||
|
||||
@@ -40,7 +40,8 @@ Import('*')
|
||||
if env['TARGET_ISA'] == 'null':
|
||||
Return()
|
||||
|
||||
SimObject('PS2.py')
|
||||
SimObject('PS2.py', sim_objects=[
|
||||
'PS2Device', 'PS2Keyboard', 'PS2Mouse', 'PS2TouchKit'])
|
||||
Source('device.cc')
|
||||
Source('keyboard.cc')
|
||||
Source('mouse.cc')
|
||||
|
||||
@@ -28,13 +28,14 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('HiFive.py', tags='riscv isa')
|
||||
SimObject('LupV.py', tags='riscv isa')
|
||||
SimObject('Clint.py', tags='riscv isa')
|
||||
SimObject('PlicDevice.py', tags='riscv isa')
|
||||
SimObject('Plic.py', tags='riscv isa')
|
||||
SimObject('RTC.py', tags='riscv isa')
|
||||
SimObject('RiscvVirtIOMMIO.py', tags='riscv isa')
|
||||
SimObject('HiFive.py', sim_objects=['HiFive'], tags='riscv isa')
|
||||
SimObject('LupV.py', sim_objects=['LupV'], tags='riscv isa')
|
||||
SimObject('Clint.py', sim_objects=['Clint'], tags='riscv isa')
|
||||
SimObject('PlicDevice.py', sim_objects=['PlicIntDevice'], tags='riscv isa')
|
||||
SimObject('Plic.py', sim_objects=['Plic'], tags='riscv isa')
|
||||
SimObject('RTC.py', sim_objects=['RiscvRTC'], tags='riscv isa')
|
||||
SimObject('RiscvVirtIOMMIO.py', sim_objects=['RiscvMmioVirtIO'],
|
||||
tags='riscv isa')
|
||||
|
||||
DebugFlag('Clint', tags='riscv isa')
|
||||
DebugFlag('Plic', tags='riscv isa')
|
||||
|
||||
@@ -43,9 +43,9 @@ Import('*')
|
||||
if env['TARGET_ISA'] == 'null':
|
||||
Return()
|
||||
|
||||
SimObject('Serial.py')
|
||||
SimObject('Terminal.py')
|
||||
SimObject('Uart.py')
|
||||
SimObject('Serial.py', sim_objects=['SerialDevice', 'SerialNullDevice'])
|
||||
SimObject('Terminal.py', sim_objects=['Terminal'], enums=['TerminalDump'])
|
||||
SimObject('Uart.py', sim_objects=['Uart', 'SimpleUart', 'Uart8250'])
|
||||
|
||||
Source('serial.cc')
|
||||
Source('simple.cc')
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('T1000.py', tags='sparc isa')
|
||||
SimObject('T1000.py', sim_objects=['MmDisk', 'DumbTOD', 'Iob', 'T1000'],
|
||||
tags='sparc isa')
|
||||
|
||||
Source('dtod.cc', tags='sparc isa')
|
||||
Source('iob.cc', tags='sparc isa')
|
||||
|
||||
@@ -44,7 +44,7 @@ if env['TARGET_ISA'] == 'null':
|
||||
Return()
|
||||
|
||||
# Controllers
|
||||
SimObject('Ide.py')
|
||||
SimObject('Ide.py', sim_objects=['IdeDisk', 'IdeController'], enums=['IdeID'])
|
||||
|
||||
Source('ide_ctrl.cc')
|
||||
Source('ide_disk.cc')
|
||||
@@ -53,8 +53,9 @@ DebugFlag('IdeCtrl')
|
||||
DebugFlag('IdeDisk')
|
||||
|
||||
# Disk models
|
||||
SimObject('DiskImage.py')
|
||||
SimObject('SimpleDisk.py')
|
||||
SimObject('DiskImage.py', sim_objects=[
|
||||
'DiskImage', 'RawDiskImage', 'CowDiskImage'])
|
||||
SimObject('SimpleDisk.py', sim_objects=['SimpleDisk'])
|
||||
|
||||
Source('disk_image.cc')
|
||||
Source('simple_disk.cc')
|
||||
|
||||
@@ -40,10 +40,12 @@ Import('*')
|
||||
if env['TARGET_ISA'] == 'null':
|
||||
Return()
|
||||
|
||||
SimObject('VirtIO.py')
|
||||
SimObject('VirtIOConsole.py')
|
||||
SimObject('VirtIOBlock.py')
|
||||
SimObject('VirtIO9P.py')
|
||||
SimObject('VirtIO.py', sim_objects=[
|
||||
'VirtIODeviceBase', 'VirtIODummyDevice', 'PciVirtIO'])
|
||||
SimObject('VirtIOConsole.py', sim_objects=['VirtIOConsole'])
|
||||
SimObject('VirtIOBlock.py', sim_objects=['VirtIOBlock'])
|
||||
SimObject('VirtIO9P.py', sim_objects=[
|
||||
'VirtIO9PBase', 'VirtIO9PProxy', 'VirtIO9PDiod', 'VirtIO9PSocket'])
|
||||
|
||||
Source('base.cc')
|
||||
Source('pci.cc')
|
||||
|
||||
@@ -28,36 +28,37 @@
|
||||
|
||||
Import('*')
|
||||
|
||||
SimObject('Pc.py', tags='x86 isa')
|
||||
SimObject('Pc.py', sim_objects=['Pc'], tags='x86 isa')
|
||||
Source('pc.cc', tags='x86 isa')
|
||||
|
||||
SimObject('SouthBridge.py', tags='x86 isa')
|
||||
SimObject('SouthBridge.py', sim_objects=['SouthBridge'], tags='x86 isa')
|
||||
Source('south_bridge.cc', tags='x86 isa')
|
||||
|
||||
SimObject('Cmos.py', tags='x86 isa')
|
||||
SimObject('Cmos.py', sim_objects=['Cmos'], tags='x86 isa')
|
||||
Source('cmos.cc', tags='x86 isa')
|
||||
DebugFlag('CMOS', 'Accesses to CMOS devices', tags='x86 isa')
|
||||
|
||||
SimObject('I8259.py', tags='x86 isa')
|
||||
SimObject('I8259.py', sim_objects=['I8259'], enums=['X86I8259CascadeMode'],
|
||||
tags='x86 isa')
|
||||
Source('i8259.cc', tags='x86 isa')
|
||||
DebugFlag('I8259', 'Accesses to the I8259 PIC devices', tags='x86 isa')
|
||||
|
||||
SimObject('I8254.py', tags='x86 isa')
|
||||
SimObject('I8254.py', sim_objects=['I8254'], tags='x86 isa')
|
||||
Source('i8254.cc', tags='x86 isa')
|
||||
DebugFlag('I8254', 'Interrupts from the I8254 timer', tags='x86 isa');
|
||||
|
||||
SimObject('I8237.py', tags='x86 isa')
|
||||
SimObject('I8237.py', sim_objects=['I8237'], tags='x86 isa')
|
||||
Source('i8237.cc', tags='x86 isa')
|
||||
DebugFlag('I8237', 'The I8237 dma controller', tags='x86 isa');
|
||||
|
||||
SimObject('I8042.py', tags='x86 isa')
|
||||
SimObject('I8042.py', sim_objects=['I8042'], tags='x86 isa')
|
||||
Source('i8042.cc', tags='x86 isa')
|
||||
DebugFlag('I8042', 'The I8042 keyboard controller', tags='x86 isa');
|
||||
|
||||
SimObject('PcSpeaker.py', tags='x86 isa')
|
||||
SimObject('PcSpeaker.py', sim_objects=['PcSpeaker'], tags='x86 isa')
|
||||
Source('speaker.cc', tags='x86 isa')
|
||||
DebugFlag('PcSpeaker', tags='x86 isa')
|
||||
|
||||
SimObject('I82094AA.py', tags='x86 isa')
|
||||
SimObject('I82094AA.py', sim_objects=['I82094AA'], tags='x86 isa')
|
||||
Source('i82094aa.cc', tags='x86 isa')
|
||||
DebugFlag('I82094AA', tags='x86 isa')
|
||||
|
||||
Reference in New Issue
Block a user