Changeset 1050 for trunk/platforms


Ignore:
Timestamp:
Apr 6, 2017, 5:01:31 PM (8 years ago)
Author:
alain
Message:

Introduce the vci_master_nic component in the TSAR IOB architecture.

Location:
trunk/platforms/tsar_generic_iob
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_iob/arch.py

    r1033 r1050  
    6565    ### define architecture constants
    6666
    67     nb_nics         = 1
    68     nb_cmas         = 4
     67    if   ( x_size * y_size >= 4 ) : nb_nics = 4
     68    elif ( x_size * y_size == 2 ) : nb_nics = 2
     69    else                          : nb_nics = 1
     70
     71    nb_cmas         = 1
    6972    x_io            = 0
    7073    y_io            = 0
     
    124127
    125128    nic_base  = 0x00B5000000
    126     nic_size  = 0x80000                    # 512 kbytes
     129    nic_size  = 0x1000                     # 4 Kkbytes
    127130
    128131    cma_base  = 0x00B6000000
     
    171174
    172175    kernel_heap_vbase    = 0xD0000000
    173     kernel_heap_size     = 0x00400000           # 4 Mbytes per cluster
     176    kernel_heap_size     = 0x00200000           # 2 Mbytes per cluster
    174177
    175178    kernel_sched_vbase   = 0xA0000000   
     
    267270                                         ptype = 'PIC', channels = 32 )
    268271
     272                if ( ioc_type == 'BDV' ): isr_ioc = 'ISR_BDV'
     273                if ( ioc_type == 'HBA' ): isr_ioc = 'ISR_HBA'
     274                if ( ioc_type == 'SDC' ): isr_ioc = 'ISR_SDC'
     275                if ( ioc_type == 'SPI' ): isr_ioc = 'ISR_SPI'
     276
    269277                mapping.addIrq( pic, index = 0, src = nic,
    270278                                isrtype = 'ISR_NIC_RX', channel = 0 )
    271279                mapping.addIrq( pic, index = 1, src = nic,
    272280                                isrtype = 'ISR_NIC_RX', channel = 1 )
    273 
    274281                mapping.addIrq( pic, index = 2, src = nic,
     282                                isrtype = 'ISR_NIC_RX', channel = 2 )
     283                mapping.addIrq( pic, index = 3, src = nic,
     284                                isrtype = 'ISR_NIC_RX', channel = 3 )
     285
     286                mapping.addIrq( pic, index = 4, src = nic,
    275287                                isrtype = 'ISR_NIC_TX', channel = 0 )
    276                 mapping.addIrq( pic, index = 3, src = nic,
     288                mapping.addIrq( pic, index = 5, src = nic,
    277289                                isrtype = 'ISR_NIC_TX', channel = 1 )
    278 
    279                 mapping.addIrq( pic, index = 4, src = cma,
     290                mapping.addIrq( pic, index = 6, src = nic,
     291                                isrtype = 'ISR_NIC_TX', channel = 2 )
     292                mapping.addIrq( pic, index = 7, src = nic,
     293                                isrtype = 'ISR_NIC_TX', channel = 3 )
     294
     295                mapping.addIrq( pic, index = 8 , src = cma,
    280296                                isrtype = 'ISR_CMA', channel = 0 )
    281                 mapping.addIrq( pic, index = 5, src = cma,
     297                mapping.addIrq( pic, index = 9 , src = cma,
    282298                                isrtype = 'ISR_CMA', channel = 1 )
    283                 mapping.addIrq( pic, index = 6, src = cma,
     299                mapping.addIrq( pic, index = 10, src = cma,
    284300                                isrtype = 'ISR_CMA', channel = 2 )
    285                 mapping.addIrq( pic, index = 7, src = cma,
     301                mapping.addIrq( pic, index = 11, src = cma,
    286302                                isrtype = 'ISR_CMA', channel = 3 )
    287303
    288                 if ( ioc_type == 'BDV' ): isr_ioc = 'ISR_BDV'
    289                 if ( ioc_type == 'HBA' ): isr_ioc = 'ISR_HBA'
    290                 if ( ioc_type == 'SDC' ): isr_ioc = 'ISR_SDC'
    291                 if ( ioc_type == 'SPI' ): isr_ioc = 'ISR_SPI'
    292 
    293                 mapping.addIrq( pic, index = 8, src = ioc,
     304                mapping.addIrq( pic, index = 12, src = ioc,
    294305                                isrtype = isr_ioc, channel = 0 )
     306
    295307                mapping.addIrq( pic, index = 16, src = tty,
    296308                                isrtype = 'ISR_TTY_RX', channel = 0 )
  • trunk/platforms/tsar_generic_iob/arch_info.py

    r1046 r1050  
    2929#  - nb_ttys        : number of TTY channels (can be from 1 to 8)
    3030#  - nb_nics        : number of NIC channels (from 1 to 2)
    31 #  - nb_cmas        : number of CMA channels (from 1 to 4)
    3231#  - fbf_width      : frame_buffer width = frame_buffer heigth
    3332#  - ioc_type       : can be 'IOC_BDV','IOC_HBA','IOC_SDC', 'IOC_SPI','NONE'
     
    3534#  - io_cxy         : IO cluster identifier
    3635#  - boot_cxy       : boot cluster identifier
     36#  - cache_line     : number of bytes in cache line (in 16,32,64)
    3737#
    3838#  The following parameters are imposed by the "tsar_generic_iob" architecture:
     
    5151          nb_ttys       = 1,
    5252          nb_nics       = 1,
    53           nb_cmas       = 2,
    5453          fbf_width     = 128,
    5554          ioc_type      = 'IOC_BDV',
    5655          mwr_type      = 'MWR_CPY',
    5756          io_cxy        = 0,
    58           boot_cxy      = 0 ):
     57          boot_cxy      = 0,
     58          cache_line    = 64):
    5959
    6060    ### architecture constants
     
    8181    assert( (nb_nics >= 1) and (nb_nics <= 2) )
    8282
    83     assert( (nb_cmas >= 1) and (nb_cmas <= 4) )
    84 
    8583    assert( ioc_type in ['IOC_BDV','IOC_HBA','IOC_SDC','IOC_SPI','IOC_RDK'] )
    8684
     
    9088
    9189    assert( ((boot_cxy >> y_width) < x_size) and ((boot_cxy & ((1<<y_width)-1)) < y_size) )
     90
     91    assert( (cache_line == 16) or (cache_line == 32) or (cache_line == 64)  )
    9292 
    9393    ### define platform name
     
    9898
    9999    ram_base = 0x0000000000
    100     ram_size = 0x4000000                   # 64 Mbytes
     100    ram_size = 0x800000                    # 8 Mbytes
    101101
    102102    xcu_base = 0x00B0000000
     
    119119
    120120    nic_base  = 0x00B5000000
    121     nic_size  = 0x80000                    # 512 kbytes
    122 
    123     cma_base  = 0x00B6000000
    124     cma_size  = 0x1000 * nb_cmas           # 4 kbytes * nb_cmas
     121    nic_size  = 0x4000                     # 16 kbytes
    125122
    126123    fbf_base  = 0x00B7000000
     
    151148                      io_cxy         = io_cxy,         
    152149                      boot_cxy       = boot_cxy,
     150                      cache_line     = cache_line,
    153151                      reset_address  = rom_base,
    154152                      p_width        = p_width )
     
    163161            offset = cxy << (paddr_width - x_width - y_width)
    164162
    165             # build devices
    166             ram = archi.addDevice( ptype    = 'RAM' ,
     163            # define internal devices
     164            ram = archi.addDevice( ptype    = 'RAM_SCL' ,
    167165                                   base     = ram_base + offset,
    168166                                   size     = ram_size )
    169167
    170             xcu = archi.addDevice( ptype    = 'XCU',
     168            xcu = archi.addDevice( ptype    = 'ICU_XCU',
    171169                                   base     = xcu_base + offset,
    172170                                   size     = xcu_size,
    173                                    channels = nb_cores * irqs_per_core,
     171                                   channels = 1,
    174172                                   arg0     = 16,
    175173                                   arg1     = 16,
    176                                    arg2     = 16 )
    177 
    178             mmc = archi.addDevice( ptype    = 'MMC',
     174                                   arg2     = 16,
     175                                   arg3     = 16 )
     176
     177            mmc = archi.addDevice( ptype    = 'MMC_TSR',
    179178                                   base     = mmc_base + offset,
    180179                                   size     = mmc_size )
    181             archi.addIrq( dstdev = xcu, port = 0, srcdev = mmc, isrtype = 'ISR_MMC' )
     180
     181            archi.addIrq( dstdev = xcu, port = 0, srcdev = mmc )
    182182
    183183            if ( mwr_type == 'MWR_GCD' ):
     
    189189                                       arg2  = 1,
    190190                                       arg3  = 0 )
    191                 archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr, isrtype = 'ISR_MWR' )
     191                archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr )
    192192
    193193            if ( mwr_type == 'MWR_DCT' ):
     
    199199                                       arg2  = 1,
    200200                                       arg3  = 0 )
    201                 archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr, isrtype = 'ISR_MWR' )
     201                archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr )
    202202
    203203            if ( mwr_type == 'MWR_CPY' ):
     
    209209                                       arg2  = 1,
    210210                                       arg3  = 0 )
    211                 archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr, isrtype = 'ISR_MWR' )
    212 
     211                archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr )
     212
     213            # define external devices
    213214            if( cxy == io_cxy ):
    214215
    215                 iob = archi.addDevice( ptype    = 'IOB',
     216                iob = archi.addDevice( ptype    = 'IOB_TSR',
    216217                                       base     = iob_base + offset,
    217218                                       size     = iob_size )
     
    221222                                       size     = ioc_size )
    222223
    223                 tty = archi.addDevice( ptype    = 'TTY',
     224                tty = archi.addDevice( ptype    = 'TXT_TTY',
    224225                                       base     = tty_base + offset,
    225226                                       size     = tty_size,
    226227                                       channels = nb_ttys )
    227228
    228                 nic = archi.addDevice( ptype    = 'NIC',
     229                nic = archi.addDevice( ptype    = 'NIC_CBF',
    229230                                       base     = nic_base + offset,
    230231                                       size     = nic_size,
    231232                                       channels = nb_nics )
    232233
    233                 cma = archi.addDevice( ptype    = 'CMA',
    234                                        base     = cma_base + offset,
    235                                        size     = cma_size,
    236                                        channels = nb_cmas )
    237 
    238                 fbf = archi.addDevice( ptype    = 'FBF',
     234                fbf = archi.addDevice( ptype    = 'FBF_SCL',
    239235                                       base     = fbf_base + offset,
    240236                                       size     = fbf_size,
     
    242238                                       arg1     = fbf_width )
    243239
    244                 rom = archi.addDevice( ptype    = 'ROM',
     240                rom = archi.addDevice( ptype    = 'ROM_SCL',
    245241                                       base     = rom_base + offset,
    246242                                       size     = rom_size )
    247243
    248                 pic = archi.addDevice( ptype    ='PIC',
     244                pic = archi.addDevice( ptype    ='PIC_TSR',
    249245                                       base     = pic_base + offset,
    250246                                       size     = pic_size,
    251247                                       arg0     = 32 )
    252248
    253                 if   ( ioc_type == 'IOC_BDV' ): isr_ioc = 'ISR_BDV'
    254                 elif ( ioc_type == 'IOC_HBA' ): isr_ioc = 'ISR_HBA'
    255                 elif ( ioc_type == 'IOC_SDC' ): isr_ioc = 'ISR_SDC'
    256                 elif ( ioc_type == 'IOC_SPI' ): isr_ioc = 'ISR_SPI'
    257                 else                          : isr_ioc = 'ISR_DEFAULT'
    258 
    259                 archi.addIrq( dstdev = pic, port = 0 , srcdev = nic, isrtype = 'ISR_NIC_RX', channel = 0 )
    260                 archi.addIrq( dstdev = pic, port = 1 , srcdev = nic, isrtype = 'ISR_NIC_RX', channel = 1 )
    261                 archi.addIrq( dstdev = pic, port = 2 , srcdev = nic, isrtype = 'ISR_NIC_TX', channel = 0 )
    262                 archi.addIrq( dstdev = pic, port = 3 , srcdev = nic, isrtype = 'ISR_NIC_TX', channel = 1 )
    263                 archi.addIrq( dstdev = pic, port = 4 , srcdev = cma, isrtype = 'ISR_CMA'   , channel = 0 )
    264                 archi.addIrq( dstdev = pic, port = 5 , srcdev = cma, isrtype = 'ISR_CMA'   , channel = 1 )
    265                 archi.addIrq( dstdev = pic, port = 6 , srcdev = cma, isrtype = 'ISR_CMA'   , channel = 2 )
    266                 archi.addIrq( dstdev = pic, port = 7 , srcdev = cma, isrtype = 'ISR_CMA'   , channel = 3 )
    267                 archi.addIrq( dstdev = pic, port = 8 , srcdev = ioc, isrtype = isr_ioc     , channel = 0 )
    268                 archi.addIrq( dstdev = pic, port = 16, srcdev = tty, isrtype = 'ISR_TTY_RX', channel = 0 )
    269                 archi.addIrq( dstdev = pic, port = 17, srcdev = tty, isrtype = 'ISR_TTY_RX', channel = 1 )
    270                 archi.addIrq( dstdev = pic, port = 18, srcdev = tty, isrtype = 'ISR_TTY_RX', channel = 2 )
    271                 archi.addIrq( dstdev = pic, port = 19, srcdev = tty, isrtype = 'ISR_TTY_RX', channel = 3 )
    272                 archi.addIrq( dstdev = pic, port = 20, srcdev = tty, isrtype = 'ISR_TTY_RX', channel = 4 )
    273                 archi.addIrq( dstdev = pic, port = 21, srcdev = tty, isrtype = 'ISR_TTY_RX', channel = 5 )
    274                 archi.addIrq( dstdev = pic, port = 22, srcdev = tty, isrtype = 'ISR_TTY_RX', channel = 6 )
    275                 archi.addIrq( dstdev = pic, port = 23, srcdev = tty, isrtype = 'ISR_TTY_RX', channel = 7 )
    276 
    277             # build cores
     249                archi.addIrq( dstdev = pic, port = 0 , srcdev = nic, channel = 0 , is_rx = True )
     250                archi.addIrq( dstdev = pic, port = 1 , srcdev = nic, channel = 1 , is_rx = True )
     251                archi.addIrq( dstdev = pic, port = 2 , srcdev = nic, channel = 2 , is_rx = True )
     252                archi.addIrq( dstdev = pic, port = 3 , srcdev = nic, channel = 3 , is_rx = True )
     253
     254                archi.addIrq( dstdev = pic, port = 4 , srcdev = nic, channel = 0 , is_rx = False )
     255                archi.addIrq( dstdev = pic, port = 5 , srcdev = nic, channel = 1 , is_rx = False )
     256                archi.addIrq( dstdev = pic, port = 6 , srcdev = nic, channel = 2 , is_rx = False )
     257                archi.addIrq( dstdev = pic, port = 7 , srcdev = nic, channel = 3 , is_rx = False )
     258
     259                archi.addIrq( dstdev = pic, port = 12, srcdev = ioc )
     260
     261                archi.addIrq( dstdev = pic, port = 16, srcdev = tty, channel = 0 , is_rx = True )
     262                archi.addIrq( dstdev = pic, port = 17, srcdev = tty, channel = 1 , is_rx = True )
     263                archi.addIrq( dstdev = pic, port = 18, srcdev = tty, channel = 2 , is_rx = True )
     264                archi.addIrq( dstdev = pic, port = 19, srcdev = tty, channel = 3 , is_rx = True )
     265                archi.addIrq( dstdev = pic, port = 20, srcdev = tty, channel = 4 , is_rx = True )
     266                archi.addIrq( dstdev = pic, port = 21, srcdev = tty, channel = 5 , is_rx = True )
     267                archi.addIrq( dstdev = pic, port = 22, srcdev = tty, channel = 6 , is_rx = True )
     268                archi.addIrq( dstdev = pic, port = 23, srcdev = tty, channel = 7 , is_rx = True )
     269
     270            # define cores
    278271            for p in xrange ( nb_cores ):
    279                 core = archi.addCore( (x<<(y_width+p_width)) + (y<<p_width) + p,  # hardware identifier
    280                                       (x<<y_width) + y,                           # cluster identifier
     272                core = archi.addCore( (x<<(y_width+p_width)) + (y<<p_width) + p,  # hardware id
     273                                      (x<<y_width) + y,                           # cluster
    281274                                       p )                                        # local index
    282275
  • trunk/platforms/tsar_generic_iob/top.cpp

    r1046 r1050  
    1212// - FBUF : Frame Buffer
    1313// - MTTY : multi TTY (one channel)
    14 // - MNIC : Network controller (up to 16 channels)
    15 // - CDMA : Chained Buffer DMA controller (up to 4 channels)
     14// - MNIC : Network controller (up to 4 channels)
    1615// - DISK : Block device controler (BDV / HBA / SDC)
    1716// - IOPI : HWI to SWI translator.
     
    4241// external IOPIC component, that must be configured by the OS to route
    4342// these WTI IRQS to one or several internal XICU components.
    44 // - IOPIC HWI[1:0]     connected to IRQ_NIC_RX[1:0]
    45 // - IOPIC HWI[3:2]     connected to IRQ_NIC_TX[1:0]
    46 // - IOPIC HWI[7:4]     connected to IRQ_CMA_TX[3:0]]
    47 // - IOPIC HWI[8]       connected to IRQ_DISK
     43// - IOPIC HWI[3:0]     connected to IRQ_NIC_RX[3:0]
     44// - IOPIC HWI[7:4]     connected to IRQ_NIC_TX[3:0]
     45// - IOPIC HWI[12]      connected to IRQ_IOC
    4846// - IOPIC HWI[31:16]   connected to IRQ_TTY_RX[15:0]
    4947//
     
    6058//
    6159// All clusters are identical, but cluster(0,0) and cluster(XMAX-1,YMAX-1)
    62 // contain an extra IO bridge component. These IOB0 & IOB1 components are
     60// contain an extra IO bridge component and two DSPIN local-xbar to multiplex
     61// the MEMC and IOB access to RAM network. These IOB0 & IOB1 components are
    6362// connected to the three networks (INT, RAM, IOX).
    6463//
     
    8685// - NB_PROCS_MAX     : number of processors per cluster (up to 8)
    8786// - NB_DMA_CHANNELS  : number of DMA channels per cluster    (>= NB_PROCS_MAX)
    88 // - NB_TTY_CHANNELS  : number of TTY channels in I/O network (up to 16)
    89 // - NB_NIC_CHANNELS  : number of NIC channels in I/O network (up to 2)
    90 // - NB_CMA_CHANNELS  : number of CMA channels in I/O network (up to 4)
     87// - NB_TXT_CHANNELS  : number of TTY channels in I/O network (up to 16)
     88// - NB_NIC_CHANNELS  : number of NIC channels in I/O network (up to 4)
    9189// - FBUF_X_SIZE      : width of frame buffer (pixels)
    9290// - FBUF_Y_SIZE      : heigth of frame buffer (lines)
    93 // - XCU_NB_HWI       : number of XCU HWIs (>= NB_PROCS_MAX + 1)
    94 // - XCU_NB_PTI       : number of XCU PTIs (>= NB_PROCS_MAX)
    95 // - XCU_NB_WTI       : number of XCU WTIs (>= 4*NB_PROCS_MAX)
    96 // - XCU_NB_OUT       : number of XCU output IRQs (>= 4*NB_PROCS_MAX)
     91// - ICU_NB_HWI       : number of ICU HWIs (>= NB_PROCS_MAX + 1)
     92// - ICU_NB_PTI       : number of ICU PTIs (>= NB_PROCS_MAX)
     93// - ICU_NB_WTI       : number of ICU WTIs (>= 4*NB_PROCS_MAX)
     94// - ICU_NB_OUT       : number of ICU output IRQs (>= 4*NB_PROCS_MAX)
    9795// - USE_IOC_XYZ      : IOC type (XYZ in HBA / BDV / SDC)
    9896//
     
    119117//      |X_ID|Y_ID| L_ID |
    120118//      |  4 |  4 |  6   |
     119//
     120// The NIC controler has one VCI target port, and one VCI initiator port,
     121// but it uses two different LOCAL_SRCID values to distinguish TX and TX
     122// transactions, because there is not enough bits in 4 bits TRDID field.
    121123/////////////////////////////////////////////////////////////////////////
    122124
     
    132134#include "mapping_table.h"
    133135
    134 
    135 
    136136#include "tsar_iob_cluster.h"
    137137#include "vci_chbuf_dma.h"
    138138#include "vci_multi_tty.h"
    139 #include "vci_multi_nic.h"
     139#include "vci_master_nic.h"
    140140#include "vci_simple_rom.h"
    141141#include "vci_multi_ahci.h"
     
    229229#define MEMC_SETS             256
    230230
     231#define MNIC_MAC_4            0x33445566        // 32 LSB bits
     232#define MNIC_MAC_2            0X1122            // 16 MSB bits
     233
    231234#define L1_IWAYS              4
    232235#define L1_ISETS              64
     
    264267// All initiators are in the same indexing space (14 bits).
    265268// The SRCID is structured in two fields:
    266 // - The 8 MSB bits define the cluster index (left aligned)
     269// - The 8 MSB bits define the cluster index.
    267270// - The 6  LSB bits define the local index.
    268271// Two different initiators cannot have the same SRCID, but a given
     
    285288#define IOBX_LOCAL_SRCID             0x9
    286289#define MEMC_LOCAL_SRCID             0xA
    287 #define CDMA_LOCAL_SRCID             0xB
    288290#define DISK_LOCAL_SRCID             0xC
    289291#define IOPI_LOCAL_SRCID             0xD
     292#define MNRX_LOCAL_SRCID             0xE    // NIC_RX transactions
     293#define MNTX_LOCAL_SRCID             0xF    // NIC_TX transactions
    290294
    291295///////////////////////////////////////////////////////////////////////
     
    318322#define IOX_DISK_TGT_ID              1
    319323#define IOX_MNIC_TGT_ID              2
    320 #define IOX_CDMA_TGT_ID              3
    321 #define IOX_BROM_TGT_ID              4
    322 #define IOX_MTTY_TGT_ID              5
    323 #define IOX_IOPI_TGT_ID              6
    324 #define IOX_IOB0_TGT_ID              7
    325 #define IOX_IOB1_TGT_ID              8
     324#define IOX_BROM_TGT_ID              3
     325#define IOX_MTTY_TGT_ID              4
     326#define IOX_IOPI_TGT_ID              5
     327#define IOX_IOB0_TGT_ID              6
     328#define IOX_IOB1_TGT_ID              7
    326329
    327330#define IOX_DISK_INI_ID              0
    328 #define IOX_CDMA_INI_ID              1
    329 #define IOX_IOPI_INI_ID              2
     331#define IOX_IOPI_INI_ID              1
     332#define IOX_MNIC_INI_ID              2
    330333#define IOX_IOB0_INI_ID              3
    331334#define IOX_IOB1_INI_ID              4
     
    454457   "Error in tsar_generic_iob : NB_PROCS_MAX parameter cannot be larger than 8" );
    455458
    456    assert( (XCU_NB_HWI > NB_PROCS_MAX) and
    457    "Error in tsar_generic_iob : XCU_NB_HWI must be larger than NB_PROCS_MAX" );
    458 
    459    assert( (XCU_NB_PTI >= NB_PROCS_MAX) and
    460    "Error in tsar_generic_iob : XCU_NB_PTI cannot be smaller than NB_PROCS_MAX" );
    461 
    462    assert( (XCU_NB_WTI >= 4*NB_PROCS_MAX) and
    463    "Error in tsar_generic_iob : XCU_NB_WTI cannot be smaller than 4*NB_PROCS_MAX" );
    464 
    465    assert( (XCU_NB_OUT >= 4*NB_PROCS_MAX) and
    466    "Error in tsar_generic_iob : XCU_NB_OUT cannot be smaller than 4*NB_PROCS_MAX" );
     459   assert( (ICU_NB_HWI > NB_PROCS_MAX) and
     460   "Error in tsar_generic_iob : ICU_NB_HWI cannot be smaller than NB_PROCS_MAX" );
     461
     462   assert( (ICU_NB_PTI >= NB_PROCS_MAX) and
     463   "Error in tsar_generic_iob : ICU_NB_PTI cannot be smaller than NB_PROCS_MAX" );
     464
     465   assert( (ICU_NB_WTI >= 4*NB_PROCS_MAX) and
     466   "Error in tsar_generic_iob : ICU_NB_WTI cannot be smaller than 4*NB_PROCS_MAX" );
     467
     468   assert( (ICU_NB_OUT >= 4*NB_PROCS_MAX) and
     469   "Error in tsar_generic_iob : ICU_NB_OUT cannot be smaller than 4*NB_PROCS_MAX" );
    467470   
    468    assert( (NB_TTY_CHANNELS >= 1) and (NB_TTY_CHANNELS <= 16) and
    469    "Error in tsar_generic_iob : NB_TTY_CHANNELS parameter cannot be larger than 16" );
    470 
    471    assert( (NB_NIC_CHANNELS <= 2) and
    472    "Error in tsar_generic_iob :  NB_NIC_CHANNELS parameter cannot be larger than 2" );
    473 
    474    assert( (NB_CMA_CHANNELS <= 4) and
    475    "Error in tsar_generic_iob :  NB_CMA_CHANNELS parameter cannot be larger than 4" );
     471   assert( (NB_TXT_CHANNELS >= 1) and (NB_TXT_CHANNELS <= 16) and
     472   "Error in tsar_generic_iob : NB_TXT_CHANNELS parameter cannot be larger than 16" );
     473
     474   assert( (NB_NIC_CHANNELS <= 4) and
     475   "Error in tsar_generic_iob :  NB_NIC_CHANNELS parameter cannot be larger than 4" );
    476476
    477477   assert( (X_WIDTH == 4) and (Y_WIDTH == 4) and
     
    488488             << " - YMAX            = " << YMAX << std::endl
    489489             << " - NB_PROCS_MAX    = " << NB_PROCS_MAX << std::endl
    490              << " - NB_TTY_CHANNELS = " << NB_TTY_CHANNELS <<  std::endl
     490             << " - NB_TXT_CHANNELS = " << NB_TXT_CHANNELS <<  std::endl
    491491             << " - NB_NIC_CHANNELS = " << NB_NIC_CHANNELS <<  std::endl
    492              << " - NB_CMA_CHANNELS = " << NB_CMA_CHANNELS <<  std::endl
    493492             << " - MEMC_WAYS       = " << MEMC_WAYS << std::endl
    494493             << " - MEMC_SETS       = " << MEMC_SETS << std::endl
     
    568567         std::ostringstream    sxicu;
    569568         sxicu << "int_seg_xicu_" << x << "_" << y;
    570          maptab_int.add(Segment(sxicu.str(), SEG_XCU_BASE+offset, SEG_XCU_SIZE,
     569         maptab_int.add(Segment(sxicu.str(), SEG_ICU_BASE+offset, SEG_ICU_SIZE,
    571570                     IntTab(cluster(x,y), INT_XICU_TGT_ID), not cacheable));
    572571
     
    587586            std::ostringstream    stty;
    588587            stty << "int_seg_mtty_" << x << "_" << y;
    589             maptab_int.add(Segment(stty.str(), SEG_TTY_BASE+offset, SEG_TTY_SIZE,
     588            maptab_int.add(Segment(stty.str(), SEG_TXT_BASE+offset, SEG_TXT_SIZE,
    590589                        IntTab(cluster(x,y), INT_IOBX_TGT_ID), not cacheable));
    591590
     
    609608            maptab_int.add(Segment(srom.str(), SEG_ROM_BASE+offset, SEG_ROM_SIZE,
    610609                        IntTab(cluster(x,y), INT_IOBX_TGT_ID), cacheable ));
    611 
    612             std::ostringstream    sdma;
    613             sdma << "int_seg_cdma_" << x << "_" << y;
    614             maptab_int.add(Segment(sdma.str(), SEG_CMA_BASE+offset, SEG_CMA_SIZE,
    615                         IntTab(cluster(x,y), INT_IOBX_TGT_ID), not cacheable));
    616610
    617611            std::ostringstream    spic;
     
    669663    // This define the mapping between the initiators SRCID
    670664    // and the port index on the RAM local interconnect.
    671     // External initiator have two alias SRCID (iob0 / iob1)
    672 
    673     maptab_ram.srcid_map( IntTab( cluster_iob0, CDMA_LOCAL_SRCID ),
    674                           IntTab( cluster_iob0, RAM_IOBX_INI_ID ) );
    675 
    676     maptab_ram.srcid_map( IntTab( cluster_iob1, CDMA_LOCAL_SRCID ),
    677                           IntTab( cluster_iob1, RAM_IOBX_INI_ID ) );
     665    // This routing table is used to route the response to the
     666    // relevant initiator: external peripherals transactions
     667    // use IOBX port, while MEMC transactions use MEMC port.
    678668
    679669    maptab_ram.srcid_map( IntTab( cluster_iob0, DISK_LOCAL_SRCID ),
     
    689679                          IntTab( cluster_iob1, RAM_IOBX_INI_ID ) );
    690680
     681    maptab_ram.srcid_map( IntTab( cluster_iob0, MNRX_LOCAL_SRCID ),
     682                          IntTab( cluster_iob0, RAM_IOBX_INI_ID ) );
     683
     684    maptab_ram.srcid_map( IntTab( cluster_iob1, MNRX_LOCAL_SRCID ),
     685                          IntTab( cluster_iob1, RAM_IOBX_INI_ID ) );
     686
     687    maptab_ram.srcid_map( IntTab( cluster_iob0, MNTX_LOCAL_SRCID ),
     688                          IntTab( cluster_iob0, RAM_IOBX_INI_ID ) );
     689
     690    maptab_ram.srcid_map( IntTab( cluster_iob1, MNTX_LOCAL_SRCID ),
     691                          IntTab( cluster_iob1, RAM_IOBX_INI_ID ) );
     692
    691693    maptab_ram.srcid_map( IntTab( cluster_iob0, MEMC_LOCAL_SRCID ),
    692694                          IntTab( cluster_iob0, RAM_MEMC_INI_ID ) );
     
    699701    ///////////////////////////////////////////////////////////////////////
    700702    // IOX network mapping table
    701     // - two levels address decoding for commands (9, 7) bits
     703    // - two levels address decoding for commands
    702704    // - two levels srcid decoding for responses
    703     // - 5 initiators (IOB0, IOB1, DISK, CDMA, IOPI)
    704     // - 9 targets (IOB0, IOB1, DISK, CDMA, MTTY, FBUF, BROM, MNIC, IOPI)
     705    // - 5 initiators (IOB0, IOB1, DISK, MNIC, IOPI)
     706    // - 8 targets (IOB0, IOB1, DISK, MTTY, FBUF, BROM, MNIC, IOPI)
    705707    //
    706708    // Address bit 32 is used to determine if a command must be routed to
     
    720722       << (vci_address_width - x_width - y_width);
    721723
    722     maptab_iox.add(Segment("iox_seg_mtty_0", SEG_TTY_BASE + iob0_base, SEG_TTY_SIZE,
     724    maptab_iox.add(Segment("iox_seg_mtty_0", SEG_TXT_BASE + iob0_base, SEG_TXT_SIZE,
    723725                   IntTab(0, IOX_MTTY_TGT_ID), false));
    724726    maptab_iox.add(Segment("iox_seg_fbuf_0", SEG_FBF_BASE + iob0_base, SEG_FBF_SIZE,
     
    728730    maptab_iox.add(Segment("iox_seg_mnic_0", SEG_NIC_BASE + iob0_base, SEG_NIC_SIZE,
    729731                   IntTab(0, IOX_MNIC_TGT_ID), false));
    730     maptab_iox.add(Segment("iox_seg_cdma_0", SEG_CMA_BASE + iob0_base, SEG_CMA_SIZE,
    731                    IntTab(0, IOX_CDMA_TGT_ID), false));
    732732    maptab_iox.add(Segment("iox_seg_brom_0", SEG_ROM_BASE + iob0_base, SEG_ROM_SIZE,
    733733                   IntTab(0, IOX_BROM_TGT_ID), false));
     
    740740          << (vci_address_width - x_width - y_width);
    741741
    742         maptab_iox.add(Segment("iox_seg_mtty_1", SEG_TTY_BASE + iob1_base, SEG_TTY_SIZE,
     742        maptab_iox.add(Segment("iox_seg_mtty_1", SEG_TXT_BASE + iob1_base, SEG_TXT_SIZE,
    743743                   IntTab(0, IOX_MTTY_TGT_ID), false));
    744744        maptab_iox.add(Segment("iox_seg_fbuf_1", SEG_FBF_BASE + iob1_base, SEG_FBF_SIZE,
     
    748748        maptab_iox.add(Segment("iox_seg_mnic_1", SEG_NIC_BASE + iob1_base, SEG_NIC_SIZE,
    749749                   IntTab(0, IOX_MNIC_TGT_ID), false));
    750         maptab_iox.add(Segment("iox_seg_cdma_1", SEG_CMA_BASE + iob1_base, SEG_CMA_SIZE,
    751                    IntTab(0, IOX_CDMA_TGT_ID), false));
    752750        maptab_iox.add(Segment("iox_seg_brom_1", SEG_ROM_BASE + iob1_base, SEG_ROM_SIZE,
    753751                   IntTab(0, IOX_BROM_TGT_ID), false));
     
    770768                << (vci_address_width-x_width-y_width);
    771769
    772             const uint64_t xicu_base = SEG_XCU_BASE + offset;
     770            const uint64_t xicu_base = SEG_ICU_BASE + offset;
    773771
    774772            if ( (y & 0x1) == 0 ) // use IOB0
     
    776774                std::ostringstream sxcu0;
    777775                sxcu0 << "iox_seg_xcu0_" << x << "_" << y;
    778                 maptab_iox.add(Segment(sxcu0.str(), xicu_base, SEG_XCU_SIZE,
     776                maptab_iox.add(Segment(sxcu0.str(), xicu_base, SEG_ICU_SIZE,
    779777                            IntTab(0, IOX_IOB0_TGT_ID), not cacheable, wti));
    780778
    781779                std::ostringstream siob0;
    782780                siob0 << "iox_seg_ram0_" << x << "_" << y;
    783                 maptab_iox.add(Segment(siob0.str(), offset, SEG_XCU_BASE,
     781                maptab_iox.add(Segment(siob0.str(), offset, SEG_ICU_BASE,
    784782                            IntTab(0, IOX_IOB0_TGT_ID), not cacheable, not wti));
    785783            }
     
    788786                std::ostringstream sxcu1;
    789787                sxcu1 << "iox_seg_xcu1_" << x << "_" << y;
    790                 maptab_iox.add(Segment(sxcu1.str(), xicu_base, SEG_XCU_SIZE,
     788                maptab_iox.add(Segment(sxcu1.str(), xicu_base, SEG_ICU_SIZE,
    791789                            IntTab(0, IOX_IOB1_TGT_ID), not cacheable, wti));
    792790
    793791                std::ostringstream siob1;
    794792                siob1 << "iox_seg_ram1_" << x << "_" << y;
    795                 maptab_iox.add(Segment(siob1.str(), offset, SEG_XCU_BASE,
     793                maptab_iox.add(Segment(siob1.str(), offset, SEG_ICU_BASE,
    796794                            IntTab(0, IOX_IOB1_TGT_ID), not cacheable, not wti));
    797795            }
     
    800798
    801799    // This define the mapping between the external initiators (SRCID)
    802     // and the port index on the IOX local interconnect.
    803 
    804     maptab_iox.srcid_map( IntTab( 0, CDMA_LOCAL_SRCID ) ,
    805                           IntTab( 0, IOX_CDMA_INI_ID  ) );
     800    // and the initiator port index on the IOX local interconnect.
     801
    806802    maptab_iox.srcid_map( IntTab( 0, DISK_LOCAL_SRCID ) ,
    807803                          IntTab( 0, IOX_DISK_INI_ID  ) );
     804
    808805    maptab_iox.srcid_map( IntTab( 0, IOPI_LOCAL_SRCID ) ,
    809806                          IntTab( 0, IOX_IOPI_INI_ID  ) );
     807
    810808    maptab_iox.srcid_map( IntTab( 0, IOX_IOB0_INI_ID  ) ,
    811809                          IntTab( 0, IOX_IOB0_INI_ID  ) );
     810
     811    maptab_iox.srcid_map( IntTab( 0, MNRX_LOCAL_SRCID ) ,
     812                          IntTab( 0, IOX_MNIC_INI_ID  ) );
     813
     814    maptab_iox.srcid_map( IntTab( 0, MNTX_LOCAL_SRCID ) ,
     815                          IntTab( 0, IOX_MNIC_INI_ID  ) );
    812816
    813817    if ( cluster_iob0 != cluster_iob1 )
     
    828832    sc_signal<bool>                   signal_irq_false;
    829833    sc_signal<bool>                   signal_irq_disk;
    830     sc_signal<bool>                   signal_irq_mtty_rx[NB_TTY_CHANNELS];
     834    sc_signal<bool>                   signal_irq_mtty_rx[NB_TXT_CHANNELS];
    831835    sc_signal<bool>                   signal_irq_mnic_rx[NB_NIC_CHANNELS];
    832836    sc_signal<bool>                   signal_irq_mnic_tx[NB_NIC_CHANNELS];
    833     sc_signal<bool>                   signal_irq_cdma[NB_CMA_CHANNELS];
    834837
    835838    // VCI signals for IOX network
     
    837840    VciSignals<vci_param_ext>         signal_vci_ini_iob1("signal_vci_ini_iob1");
    838841    VciSignals<vci_param_ext>         signal_vci_ini_disk("signal_vci_ini_disk");
    839     VciSignals<vci_param_ext>         signal_vci_ini_cdma("signal_vci_ini_cdma");
    840842    VciSignals<vci_param_ext>         signal_vci_ini_iopi("signal_vci_ini_iopi");
     843    VciSignals<vci_param_ext>         signal_vci_ini_mnic("signal_vci_ini_mnic");
    841844
    842845    VciSignals<vci_param_ext>         signal_vci_tgt_iob0("signal_vci_tgt_iob0");
     
    847850    VciSignals<vci_param_ext>         signal_vci_tgt_brom("signal_vci_tgt_brom");
    848851    VciSignals<vci_param_ext>         signal_vci_tgt_disk("signal_vci_tgt_disk");
    849     VciSignals<vci_param_ext>         signal_vci_tgt_cdma("signal_vci_tgt_cdma");
    850852    VciSignals<vci_param_ext>         signal_vci_tgt_iopi("signal_vci_tgt_iopi");
    851853
     
    10061008
    10071009    const size_t nb_iox_initiators = (cluster_iob0 != cluster_iob1) ? 5 : 4;
    1008     const size_t nb_iox_targets = (cluster_iob0 != cluster_iob1) ? 9 : 8;
     1010    const size_t nb_iox_targets = (cluster_iob0 != cluster_iob1) ? 8 : 7;
    10091011
    10101012    // IOX network
     
    10201022                                            maptab_iox,
    10211023                                            loader );
    1022     // Network Controller
    1023     VciMultiNic<vci_param_ext>*  mnic;
    1024     mnic = new VciMultiNic<vci_param_ext>( "mnic",
    1025                                            IntTab(0, IOX_MNIC_TGT_ID),
    1026                                            maptab_iox,
    1027                                            NB_NIC_CHANNELS,
    1028                                            0,                // mac_4 address
    1029                                            0,                // mac_2 address
    1030                                            1,                // NIC_MODE_SYNTHESIS
    1031                                            12);              // INTER_FRAME_GAP
     1024    // Ethernet Controller
     1025    VciMasterNic<vci_param_ext>*  mnic;
     1026    mnic = new VciMasterNic<vci_param_ext>( "mnic",
     1027                                            maptab_iox,
     1028                                            IntTab(0, MNRX_LOCAL_SRCID),
     1029                                            IntTab(0, MNTX_LOCAL_SRCID),
     1030                                            IntTab(0, IOX_MNIC_TGT_ID),
     1031                                            NB_NIC_CHANNELS,
     1032                                            64,               // burst length
     1033                                            MNIC_MAC_4,       // default MAC address (LSB)
     1034                                            MNIC_MAC_2,       // default MAC address (MSB)
     1035                                            1,                // NIC_MODE_SYNTHESIS
     1036                                            12);              // INTER_FRAME_GAP
    10321037
    10331038    // Frame Buffer
     
    10791084#endif
    10801085
    1081     // Chained Buffer DMA controller
    1082     VciChbufDma<vci_param_ext>*  cdma;
    1083     cdma = new VciChbufDma<vci_param_ext>( "cdma",
    1084                                            maptab_iox,
    1085                                            IntTab(0, CDMA_LOCAL_SRCID),
    1086                                            IntTab(0, IOX_CDMA_TGT_ID),
    1087                                            64,          // burst size (bytes)
    1088                                            NB_CMA_CHANNELS,
    1089                                            4 );         // number of pipelined bursts
    1090 
    10911086    // Multi-TTY controller
    10921087    std::vector<std::string> vect_names;
    1093     for( size_t tid = 0 ; tid < NB_TTY_CHANNELS ; tid++ )
     1088    for( size_t tid = 0 ; tid < NB_TXT_CHANNELS ; tid++ )
    10941089    {
    10951090        std::ostringstream term_name;
     
    12041199                L1_DSETS,
    12051200                XRAM_LATENCY,
    1206                 XCU_NB_HWI,
    1207                 XCU_NB_PTI,
    1208                 XCU_NB_WTI,
    1209                 XCU_NB_OUT,
     1201                ICU_NB_HWI,
     1202                ICU_NB_PTI,
     1203                ICU_NB_WTI,
     1204                ICU_NB_OUT,
    12101205
    12111206                coproc_type,
     
    12401235    iox_network->p_to_ini[IOX_IOB0_INI_ID]               (signal_vci_ini_iob0);
    12411236    iox_network->p_to_ini[IOX_DISK_INI_ID]               (signal_vci_ini_disk);
    1242     iox_network->p_to_ini[IOX_CDMA_INI_ID]               (signal_vci_ini_cdma);
    12431237    iox_network->p_to_ini[IOX_IOPI_INI_ID]               (signal_vci_ini_iopi);
     1238    iox_network->p_to_ini[IOX_MNIC_INI_ID]               (signal_vci_ini_mnic);
    12441239
    12451240    iox_network->p_to_tgt[IOX_IOB0_TGT_ID]               (signal_vci_tgt_iob0);
     
    12491244    iox_network->p_to_tgt[IOX_BROM_TGT_ID]               (signal_vci_tgt_brom);
    12501245    iox_network->p_to_tgt[IOX_DISK_TGT_ID]               (signal_vci_tgt_disk);
    1251     iox_network->p_to_tgt[IOX_CDMA_TGT_ID]               (signal_vci_tgt_cdma);
    12521246    iox_network->p_to_tgt[IOX_IOPI_TGT_ID]               (signal_vci_tgt_iopi);
    12531247
     
    13331327    mnic->p_clk                                          (signal_clk);
    13341328    mnic->p_resetn                                       (signal_resetn);
    1335     mnic->p_vci                                          (signal_vci_tgt_mnic);
     1329    mnic->p_vci_tgt                                      (signal_vci_tgt_mnic);
     1330    mnic->p_vci_ini                                      (signal_vci_ini_mnic);
    13361331    for ( size_t i=0 ; i<NB_NIC_CHANNELS ; i++ )
    13371332    {
     
    13531348    mtty->p_resetn                                       (signal_resetn);
    13541349    mtty->p_vci                                          (signal_vci_tgt_mtty);
    1355     for ( size_t i=0 ; i<NB_TTY_CHANNELS ; i++ )
     1350    for ( size_t i=0 ; i<NB_TXT_CHANNELS ; i++ )
    13561351    {
    13571352        mtty->p_irq[i]                                   (signal_irq_mtty_rx[i]);
    13581353    }
    13591354    std::cout << "  - MTTY connected" << std::endl;
    1360 
    1361     // CDMA connexion
    1362     cdma->p_clk                                          (signal_clk);
    1363     cdma->p_resetn                                       (signal_resetn);
    1364     cdma->p_vci_target                                   (signal_vci_tgt_cdma);
    1365     cdma->p_vci_initiator                                (signal_vci_ini_cdma);
    1366     for ( size_t i=0 ; i<(NB_CMA_CHANNELS) ; i++)
    1367     {
    1368         cdma->p_irq[i]                                   (signal_irq_cdma[i]);
    1369     }
    1370 
    1371     std::cout << "  - CDMA connected" << std::endl;
    13721355
    13731356    // IOPI connexion
     
    13791362    {
    13801363       if     (i < NB_NIC_CHANNELS)    iopi->p_hwi[i] (signal_irq_mnic_rx[i]);
    1381        else if(i < 2 )                 iopi->p_hwi[i] (signal_irq_false);
    1382        else if(i < 2+NB_NIC_CHANNELS)  iopi->p_hwi[i] (signal_irq_mnic_tx[i-2]);
    13831364       else if(i < 4 )                 iopi->p_hwi[i] (signal_irq_false);
    1384        else if(i < 4+NB_CMA_CHANNELS)  iopi->p_hwi[i] (signal_irq_cdma[i-4]);
    1385        else if(i < 8)                  iopi->p_hwi[i] (signal_irq_false);
    1386        else if(i < 9)                  iopi->p_hwi[i] (signal_irq_disk);
     1365       else if(i < 4+NB_NIC_CHANNELS)  iopi->p_hwi[i] (signal_irq_mnic_tx[i-4]);
     1366       else if(i < 12)                 iopi->p_hwi[i] (signal_irq_false);
     1367       else if(i < 13)                 iopi->p_hwi[i] (signal_irq_disk);
    13871368       else if(i < 16)                 iopi->p_hwi[i] (signal_irq_false);
    1388        else if(i < 16+NB_TTY_CHANNELS) iopi->p_hwi[i] (signal_irq_mtty_rx[i-16]);
     1369       else if(i < 16+NB_TXT_CHANNELS) iopi->p_hwi[i] (signal_irq_mtty_rx[i-16]);
    13891370       else                            iopi->p_hwi[i] (signal_irq_false);
    13901371    }
     
    16881669
    16891670        // Monitor a specific address for one L2 cache (single word if second argument true)
    1690         // clusters[0][0]->memc->cache_monitor( 0x00FF8000ULL, false );
     1671        // clusters[0][0]->memc->cache_monitor( 0x00007000ULL, false );
    16911672
    16921673        // Monitor a specific address for one XRAM
    1693         // clusters[0][0]->xram->start_monitor( 0x600800ULL , 64);
     1674        // clusters[0][0]->xram->start_monitor( 0x00007000ULL , 64);
    16941675
    16951676        if ( debug_ok and (n > debug_from) )
     
    17171698
    17181699                // coprocessor in cluster(x,y)
    1719                 clusters[x][y]->mwmr->print_trace();
    1720                 std::ostringstream mwmr_tgt_signame;
    1721                 mwmr_tgt_signame << "[SIG]MWMR_TGT_" << x << "_" << y;
    1722                 clusters[x][y]->signal_int_vci_tgt_mwmr.print_trace(mwmr_tgt_signame.str());
    1723                 std::ostringstream mwmr_ini_signame;
    1724                 mwmr_ini_signame << "[SIG]MWMR_INI_" << x << "_" << y;
    1725                 clusters[x][y]->signal_int_vci_ini_mwmr.print_trace(mwmr_ini_signame.str());
    1726                 if ( USE_MWR_CPY ) clusters[x][y]->cpy->print_trace();
    1727                 if ( USE_MWR_DCT ) clusters[x][y]->dct->print_trace();
    1728                 if ( USE_MWR_GCD ) clusters[x][y]->gcd->print_trace();
     1700//              clusters[x][y]->mwmr->print_trace();
     1701//              std::ostringstream mwmr_tgt_signame;
     1702//              mwmr_tgt_signame << "[SIG]MWMR_TGT_" << x << "_" << y;
     1703//              clusters[x][y]->signal_int_vci_tgt_mwmr.print_trace(mwmr_tgt_signame.str());
     1704//              std::ostringstream mwmr_ini_signame;
     1705//              mwmr_ini_signame << "[SIG]MWMR_INI_" << x << "_" << y;
     1706//              clusters[x][y]->signal_int_vci_ini_mwmr.print_trace(mwmr_ini_signame.str());
     1707//              if ( USE_MWR_CPY ) clusters[x][y]->cpy->print_trace();
     1708//              if ( USE_MWR_DCT ) clusters[x][y]->dct->print_trace();
     1709//              if ( USE_MWR_GCD ) clusters[x][y]->gcd->print_trace();
    17291710
    17301711                // local interrupts in cluster(x,y)
     
    17661747//              clusters[x][y]->ram_router_cmd->print_trace();
    17671748//              clusters[x][y]->ram_router_rsp->print_trace();
     1749
     1750//              clusters[x][y]->ram_xbar_cmd->print_trace();
     1751//              clusters[x][y]->ram_xbar_rsp->print_trace();
    17681752            }
    17691753
     
    17781762//              signal_vci_tgt_iob0.print_trace("[SIG]IOB0_IOX_TGT");
    17791763
    1780                 cdma->print_trace();
    1781                 signal_vci_tgt_cdma.print_trace("[SIG]CDMA_TGT");
    1782                 signal_vci_ini_cdma.print_trace("[SIG]CDMA_INI");
    1783 
    17841764//              brom->print_trace();
    17851765//              signal_vci_tgt_brom.print_trace("[SIG]BROM_TGT");
     
    17961776#endif
    17971777
    1798 //              mnic->print_trace( 0x000 );
    1799 //              signal_vci_tgt_mnic.print_trace("[SIG]MNIC_TGT");
    1800 
    1801                 fbuf->print_trace();
    1802                 signal_vci_tgt_fbuf.print_trace("[SIG]FBUF_TGT");
     1778                mnic->print_trace( 0 );
     1779                signal_vci_tgt_mnic.print_trace("[SIG]MNIC_TGT");
     1780                signal_vci_ini_mnic.print_trace("[SIG]MNIC_INI");
     1781
     1782//              fbuf->print_trace();
     1783//              signal_vci_tgt_fbuf.print_trace("[SIG]FBUF_TGT");
    18031784
    18041785//              iopi->print_trace();
  • trunk/platforms/tsar_generic_iob/top.desc

    r1002 r1050  
    6161
    6262            # NIC
    63             Uses('caba:vci_multi_nic',
     63            Uses('caba:vci_master_nic',
    6464                  cell_size = vci_cell_size_ext),
    6565
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h

    r1030 r1050  
    198198    DspinRouter<dspin_ram_rsp_width>*                 ram_router_rsp;
    199199
     200    // IO Network Components (not instanciated in all clusters)
     201
    200202    DspinLocalCrossbar<dspin_ram_cmd_width>*          ram_xbar_cmd;
    201203    DspinLocalCrossbar<dspin_ram_rsp_width>*          ram_xbar_rsp;
    202    
    203 
    204     // IO Network Components (not instanciated in all clusters)
    205204
    206205    VciIoBridge<vci_param_int,
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp

    r1034 r1050  
    340340                     nb_procs,                     // number of local targets
    341341                     1, 1,                         // fifo depths
    342                      true,                         // CMD
     342                     true,                         // pseudo CMD
    343343                     false,                        // no routing table
    344                      false);                       // broadcast
     344                     false);                       // no broadcast
    345345
    346346    ////////////  DSPIN INT_CMD ROUTER ////////////////////////////////////////////
     
    470470              2, 2,                         // in fifo, out fifo depths
    471471              true,                         // is cmd ?
    472               false,                        // use routing table ?
    473               false);                       // support broadcast ?
     472              false,                        // no routing table
     473              false);                       // no broadcast
    474474
    475475        ////////////  DSPIN RAM_RSP LOCAL_XBAR  ///////////////////////////////////
     
    484484              2, 2,                         // in fifo, out fifo depths
    485485              false,                        // is cmd ?
    486               true,                         // use routing table ?
    487               false);                       // support broadcast ?
     486              true,                         // use routing table
     487              false);                       // no broadcast
    488488
    489489    } // end if IO
Note: See TracChangeset for help on using the changeset viewer.