Ignore:
Timestamp:
Mar 7, 2014, 10:29:22 AM (10 years ago)
Author:
cfuguet
Message:

TSAR FAULT TOLERANCE BRANCH

  • Introducing replicated ROMs in cluster to contain the distributed boot procedure.
  • Erasing ROM in the IO network
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/fault_tolerance/platform/tsar_generic_iob/top.cpp

    r648 r658  
    126126#include "vci_multi_tty.h"
    127127#include "vci_multi_nic.h"
    128 #include "vci_simple_rom.h"
    129128#include "vci_block_device_tsar.h"
    130129#include "vci_framebuffer.h"
     
    233232
    234233#define BROM_BASE 0x00BFC00000
    235 #define BROM_SIZE 0x0000100000 // 1 M Kbytes
     234#define BROM_SIZE 0x0000010000 // 64 Kbytes
    236235
    237236#define IOBX_BASE 0x00BE000000
    238 #define IOBX_SIZE 0x0000001000 // 4 K Kbytes
     237#define IOBX_SIZE 0x0000001000 // 4 Kbytes
    239238
    240239#define BDEV_BASE 0x00B3000000
    241 #define BDEV_SIZE 0x0000008000 // 4 Kbytes
     240#define BDEV_SIZE 0x0000008000 // 4  Kbytes
    242241
    243242#define MTTY_BASE 0x00B4000000
     
    305304#define INT_MEMC_TGT_ID 0
    306305#define INT_XICU_TGT_ID 1
    307 #define INT_MDMA_TGT_ID 2
    308 #define INT_IOBX_TGT_ID 3
     306#define INT_BROM_TGT_ID 2
     307#define INT_MDMA_TGT_ID 3
     308#define INT_IOBX_TGT_ID 4
    309309
    310310#define INT_PROC_INI_ID 0 // from 0 to 7
     
    331331#define IOX_MNIC_TGT_ID 4
    332332#define IOX_CDMA_TGT_ID 5
    333 #define IOX_BROM_TGT_ID 6
    334 #define IOX_MTTY_TGT_ID 7
     333#define IOX_MTTY_TGT_ID 6
    335334
    336335#define IOX_IOB0_INI_ID 0 // Don't change this value
     
    552551         bool cacheable = true;
    553552
    554          // the four following segments are defined in all clusters
     553         // the five following segments are defined in all clusters
    555554
    556555         std::ostringstream smemc_conf;
     
    572571                                not cacheable));
    573572
     573         std::ostringstream sbrom;
     574         sbrom << "int_seg_brom_" << x << "_" << y;
     575         maptab_int.add(Segment(sbrom.str(), BROM_BASE+offset, BROM_SIZE,
     576                                IntTab(cluster(x,y),INT_BROM_TGT_ID),
     577                                cacheable));
     578
    574579         std::ostringstream smdma;
    575580         smdma << "int_seg_mdma_" << x << "_" << y;
     
    611616                                   IntTab(cluster(x,y), INT_IOBX_TGT_ID),
    612617                                   not cacheable));
    613 
    614             std::ostringstream srom;
    615             srom << "int_seg_brom_" << x << "_" << y;
    616             maptab_int.add(Segment(srom.str(), BROM_BASE+offset, BROM_SIZE,
    617                                    IntTab(cluster(x,y), INT_IOBX_TGT_ID),
    618                                    cacheable ));
    619618
    620619            std::ostringstream sdma;
     
    728727    maptab_iox.add(Segment("iox_seg_cdma_1", CDMA_BASE + iob1_base, CDMA_SIZE,
    729728                           IntTab(cluster_iob1, IOX_CDMA_TGT_ID), false));
    730     maptab_iox.add(Segment("iox_seg_brom_0", BROM_BASE + iob0_base, BROM_SIZE,
    731                            IntTab(cluster_iob0,IOX_BROM_TGT_ID), false));
    732     maptab_iox.add(Segment("iox_seg_brom_1", BROM_BASE + iob1_base, BROM_SIZE,
    733                            IntTab(cluster_iob1,IOX_BROM_TGT_ID), false));
    734729
    735730    // Each physical RAM can be accessed through IOB0, or through IOB1.
     
    832827    VciSignals<vci_param_ext> signal_vci_tgt_fbuf("signal_vci_tgt_fbuf");
    833828    VciSignals<vci_param_ext> signal_vci_tgt_mnic("signal_vci_tgt_mnic");
    834     VciSignals<vci_param_ext> signal_vci_tgt_brom("signal_vci_tgt_brom");
    835829    VciSignals<vci_param_ext> signal_vci_tgt_bdev("signal_vci_tgt_bdev");
    836830    VciSignals<vci_param_ext> signal_vci_tgt_cdma("signal_vci_tgt_cdma");
     
    947941   iox_network = new VciIoxNetwork<vci_param_ext>("iox_network",
    948942                                                  maptab_iox,
    949                                                   8,   // number of targets
     943                                                  7,   // number of targets
    950944                                                  4 ); // number of initiators
    951    // boot ROM
    952    VciSimpleRom<vci_param_ext>*  brom;
    953    brom = new VciSimpleRom<vci_param_ext>("brom",
    954                                           IntTab(0, IOX_BROM_TGT_ID),
    955                                           maptab_iox,
    956                                           loader );
     945
    957946   // Network Controller
    958947   VciMultiNic<vci_param_ext>*  mnic;
     
    10601049               .int_mdma_tgtid    = INT_MDMA_TGT_ID,
    10611050               .int_iobx_tgtid    = INT_IOBX_TGT_ID,
     1051               .int_brom_tgtid    = INT_BROM_TGT_ID,
    10621052               .int_proc_srcid    = INT_PROC_INI_ID,
    10631053               .int_mdma_srcid    = INT_MDMA_INI_ID,
     
    11091099    iox_network->p_to_tgt[IOX_FBUF_TGT_ID] (signal_vci_tgt_fbuf);
    11101100    iox_network->p_to_tgt[IOX_MNIC_TGT_ID] (signal_vci_tgt_mnic);
    1111     iox_network->p_to_tgt[IOX_BROM_TGT_ID] (signal_vci_tgt_brom);
    11121101    iox_network->p_to_tgt[IOX_BDEV_TGT_ID] (signal_vci_tgt_bdev);
    11131102    iox_network->p_to_tgt[IOX_CDMA_TGT_ID] (signal_vci_tgt_cdma);
     
    11441133
    11451134    std::cout << "  - MNIC connected" << std::endl;
    1146 
    1147     // BROM connexion
    1148     brom->p_clk    (signal_clk);
    1149     brom->p_resetn (signal_resetn);
    1150     brom->p_vci    (signal_vci_tgt_brom);
    1151 
    1152     std::cout << "  - BROM connected" << std::endl;
    11531135
    11541136    // MTTY connexion
     
    16351617                signal_vci_ini_cdma.print_trace("[SIG]IOX_CDMA_INI");
    16361618
    1637 //              brom->print_trace();
    1638 //              signal_vci_tgt_brom.print_trace("[SIG]IOX_BROM_TGT");
    1639 
    16401619//              mtty->print_trace();
    16411620//              signal_vci_tgt_mtty.print_trace("[SIG]IOX_MTTY_TGT");
     
    16601639
    16611640   delete iox_network;
    1662    delete brom;
    16631641   delete mnic;
    16641642   delete fbuf;
Note: See TracChangeset for help on using the changeset viewer.