Ignore:
Timestamp:
Jul 4, 2014, 4:27:49 PM (10 years ago)
Author:
cfuguet
Message:

fault_tolerance/tsar_generic_iob: architecture desc

  • Update arch.py to support distributed ptabs
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/fault_tolerance/platforms/tsar_generic_iob/arch.py

    r728 r736  
    4141    ### define architecture constants
    4242
     43    distptabs      = 1
    4344    nb_ttys        = 1
    4445    nb_nics        = 2
     
    115116
    116117    boot_mapping_vbase   = 0x00000000      # ident
    117     boot_mapping_size    = 0x00010000      # 64 Kbytes
    118 
    119     boot_code_vbase      = 0x00010000      # ident
     118    boot_mapping_size    = 0x00040000      # 256 Kbytes
     119
     120    boot_code_vbase      = 0x00040000      # ident
    120121    boot_code_size       = 0x00020000      # 128 Kbytes
    121122
    122     boot_data_vbase      = 0x00030000      # ident
     123    boot_data_vbase      = 0x00060000      # ident
    123124    boot_data_size       = 0x00010000      # 64 Kbytes
    124125
    125     boot_buffer_vbase    = 0x00040000      # ident
     126    boot_buffer_vbase    = 0x00070000      # ident
    126127    boot_buffer_size     = 0x00060000      # 384 Kbytes
    127128
    128     boot_stack_vbase     = 0x000A0000      # ident
    129     boot_stack_size      = 0x00050000      # 320 Kbytes
     129    boot_stack_vbase     = 0x03F00000      # ident
     130    boot_stack_size      = 0x00100000      # 1 Mbytes
    130131
    131132    ### define kernel vsegs base addresses
     
    202203            ram = mapping.addRam( 'RAM', base = ram_base + offset, size = ram_size )
    203204
     205            mmc = mapping.addPeriph( 'MMC', base = mmc_base + offset, size = mmc_size,
     206                                     ptype = 'MMC' )
     207
     208            dma = mapping.addPeriph( 'DMA', base = dma_base + offset, size = dma_size,
     209                                     ptype = 'DMA', channels = nb_procs )
     210
     211            xcu = mapping.addPeriph( 'XCU', base = xcu_base + offset, size = xcu_size,
     212                                     ptype = 'XCU', channels = nb_procs * irq_per_proc, arg = 16 )
     213
    204214            rom = mapping.addPeriph( 'ROM', base = rom_base + offset, size = rom_size,
    205215                                     ptype = 'ROM' )
    206 
    207             mmc = mapping.addPeriph( 'MMC', base = mmc_base + offset, size = mmc_size,
    208                                      ptype = 'MMC' )
    209 
    210             dma = mapping.addPeriph( 'DMA', base = dma_base + offset, size = dma_size,
    211                                      ptype = 'DMA', channels = nb_procs )
    212 
    213             xcu = mapping.addPeriph( 'XCU', base = xcu_base + offset, size = xcu_size,
    214                                      ptype = 'XCU', channels = nb_procs * irq_per_proc, arg = 16 )
    215216
    216217            # MMC IRQ replicated in all clusters
     
    240241    ### global vsegs for kernel
    241242
    242     mapping.addGlobal( 'seg_kernel_code'   , kernel_code_vbase   , kernel_code_size   , 'CXW_',
    243                        vtype = 'ELF'   , x = 0, y = 0, pseg = 'RAM', binpath = 'build/kernel/kernel.elf' )
     243    if distptabs:
     244        for x in xrange( x_size ):
     245            for y in xrange( y_size ):
     246                cluster_xy = (x << y_width) + y;
     247
     248                mapping.addGlobal( 'seg_kernel_code', kernel_code_vbase, kernel_code_size,
     249                                   'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM',
     250                                   binpath = 'build/kernel/kernel.elf', local = True )
     251
     252                mapping.addGlobal( 'seg_kernel_init', kernel_init_vbase, kernel_init_size,
     253                                   'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM',
     254                                   binpath = 'build/kernel/kernel.elf', local = True )
     255    else:
     256        mapping.addGlobal( 'seg_kernel_code', kernel_code_vbase, kernel_code_size,
     257                           'CXW_', vtype = 'ELF', x = 0 , y = 0 , pseg = 'RAM',
     258                           binpath = 'build/kernel/kernel.elf' )
     259
     260        mapping.addGlobal( 'seg_kernel_init', kernel_init_vbase, kernel_init_size,
     261                           'CXW_', vtype = 'ELF', x = 0 , y = 0 , pseg = 'RAM',
     262                           binpath = 'build/kernel/kernel.elf' )
    244263
    245264    mapping.addGlobal( 'seg_kernel_data'   , kernel_data_vbase   , kernel_data_size   , 'C_W_',
     
    247266
    248267    mapping.addGlobal( 'seg_kernel_uncdata', kernel_uncdata_vbase, kernel_uncdata_size, '__W_',
    249                        vtype = 'ELF'   , x = 0, y = 0, pseg = 'RAM', binpath = 'build/kernel/kernel.elf' )
    250 
    251     mapping.addGlobal( 'seg_kernel_init'   , kernel_init_vbase   , kernel_init_size   , 'CXW_',
    252268                       vtype = 'ELF'   , x = 0, y = 0, pseg = 'RAM', binpath = 'build/kernel/kernel.elf' )
    253269
Note: See TracChangeset for help on using the changeset viewer.