configs: Handle various DMA devices in GPU_VIPER
Viper is checking for the dma's type before making the port assignment. In FullSystem mode the IDE device is a PortRef and does not have an attribute 'type.' This handles the various types a bit better and ensures that IDE device, the protocol tester, and upcoming DMA devices related to FullSystem can be added. Change-Id: I6879b25c6aabbbc22b0ee8dc9cbfec6399f70daa Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/44806 Reviewed-by: Matthew Poremba <matthew.poremba@amd.com> Maintainer: Matthew Poremba <matthew.poremba@amd.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -776,11 +776,16 @@ def create_system(options, full_system, system, dma_devices, bootmem,
|
|||||||
dma_cntrl = DMA_Controller(version=i, dma_sequencer=dma_seq,
|
dma_cntrl = DMA_Controller(version=i, dma_sequencer=dma_seq,
|
||||||
ruby_system=ruby_system)
|
ruby_system=ruby_system)
|
||||||
exec('system.dma_cntrl%d = dma_cntrl' % i)
|
exec('system.dma_cntrl%d = dma_cntrl' % i)
|
||||||
if dma_device.type == 'MemTest':
|
|
||||||
|
# IDE doesn't have a .type but seems like everything else does.
|
||||||
|
if not hasattr(dma_device, 'type'):
|
||||||
|
exec('system.dma_cntrl%d.dma_sequencer.slave = dma_device' % i)
|
||||||
|
elif dma_device.type == 'MemTest':
|
||||||
exec('system.dma_cntrl%d.dma_sequencer.slave = dma_devices.test'
|
exec('system.dma_cntrl%d.dma_sequencer.slave = dma_devices.test'
|
||||||
% i)
|
% i)
|
||||||
else:
|
else:
|
||||||
exec('system.dma_cntrl%d.dma_sequencer.slave = dma_device.dma' % i)
|
exec('system.dma_cntrl%d.dma_sequencer.slave = dma_device.dma' % i)
|
||||||
|
|
||||||
dma_cntrl.requestToDir = MessageBuffer(buffer_size=0)
|
dma_cntrl.requestToDir = MessageBuffer(buffer_size=0)
|
||||||
dma_cntrl.requestToDir.master = ruby_system.network.slave
|
dma_cntrl.requestToDir.master = ruby_system.network.slave
|
||||||
dma_cntrl.responseFromDir = MessageBuffer(buffer_size=0)
|
dma_cntrl.responseFromDir = MessageBuffer(buffer_size=0)
|
||||||
|
|||||||
Reference in New Issue
Block a user