From 68af229490fc811aebddf68b3e2e09e63a5fa475 Mon Sep 17 00:00:00 2001 From: Nikos Nikoleris Date: Mon, 12 Feb 2018 15:53:47 +0000 Subject: 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 Reviewed-on: https://gem5-review.googlesource.com/8741 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power --- configs/ruby/MOESI_CMP_token.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'configs/ruby/MOESI_CMP_token.py') 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) -- cgit v1.2.3