arch-arm, configs: Treat the bootloader rom as cacheable memory

Prior to this changeset the bootloader rom (instantiated as a
SimpleMemory) in ruby Arm systems was treated as an IO device and it
was fronted by a DMA controller. This changeset moves the bootloader
rom and adds it to the system as another memory with a dedicated
directory controller.

Change-Id: I094fed031cdef7f77a939d94f948d967b349b7e0
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/8741
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
Nikos Nikoleris
2018-02-12 15:53:47 +00:00
parent fe187de9bd
commit 68af229490
17 changed files with 109 additions and 59 deletions

View File

@@ -42,7 +42,8 @@ class L1Cache(RubyCache): pass
def define_options(parser):
return
def create_system(options, full_system, system, dma_ports, ruby_system):
def create_system(options, full_system, system, dma_ports, bootmem,
ruby_system):
if buildEnv['PROTOCOL'] != 'MI_example':
panic("This script requires the MI_example protocol to be built.")
@@ -125,8 +126,11 @@ def create_system(options, full_system, system, dma_ports, ruby_system):
clk_domain=ruby_system.clk_domain,
clk_divider=3)
dir_cntrl_nodes = create_directories(options, system.mem_ranges,
ruby_system)
mem_dir_cntrl_nodes, rom_dir_cntrl_node = create_directories(
options, system.mem_ranges, bootmem, ruby_system, system)
dir_cntrl_nodes = mem_dir_cntrl_nodes[:]
if rom_dir_cntrl_node is not None:
dir_cntrl_nodes.append(rom_dir_cntrl_node)
for dir_cntrl in dir_cntrl_nodes:
# Connect the directory controllers and the network
dir_cntrl.requestToDir = MessageBuffer(ordered = True)
@@ -188,4 +192,4 @@ def create_system(options, full_system, system, dma_ports, ruby_system):
ruby_system.network.number_of_virtual_networks = 5
topology = create_topology(all_cntrls, options)
return (cpu_sequencers, dir_cntrl_nodes, topology)
return (cpu_sequencers, mem_dir_cntrl_nodes, topology)