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,
|
||||
ruby_system=ruby_system)
|
||||
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'
|
||||
% i)
|
||||
else:
|
||||
exec('system.dma_cntrl%d.dma_sequencer.slave = dma_device.dma' % i)
|
||||
|
||||
dma_cntrl.requestToDir = MessageBuffer(buffer_size=0)
|
||||
dma_cntrl.requestToDir.master = ruby_system.network.slave
|
||||
dma_cntrl.responseFromDir = MessageBuffer(buffer_size=0)
|
||||
|
||||
Reference in New Issue
Block a user