Ignore:
Timestamp:
Feb 14, 2015, 8:10:37 PM (10 years ago)
Author:
alain
Message:

Bug fix in the external peripheral physical address computation.

File:
1 edited

Legend:

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

    r939 r944  
    9797    ## These segments are only defined in cluster_io
    9898
    99     cluster_xy = ((x_io << y_width) + y_io) << (paddr_width - x_width - y_width)
    100 
    101     bdv_base  = 0xF2000000 + cluster_xy
     99    bdv_base  = 0xF2000000
    102100    bdv_size  = 0x1000                     # 4kbytes
    103101
    104     tty_base  = 0xF4000000 + cluster_xy
     102    tty_base  = 0xF4000000
    105103    tty_size  = 0x4000                     # 16 Kbytes
    106104
    107     nic_base  = 0xF7000000 + cluster_xy
     105    nic_base  = 0xF7000000
    108106    nic_size  = 0x80000                    # 512 kbytes
    109107
    110     cma_base  = 0xF8000000 + cluster_xy
     108    cma_base  = 0xF8000000
    111109    cma_size  = 0x1000 * 2 * nb_nics       # 4 kbytes * 2 * nb_nics
    112110
    113     pic_base  = 0xF9000000 + cluster_xy
     111    pic_base  = 0xF9000000
    114112    pic_size  = 0x1000                     # 4 Kbytes
    115113
    116     fbf_base  = 0xF3000000 + cluster_xy
     114    fbf_base  = 0xF3000000
    117115    fbf_size  = fbf_width * fbf_width      # fbf_width * fbf_width bytes
    118116
     
    154152    kernel_data_vbase    = 0x90000000
    155153    kernel_data_size     = 0x00200000      # 2 Mbytes in cluster[0][0]
    156 
    157     kernel_uncdata_vbase = 0x90200000
    158     kernel_uncdata_size  = 0x00001000      # 4 Kbytes in cluster[0][0]
    159154
    160155    kernel_ptab_vbase    = 0xE0000000
     
    219214            if ( (x==x_io) and (y==y_io) ):
    220215
    221                 bdv = mapping.addPeriph( 'BDV', base = bdv_base, size = bdv_size,
     216                bdv = mapping.addPeriph( 'BDV', base = bdv_base + offset, size = bdv_size,
    222217                                         ptype = 'IOC', subtype = 'BDV' )
    223218
    224                 tty = mapping.addPeriph( 'TTY', base = tty_base, size = tty_size,
     219                tty = mapping.addPeriph( 'TTY', base = tty_base + offset, size = tty_size,
    225220                                         ptype = 'TTY', channels = nb_ttys )
    226221
    227                 nic = mapping.addPeriph( 'NIC', base = nic_base, size = nic_size,
     222                nic = mapping.addPeriph( 'NIC', base = nic_base + offset, size = nic_size,
    228223                                         ptype = 'NIC', channels = nb_nics )
    229224
    230                 cma = mapping.addPeriph( 'CMA', base = cma_base, size = cma_size,
     225                cma = mapping.addPeriph( 'CMA', base = cma_base + offset, size = cma_size,
    231226                                         ptype = 'CMA', channels = nb_cmas )
    232227
    233                 fbf = mapping.addPeriph( 'FBF', base = fbf_base, size = fbf_size,
     228                fbf = mapping.addPeriph( 'FBF', base = fbf_base + offset, size = fbf_size,
    234229                                         ptype = 'FBF', arg = fbf_width )
    235230
    236                 pic = mapping.addPeriph( 'PIC', base = pic_base, size = pic_size,
     231                pic = mapping.addPeriph( 'PIC', base = pic_base + offset, size = pic_size,
    237232                                         ptype = 'PIC', channels = 32 )
    238233
     
    320315                       local = False, big = True )
    321316
    322     ### global vseg kernel_uncdata: non local / small page
    323     ### Only mapped in cluster[0][0]
    324     mapping.addGlobal( 'seg_kernel_uncdata',
    325                         kernel_uncdata_vbase, kernel_uncdata_size,
    326                        '__W_', vtype = 'ELF', x = 0, y = 0, pseg = 'RAM',
    327                        binpath = 'build/kernel/kernel.elf',
    328                        local = False, big = False )
    329 
    330317    ### Global vsegs kernel_ptab_x_y: non local / big page
    331318    ### replicated in all clusters containing processors
     
    354341    ### global vsegs for external peripherals: non local / big page
    355342    ### only mapped in cluster_io
    356     mapping.addGlobal( 'seg_bdv',
    357                        bdv_base, bdv_size,
     343    mapping.addGlobal( 'seg_bdv', bdv_base, bdv_size,
    358344                       '__W_', vtype = 'PERI', x = x_io, y = y_io, pseg = 'BDV',
    359345                       local = False, big = True )
    360346
    361     mapping.addGlobal( 'seg_tty',
    362                        tty_base, tty_size,
     347    mapping.addGlobal( 'seg_tty', tty_base, tty_size,
    363348                       '__W_', vtype = 'PERI', x = x_io, y = y_io, pseg = 'TTY',
    364349                       local = False, big = True )
    365350
    366     mapping.addGlobal( 'seg_nic',
    367                        nic_base, nic_size,
     351    mapping.addGlobal( 'seg_nic', nic_base, nic_size,
    368352                       '__W_', vtype = 'PERI', x = x_io, y = y_io, pseg = 'NIC',
    369353                       local = False, big = True )
    370354
    371     mapping.addGlobal( 'seg_cma',
    372                        cma_base, cma_size,
     355    mapping.addGlobal( 'seg_cma', cma_base, cma_size,
    373356                       '__W_', vtype = 'PERI', x = x_io, y = y_io, pseg = 'CMA',
    374357                       local = False, big = True )
    375358
    376     mapping.addGlobal( 'seg_fbf',
    377                        fbf_base, fbf_size,
     359    mapping.addGlobal( 'seg_fbf', fbf_base, fbf_size,
    378360                       '__W_', vtype = 'PERI', x = x_io, y = y_io, pseg = 'FBF',
    379361                       local = False, big = True )
    380362
    381     mapping.addGlobal( 'seg_pic',
    382                        pic_base, pic_size,
     363    mapping.addGlobal( 'seg_pic', pic_base, pic_size,
    383364                       '__W_', vtype = 'PERI', x = x_io, y = y_io, pseg = 'PIC',
    384365                       local = False, big = True )
Note: See TracChangeset for help on using the changeset viewer.