Ignore:
Timestamp:
Jul 10, 2014, 2:35:05 PM (10 years ago)
Author:
cfuguet
Message:

reconfiguration: tsar_generic_iob distributed boot

  • Introducing optional distributed boot in the tsar_generic_iob platform.
  • To support this, a distributed boot ROM is instantiated in each cluster.
  • Physical address extension register for instructions and data of L1 caches is initialized with local cluster index when distributed boot is activated.
Location:
branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd

    r747 r748  
    22# -*- python -*-
    33
    4 Module('caba:tsar_iob_cluster',
     4Module('caba:reconfiguration:tsar_iob_cluster',
    55    classname = 'soclib::caba::TsarIobCluster',
    66
     
    4848
    4949        Uses('caba:vci_multi_dma',
     50              cell_size          = parameter.Reference('vci_data_width_int')),
     51
     52        Uses('caba:vci_simple_rom',
    5053              cell_size          = parameter.Reference('vci_data_width_int')),
    5154
  • branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h

    r747 r748  
    3232#include "vci_cc_vcache_wrapper.h"
    3333#include "vci_io_bridge.h"
     34#include "vci_simple_rom.h"
    3435
    3536namespace soclib { namespace caba   {
     
    9495    VciSignals<vci_param_int>             signal_int_vci_tgt_xicu;
    9596    VciSignals<vci_param_int>             signal_int_vci_tgt_mdma;
     97    VciSignals<vci_param_int>             signal_int_vci_tgt_brom;
    9698    VciSignals<vci_param_int>             signal_int_vci_tgt_iobx;
    9799
     
    146148    VciMultiDma<vci_param_int>*                       mdma;
    147149
     150    VciSimpleRom<vci_param_int>*                      brom;
     151
    148152    VciLocalCrossbar<vci_param_int>*                  int_xbar_d;
    149153   
     
    205209                    size_t                             int_xicu_tgt_id,
    206210                    size_t                             int_mdma_tgt_id,
     211                    size_t                             int_brom_tgt_id,
    207212                    size_t                             int_iobx_tgt_id,
    208213                    size_t                             int_proc_ini_id,
     
    227232                    size_t                             xcu_nb_inputs,
    228233
     234                    bool                               distboot,
     235
    229236                    const Loader                       &loader,       // loader for XRAM
    230237
  • branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp

    r747 r748  
    5050                    size_t                             int_xicu_tgt_id, // local index
    5151                    size_t                             int_mdma_tgt_id, // local index
     52                    size_t                             int_brom_tgt_id, // local index
    5253                    size_t                             int_iobx_tgt_id, // local index
    5354
     
    7374                    size_t                             xcu_nb_inputs,
    7475
    75                     const Loader                      &loader,
     76                    bool                               distboot,
     77
     78                    const Loader                       &loader,
    7679
    7780                    uint32_t                           frozen_cycles,
     
    137140                      debug_start_cycle,
    138141                      proc_debug_ok);
     142
     143        // initialize physical address extension with cluster ID when using
     144        // distributed boot
     145        if (distboot)
     146        {
     147            proc[p]->set_dcache_paddr_ext_reset(cluster_id);
     148            proc[p]->set_icache_paddr_ext_reset(cluster_id);
     149        }
    139150    }
    140151
     
    193204                     nb_dmas);                            // number of IRQs
    194205
     206    ///////////   DISTRIBUTED BOOT ROM
     207    std::ostringstream s_brom;
     208    s_brom << "brom_" << x_id << "_" << y_id;
     209    brom = new VciSimpleRom<vci_param_int>(
     210                     s_brom.str().c_str(),
     211                     IntTab(cluster_id, int_brom_tgt_id),
     212                     mt_int,
     213                     loader,
     214                     x_width + y_width);                  // msb drop bits
     215
    195216    ///////////  Direct LOCAL_XBAR(S)
    196217    size_t nb_direct_initiators = is_io ? nb_procs + 2 : nb_procs + 1;
    197     size_t nb_direct_targets    = is_io ? 4 : 3;
     218    size_t nb_direct_targets    = is_io ? 5 : 4;
    198219
    199220    std::ostringstream s_int_xbar_d;
     
    432453    int_xbar_d->p_to_target[int_xicu_tgt_id]          (signal_int_vci_tgt_xicu);
    433454    int_xbar_d->p_to_target[int_mdma_tgt_id]          (signal_int_vci_tgt_mdma);
     455    int_xbar_d->p_to_target[int_brom_tgt_id]          (signal_int_vci_tgt_brom);
    434456    int_xbar_d->p_to_initiator[int_mdma_ini_id]       (signal_int_vci_ini_mdma);
    435457    for (size_t p = 0; p < nb_procs; p++)
     
    550572        mdma->p_irq[i]                           (signal_irq_mdma[i]);
    551573
     574    /////////////////////////////////// BROM
     575    brom->p_clk                                  (this->p_clk);
     576    brom->p_resetn                               (this->p_resetn);
     577    brom->p_vci                                  (signal_int_vci_tgt_brom);
     578
    552579    //////////////////////////// RAM network CMD & RSP routers
    553580    ram_router_cmd->p_clk                        (this->p_clk);
     
    626653
    627654// Local Variables:
    628 // tab-width: 3
    629 // c-basic-offset: 3
     655// tab-width: 4
     656// c-basic-offset: 4
    630657// c-file-offsets:((innamespace . 0)(inline-open . 0))
    631658// indent-tabs-mode: nil
    632659// End:
    633660
    634 // vim: filetype=cpp:expandtab:shiftwidth=3:tabstop=3:softtabstop=3
    635 
     661// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
     662
Note: See TracChangeset for help on using the changeset viewer.