Ignore:
Timestamp:
Sep 19, 2012, 10:55:24 AM (12 years ago)
Author:
alain
Message:

Introducing a network controller (vci_multi_nic) in the I0 cluster.

Location:
trunk/platforms/tsarv4_generic_mmu/tsarv4_cluster_mmu/caba
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsarv4_generic_mmu/tsarv4_cluster_mmu/caba/metadata/tsarv4_cluster_mmu.sd

    r255 r263  
    3535                Uses('caba:vci_multi_tty'),
    3636                Uses('caba:vci_framebuffer'),
     37                Uses('caba:vci_multi_nic'),
    3738                Uses('caba:vci_block_device_tsar_v4'),
    3839                Uses('caba:vci_multi_dma'),
  • trunk/platforms/tsarv4_generic_mmu/tsarv4_cluster_mmu/caba/source/include/tsarv4_cluster_mmu.h

    r255 r263  
    2727#include "vci_vdspin_initiator_wrapper.h"
    2828#include "vci_multi_tty.h"
     29#include "vci_multi_nic.h"
    2930#include "vci_block_device_tsar_v4.h"
    3031#include "vci_framebuffer.h"
     
    5859        sc_signal<bool>                 signal_irq_mdma[8];
    5960        sc_signal<bool>                 signal_irq_mtty[23];
     61        sc_signal<bool>                 signal_irq_mnic_rx[8];  // unused
     62        sc_signal<bool>                 signal_irq_mnic_tx[8];  // unused
    6063        sc_signal<bool>                 signal_irq_bdev;
    6164       
     
    8891        VciSignals<vci_param>           signal_vci_tgt_d_brom;
    8992        VciSignals<vci_param>           signal_vci_tgt_d_fbuf;
     93        VciSignals<vci_param>           signal_vci_tgt_d_mnic;
    9094
    9195        // Coherence VCi signals
     
    114118    VciMultiTty<vci_param>*                                     mtty;
    115119    VciFrameBuffer<vci_param>*                                  fbuf;
     120    VciMultiNic<vci_param>*                                     mnic;
    116121    VciBlockDeviceTsarV4<vci_param>*                            bdev;
    117122    VciMultiDma<vci_param>*                                     mdma;
     
    132137                     size_t                                 tgtid_memc,
    133138                     size_t                                 tgtid_xicu,
     139                     size_t                             tgtid_mdma,
    134140                     size_t                                 tgtid_fbuf,
    135141                     size_t                             tgtid_mtty,
    136142                     size_t                             tgtid_brom,
     143                     size_t                             tgtid_mnic,
    137144                     size_t                             tgtid_bdev,
    138                      size_t                             tgtid_mdma,
    139145                     size_t                             memc_ways,
    140146                     size_t                             memc_sets,
     
    149155                     char*                              disk_name,     // virtual disk name for BDEV
    150156                     size_t                             block_size,    // block size for BDEV
     157                     size_t                             nic_channels,  // number of channels
     158                     char*                              nic_rx_name,   // file name rx packets
     159                     char*                              nic_tx_name,   // file name tx packets
     160                     uint32_t                                                   nic_timeout,   // number of cycles
    151161                                 const Loader                       &loader,       // loader for BROM
    152162                     uint32_t                           frozen_cycles, // max frozen cycles
  • trunk/platforms/tsarv4_generic_mmu/tsarv4_cluster_mmu/caba/source/src/tsarv4_cluster_mmu.cpp

    r261 r263  
    4848         size_t                             tgtid_memc,
    4949         size_t                             tgtid_xicu,
     50         size_t                             tgtid_mdma,
    5051         size_t                             tgtid_fbuf,
    5152         size_t                             tgtid_mtty,
    5253         size_t                             tgtid_brom,
     54         size_t                             tgtid_mnic,
    5355         size_t                             tgtid_bdev,
    54          size_t                             tgtid_mdma,
    5556         size_t                             memc_ways,
    5657         size_t                             memc_sets,
     
    6566         char*                              disk_name,
    6667         size_t                             block_size,
     68         size_t                             nic_channels,
     69         char*                              nic_rx_name,
     70         char*                              nic_tx_name,
     71         uint32_t                           nic_timeout,
    6772         const Loader                      &loader,
    6873         uint32_t                           frozen_cycles,
     
    182187    {
    183188        nb_direct_initiators         = nb_procs + 2;
    184         nb_direct_targets            = 7;
     189        nb_direct_targets            = 8;
    185190    }
    186191    std::ostringstream sd;
     
    208213    std::cout << "  - building wrappers in cluster_" << x_id << "_" << y_id << std::endl;
    209214
    210     // direct initiator wrapper
    211215    std::ostringstream wid;
    212216    wid << "iniwrapperd_" << x_id << "_" << y_id;
     
    216220                     4);                           // rsp fifo depth
    217221
    218     // direct target wrapper
    219222    std::ostringstream wtd;
    220223    wtd << "tgtwrapperd_" << x_id << "_" << y_id;
     
    224227                     4);                           // rsp fifo depth
    225228
    226     // coherence initiator wrapper
    227229    std::ostringstream wic;
    228230    wic << "iniwrapperc_" << x_id << "_" << y_id;
     
    232234                     4);                           // rsp fifo depth
    233235
    234     // coherence target wrapper
    235236    std::ostringstream wtc;
    236237    wtc << "tgtwrapperc_" << x_id << "_" << y_id;
     
    252253    std::cout << "  - building rsprouter_" << x_id << "_" << y_id << std::endl;
    253254
    254     // RSP router
    255255    std::ostringstream srsp;
    256256    srsp << "rsprouter_" << x_id << "_" << y_id;
     
    291291                        64);            // burst size
    292292
     293        std::cout << "  - building mnic" << std::endl;
     294
     295        mnic = new VciMultiNic<vci_param>(
     296                        "mnic",
     297                        IntTab(cluster_id, tgtid_mnic),
     298                        mtd,
     299                        nic_channels,
     300                        nic_rx_name,
     301                        nic_tx_name,
     302                        nic_timeout);
     303
    293304        std::cout << "  - building mtty" << std::endl;
    294305
     
    391402        xbard->p_to_target[tgtid_bdev]      (signal_vci_tgt_d_bdev);
    392403        xbard->p_to_target[tgtid_fbuf]      (signal_vci_tgt_d_fbuf);
     404        xbard->p_to_target[tgtid_mnic]      (signal_vci_tgt_d_mnic);
    393405
    394406        xbard->p_to_initiator[nb_procs+1]   (signal_vci_ini_d_bdev);
     
    471483    xram->p_clk                         (this->p_clk);
    472484    xram->p_resetn                      (this->p_resetn);
    473     xram->p_vci                                 (signal_vci_xram);
     485    xram->p_vci                               (signal_vci_xram);
    474486
    475487    std::cout << "  - XRAM connected" << std::endl;
     
    492504         {
    493505        // BDEV           
    494              bdev->p_clk                        (this->p_clk);
    495         bdev->p_resetn                          (this->p_resetn);
    496         bdev->p_irq                             (signal_irq_bdev);
    497         bdev->p_vci_target                      (signal_vci_tgt_d_bdev);
    498         bdev->p_vci_initiator                   (signal_vci_ini_d_bdev);
     506             bdev->p_clk                    (this->p_clk);
     507        bdev->p_resetn                 (this->p_resetn);
     508        bdev->p_irq                    (signal_irq_bdev);
     509        bdev->p_vci_target             (signal_vci_tgt_d_bdev);
     510        bdev->p_vci_initiator          (signal_vci_ini_d_bdev);
    499511
    500512        std::cout << "  - BDEV connected" << std::endl;
    501513
    502514        // FBUF
    503         fbuf->p_clk                             (this->p_clk);
    504         fbuf->p_resetn                          (this->p_resetn);
    505         fbuf->p_vci                             (signal_vci_tgt_d_fbuf);
     515        fbuf->p_clk                    (this->p_clk);
     516        fbuf->p_resetn                 (this->p_resetn);
     517        fbuf->p_vci                    (signal_vci_tgt_d_fbuf);
    506518
    507519        std::cout << "  - FBUF connected" << std::endl;
    508520
     521        // MNIC
     522        mnic->p_clk                    (this->p_clk);
     523        mnic->p_resetn                 (this->p_resetn);
     524        mnic->p_vci                    (signal_vci_tgt_d_mnic);
     525        for ( size_t i=0 ; i<nic_channels ; i++ )
     526        {
     527            mnic->p_rx_irq[i]          (signal_irq_mnic_rx[i]);
     528            mnic->p_tx_irq[i]          (signal_irq_mnic_tx[i]);
     529        }
     530
     531        std::cout << "  - MNIC connected" << std::endl;
     532
    509533        // BROM
    510         brom->p_clk                             (this->p_clk);
    511         brom->p_resetn                          (this->p_resetn);
    512         brom->p_vci                             (signal_vci_tgt_d_brom);
     534        brom->p_clk                    (this->p_clk);
     535        brom->p_resetn                 (this->p_resetn);
     536        brom->p_vci                    (signal_vci_tgt_d_brom);
    513537
    514538        std::cout << "  - BROM connected" << std::endl;
    515539
    516540        // MTTY
    517         mtty->p_clk                             (this->p_clk);
    518         mtty->p_resetn                          (this->p_resetn);
    519         mtty->p_vci                             (signal_vci_tgt_d_mtty);
     541        mtty->p_clk                    (this->p_clk);
     542        mtty->p_resetn                 (this->p_resetn);
     543        mtty->p_vci                    (signal_vci_tgt_d_mtty);
    520544        for ( size_t i=0 ; i<nb_ttys ; i++ )
    521545        {
    522             mtty->p_irq[i]                      (signal_irq_mtty[i]);
     546            mtty->p_irq[i]              (signal_irq_mtty[i]);
    523547        }
    524548
Note: See TracChangeset for help on using the changeset viewer.