Ignore:
Timestamp:
Apr 11, 2017, 11:50:57 PM (7 years ago)
Author:
alain
Message:

Replace the vci_mwmr_dma hardware component by the vci_multi_dma component.

File:
1 edited

Legend:

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

    r1050 r1051  
    3131#  - fbf_width      : frame_buffer width = frame_buffer heigth
    3232#  - ioc_type       : can be 'IOC_BDV','IOC_HBA','IOC_SDC', 'IOC_SPI','NONE'
    33 #  - mwr_type       : can be 'MWR_GCD','MWR_DCT','MWR_CPY','NONE'
    3433#  - io_cxy         : IO cluster identifier
    3534#  - boot_cxy       : boot cluster identifier
     
    5352          fbf_width     = 128,
    5453          ioc_type      = 'IOC_BDV',
    55           mwr_type      = 'MWR_CPY',
    5654          io_cxy        = 0,
    5755          boot_cxy      = 0,
     
    8381    assert( ioc_type in ['IOC_BDV','IOC_HBA','IOC_SDC','IOC_SPI','IOC_RDK'] )
    8482
    85     assert( mwr_type in ['MWR_GCD','MWR_DCT','MWR_CPY'] )
    86 
    8783    assert( (io_cxy == 0) or (io_cxy == ((x_size-1)<<y_width) + (y_size-1)) )
    8884
     
    10399    xcu_size = 0x1000                      # 4 Kbytes
    104100
    105     mwr_base = 0x00B1000000
    106     mwr_size = 0x1000                      # 4 Kbytes
     101    dma_base = 0x00B1000000
     102    dma_size = 0x1000                      # 4 Kbytes
    107103
    108104    mmc_base = 0x00B2000000
     
    170166                                   size     = xcu_size,
    171167                                   channels = 1,
    172                                    arg0     = 16,
    173                                    arg1     = 16,
    174                                    arg2     = 16,
    175                                    arg3     = 16 )
     168                                   arg0     = 16,              # number of HWIs
     169                                   arg1     = 16,              # number of WTIs
     170                                   arg2     = 16,              # number of PTIs
     171                                   arg3     = 16 )             # number of output IRQs
    176172
    177173            mmc = archi.addDevice( ptype    = 'MMC_TSR',
     
    181177            archi.addIrq( dstdev = xcu, port = 0, srcdev = mmc )
    182178
    183             if ( mwr_type == 'MWR_GCD' ):
    184                 mwr = archi.addDevice( ptype = 'MWR_GCD',
    185                                        base  = mwr_base + offset,
    186                                        size  = mwr_size,
    187                                        arg0  = 2,
    188                                        arg1  = 1,
    189                                        arg2  = 1,
    190                                        arg3  = 0 )
    191                 archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr )
    192 
    193             if ( mwr_type == 'MWR_DCT' ):
    194                 mwr = archi.addDevice( ptype = 'MWR_DCT',
    195                                        base  = mwr_base + offset,
    196                                        size  = mwr_size,
    197                                        arg0  = 1,
    198                                        arg1  = 1,
    199                                        arg2  = 1,
    200                                        arg3  = 0 )
    201                 archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr )
    202 
    203             if ( mwr_type == 'MWR_CPY' ):
    204                 mwr = archi.addDevice( ptype = 'MWR_CPY',
    205                                        base  = mwr_base + offset,
    206                                        size  = mwr_size,
    207                                        arg0  = 1,
    208                                        arg1  = 1,
    209                                        arg2  = 1,
    210                                        arg3  = 0 )
    211                 archi.addIrq( dstdev = xcu, port = 1, srcdev = mwr )
     179            dma = archi.addDevice( ptype    = 'DMA_SCL',
     180                                   base     = dma_base + offset,
     181                                   size     = dma_size,
     182                                   channels = nb_cores )
     183
     184            archi.addIrq( dstdev = xcu, port = 1, srcdev = dma, channel = 0 )
     185            archi.addIrq( dstdev = xcu, port = 2, srcdev = dma, channel = 1 )
     186            archi.addIrq( dstdev = xcu, port = 3, srcdev = dma, channel = 2 )
     187            archi.addIrq( dstdev = xcu, port = 4, srcdev = dma, channel = 3 )
    212188
    213189            # define external devices
    214190            if( cxy == io_cxy ):
     191
     192                pic = archi.addDevice( ptype    ='PIC_TSR',
     193                                       base     = pic_base + offset,
     194                                       size     = pic_size,
     195                                       arg0     = 32 )         # number of input IRQs
    215196
    216197                iob = archi.addDevice( ptype    = 'IOB_TSR',
     
    241222                                       base     = rom_base + offset,
    242223                                       size     = rom_size )
    243 
    244                 pic = archi.addDevice( ptype    ='PIC_TSR',
    245                                        base     = pic_base + offset,
    246                                        size     = pic_size,
    247                                        arg0     = 32 )
    248224
    249225                archi.addIrq( dstdev = pic, port = 0 , srcdev = nic, channel = 0 , is_rx = True )
Note: See TracChangeset for help on using the changeset viewer.