Changeset 475


Ignore:
Timestamp:
Jul 26, 2013, 3:44:43 PM (11 years ago)
Author:
lambert
Message:

Introducing Vci_Chbuf_Dma in tsar_generic_xbar platform :

  • The number of channels of the is dma is 2* nic_channels
  • Adding one argument to the tsar_xbar_cluster for dma TGTID
  • Chbuf Dma default address is 0x00B6000000

Changing Vci_Multi_Nic default Mac address to BABEBEEF0000

Location:
trunk/platforms/tsar_generic_xbar
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_xbar/top.cpp

    r468 r475  
    2727// - the disk controller (BDEV)
    2828// - the multi-channel network controller (MNIC)
     29// - the multi-channel chained buffer dma controller (CHBUF)
    2930// - the multi-channel tty controller (MTTY)
    3031// - the frame buffer controller (FBUF)
     
    249250#define MNIC_SIZE       0x0000080000   // 512 Kbytes (for 8 channels)
    250251
     252#define CHBUF_BASE       0x00B6000000     
     253#define CHBUF_SIZE       0x0000004000  // For 16 Channels
     254
    251255// replicated segments : address is incremented by a cluster offset
    252256//     offset  = cluster(x,y) << (address_width-x_width-y_width);
     
    274278#define MNIC_TGTID      6
    275279#define BROM_TGTID      7
     280#define CHBUF_TGTID      8
    276281
    277282/////////////////////////////////
     
    499504            maptabd.add(Segment("seg_mnic", MNIC_BASE, MNIC_SIZE,
    500505                        IntTab(cluster(x,y),MNIC_TGTID), false));
     506            maptabd.add(Segment("seg_chbuf", CHBUF_BASE, CHBUF_SIZE,
     507                        IntTab(cluster(x,y),CHBUF_TGTID), false));
    501508            maptabd.add(Segment("seg_brom", BROM_BASE, BROM_SIZE,
    502509                        IntTab(cluster(x,y),BROM_TGTID), true));
     
    630637                BROM_TGTID,
    631638                MNIC_TGTID,
     639                CHBUF_TGTID,
    632640                BDEV_TGTID,
    633641                MEMC_WAYS,
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd

    r468 r475  
    6767              cell_size       = parameter.Reference('vci_data_width_int')),
    6868
     69        Uses('caba:vci_chbuf_dma',
     70              cell_size       = parameter.Reference('vci_data_width_int')),
     71
    6972                Uses('caba:vci_block_device_tsar',
    7073              cell_size       = parameter.Reference('vci_data_width_int')),
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/include/tsar_xbar_cluster.h

    r468 r475  
    2929#include "vci_multi_tty.h"
    3030#include "vci_multi_nic.h"
     31#include "vci_chbuf_dma.h"
    3132#include "vci_block_device_tsar.h"
    3233#include "vci_framebuffer.h"
     
    6263    sc_signal<bool>         signal_irq_mnic_rx[8];  // unused
    6364    sc_signal<bool>         signal_irq_mnic_tx[8];  // unused
     65    sc_signal<bool>         signal_irq_chbuf[8];  // unused
    6466    sc_signal<bool>         signal_irq_bdev;
    6567
     
    8082    VciSignals<vci_param_int>       signal_vci_ini_mdma;
    8183    VciSignals<vci_param_int>       signal_vci_ini_bdev;
     84    VciSignals<vci_param_int>       signal_vci_ini_chbuf;
    8285
    8386    VciSignals<vci_param_int>       signal_vci_tgt_memc;
     
    8992    VciSignals<vci_param_int>       signal_vci_tgt_fbuf;
    9093    VciSignals<vci_param_int>       signal_vci_tgt_mnic;
     94    VciSignals<vci_param_int>       signal_vci_tgt_chbuf;
    9195
    9296    // Direct DSPIN signals to local crossbars
     
    97101    DspinSignals<dspin_cmd_width>     signal_dspin_cmd_bdev_i;
    98102    DspinSignals<dspin_rsp_width>     signal_dspin_rsp_bdev_i;
     103    DspinSignals<dspin_cmd_width>     signal_dspin_cmd_chbuf_i;
     104    DspinSignals<dspin_rsp_width>     signal_dspin_rsp_chbuf_i;
    99105
    100106    DspinSignals<dspin_cmd_width>     signal_dspin_cmd_memc_t;
     
    114120    DspinSignals<dspin_cmd_width>     signal_dspin_cmd_mnic_t;
    115121    DspinSignals<dspin_rsp_width>     signal_dspin_rsp_mnic_t;
     122    DspinSignals<dspin_cmd_width>     signal_dspin_cmd_chbuf_t;
     123    DspinSignals<dspin_rsp_width>     signal_dspin_rsp_chbuf_t;
    116124
    117125    // Coherence DSPIN signals to local crossbar
     
    187195                          dspin_cmd_width,
    188196                          dspin_rsp_width>*       wt_mnic;
     197
     198    VciChbufDma<vci_param_int>*                   chbuf;
     199
     200    VciDspinTargetWrapper<vci_param_int,
     201                          dspin_cmd_width,
     202                          dspin_rsp_width>*       wt_chbuf;
     203
     204    VciDspinInitiatorWrapper<vci_param_int,
     205                          dspin_cmd_width,
     206                          dspin_rsp_width>*       wi_chbuf;
    189207
    190208    VciBlockDeviceTsar<vci_param_int>*            bdev;
     
    226244                     size_t                             tgtid_brom,
    227245                     size_t                             tgtid_mnic,
     246                     size_t                             tgtid_chbuf,
    228247                     size_t                             tgtid_bdev,
    229248                     size_t                             memc_ways,
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp

    r468 r475  
    5757         size_t                             tgtid_brom,
    5858         size_t                             tgtid_mnic,
     59         size_t                             tgtid_chbuf,
    5960         size_t                             tgtid_bdev,
    6061         size_t                             memc_ways,
     
    214215    if ( io )
    215216    {
    216         nb_direct_initiators         = nb_procs + 2;
    217         nb_direct_targets            = 8;
     217        nb_direct_initiators         = nb_procs + 3;
     218        nb_direct_targets            = 9;
    218219    }
    219220
     
    350351
    351352        /////////////////////////////////////////////
     353        int mac = 0xBEEF0000;
    352354        mnic = new VciMultiNic<vci_param_int>(
    353355                     "mnic",
     
    357359                     nic_rx_name,
    358360                     nic_tx_name,
    359                      0,             // mac_4 address
    360                      0 );           // mac_2 address
     361                     mac,             // mac_4 address
     362                     0xBABE );           // mac_2 address
    361363
    362364        wt_mnic = new VciDspinTargetWrapper<vci_param_int,
     
    364366                                            dspin_rsp_width>(
    365367                     "wt_mnic",
     368                     x_width + y_width + l_width);
     369
     370        /////////////////////////////////////////////
     371        chbuf = new VciChbufDma<vci_param_int>(
     372                     "chbuf_dma",
     373                     mtd,
     374                     IntTab(cluster_id, nb_procs + 2),
     375                     IntTab(cluster_id, tgtid_chbuf),
     376                     64,
     377                     2 * nic_channels ); // Two chbuf dma channel by nic channel
     378
     379        wt_chbuf = new VciDspinTargetWrapper<vci_param_int,
     380                                            dspin_cmd_width,
     381                                            dspin_rsp_width>(
     382                     "wt_chbuf",
     383                     x_width + y_width + l_width);
     384
     385        wi_chbuf = new VciDspinInitiatorWrapper<vci_param_int,
     386                                            dspin_cmd_width,
     387                                            dspin_rsp_width>(
     388                     "wi_chbuf",
    366389                     x_width + y_width + l_width);
    367390
     
    449472        xbar_cmd_d->p_local_out[tgtid_fbuf]      (signal_dspin_cmd_fbuf_t);
    450473        xbar_cmd_d->p_local_out[tgtid_mnic]      (signal_dspin_cmd_mnic_t);
     474        xbar_cmd_d->p_local_out[tgtid_chbuf]      (signal_dspin_cmd_chbuf_t);
    451475
    452476        xbar_cmd_d->p_local_in[nb_procs+1]       (signal_dspin_cmd_bdev_i);
     477        xbar_cmd_d->p_local_in[nb_procs+2]       (signal_dspin_cmd_chbuf_i);
    453478    }
    454479
     
    477502        xbar_rsp_d->p_local_in[tgtid_fbuf]       (signal_dspin_rsp_fbuf_t);
    478503        xbar_rsp_d->p_local_in[tgtid_mnic]       (signal_dspin_rsp_mnic_t);
     504        xbar_rsp_d->p_local_in[tgtid_chbuf]       (signal_dspin_rsp_chbuf_t);
    479505
    480506        xbar_rsp_d->p_local_out[nb_procs+1]      (signal_dspin_rsp_bdev_i);
     507        xbar_rsp_d->p_local_out[nb_procs+2]      (signal_dspin_rsp_chbuf_i);
    481508    }
    482509
     
    686713        std::cout << "  - MNIC connected" << std::endl;
    687714
     715        // CHBUF
     716        chbuf->p_clk                    (this->p_clk);
     717        chbuf->p_resetn                 (this->p_resetn);
     718        chbuf->p_vci_target             (signal_vci_tgt_chbuf);
     719        chbuf->p_vci_initiator          (signal_vci_ini_chbuf);
     720        for ( size_t i=0 ; i < nic_channels * 2 ; i++ )
     721        {
     722            chbuf->p_irq[i]          (signal_irq_chbuf[i]);
     723        }
     724
     725        // wrapper tgt CHBUF
     726        wt_chbuf->p_clk                 (this->p_clk);
     727        wt_chbuf->p_resetn              (this->p_resetn);
     728        wt_chbuf->p_dspin_cmd           (signal_dspin_cmd_chbuf_t);
     729        wt_chbuf->p_dspin_rsp           (signal_dspin_rsp_chbuf_t);
     730        wt_chbuf->p_vci                 (signal_vci_tgt_chbuf);
     731
     732        // wrapper ini CHBUF
     733        wi_chbuf->p_clk                 (this->p_clk);
     734        wi_chbuf->p_resetn              (this->p_resetn);
     735        wi_chbuf->p_dspin_cmd           (signal_dspin_cmd_chbuf_i);
     736        wi_chbuf->p_dspin_rsp           (signal_dspin_rsp_chbuf_i);
     737        wi_chbuf->p_vci                 (signal_vci_ini_chbuf);
     738
     739        std::cout << "  - CHBUF connected" << std::endl;
     740
    688741        // BROM
    689742        brom->p_clk                    (this->p_clk);
Note: See TracChangeset for help on using the changeset viewer.