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

@@ -43,7 +43,8 @@ class L2Cache(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'] != 'MESI_Two_Level':
fatal("This script requires the MESI_Two_Level protocol to be built.")
@@ -173,8 +174,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()
@@ -231,4 +235,4 @@ def create_system(options, full_system, system, dma_ports, ruby_system):
ruby_system.network.number_of_virtual_networks = 3
topology = create_topology(all_cntrls, options)
return (cpu_sequencers, dir_cntrl_nodes, topology)
return (cpu_sequencers, mem_dir_cntrl_nodes, topology)