diff options
author | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2018-02-12 15:53:47 +0000 |
---|---|---|
committer | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2018-03-20 21:41:45 +0000 |
commit | 68af229490fc811aebddf68b3e2e09e63a5fa475 (patch) | |
tree | 2a9a9cf0c94c2f490e78b30c2498460e535f3a39 /configs/ruby/MOESI_CMP_token.py | |
parent | fe187de9bd1aa479ab6cd198522bfd118d0d50ec (diff) | |
download | gem5-68af229490fc811aebddf68b3e2e09e63a5fa475.tar.xz |
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>
Diffstat (limited to 'configs/ruby/MOESI_CMP_token.py')
-rw-r--r-- | configs/ruby/MOESI_CMP_token.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/configs/ruby/MOESI_CMP_token.py b/configs/ruby/MOESI_CMP_token.py index 7c9871970..25b18a0b8 100644 --- a/configs/ruby/MOESI_CMP_token.py +++ b/configs/ruby/MOESI_CMP_token.py @@ -50,7 +50,8 @@ def define_options(parser): parser.add_option("--allow-atomic-migration", action="store_true", help="allow migratory sharing for atomic only accessed blocks") -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'] != 'MOESI_CMP_token': panic("This script requires the MOESI_CMP_token protocol to be built.") @@ -190,8 +191,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: dir_cntrl.l2_select_num_bits = l2_bits # Connect the directory controllers and the network @@ -264,4 +268,4 @@ def create_system(options, full_system, system, dma_ports, ruby_system): ruby_system.network.number_of_virtual_networks = 6 topology = create_topology(all_cntrls, options) - return (cpu_sequencers, dir_cntrl_nodes, topology) + return (cpu_sequencers, mem_dir_cntrl_nodes, topology) |