Changeset 738


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

fault_tolerance/tsar_generic_iob:

  • Merging arch.py from trunk
  • Erasing compilation defined variable for activation of distributed boot. Using instead an environment variable: DISTRIBUTED_BOOT.
Location:
branches/fault_tolerance/platforms/tsar_generic_iob
Files:
3 edited

Legend:

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

    r736 r738  
    1212#  physical space segmentation) and the mapping of all kernel objects (global vsegs).
    1313#  This platform includes 6 external peripherals, accessible through two IO_Bridge
    14 # components located in cluster [0,0] and cluster [x_size-1, y_size-1].
    15 # Available peripherals are: TTY, BDV, FBF, ROM, NIC, CMA.
     14#  components located in cluster [0,0] and cluster [x_size-1, y_size-1].
     15#  Available peripherals are: TTY, BDV, FBF, ROM, NIC, CMA.
    1616#
    1717#  The "constructor" parameters are:
     
    4141    ### define architecture constants
    4242
    43     distptabs      = 1
    44     nb_ttys        = 1
    45     nb_nics        = 2
    46     fbf_width      = 1024
    47     x_io           = 0
    48     y_io           = 0
    49     x_width        = 4
    50     y_width        = 4
    51     paddr_width    = 40
    52     irq_per_proc   = 4
    53     use_ramdisk    = False
    54     peri_increment = 0x10000
     43    nb_ttys           = 1
     44    nb_nics           = 2
     45    fbf_width         = 1024
     46    x_io              = 0
     47    y_io              = 0
     48    x_width           = 4
     49    y_width           = 4
     50    paddr_width       = 40
     51    irq_per_proc      = 4
     52    use_ramdisk       = False
     53    peri_increment    = 0x10000
     54    distributed_ptabs = True
    5555
    5656    ### parameters checking
     
    161161                       x_io           = x_io,
    162162                       y_io           = y_io,
    163                        peri_increment = peri_increment )
     163                       peri_increment = peri_increment,
     164                       ram_base       = ram_base,
     165                       ram_size       = ram_size )
    164166
    165167    ###  external peripherals (accessible in cluster[0,0] only for this mapping)
     
    241243    ### global vsegs for kernel
    242244
    243     if distptabs:
     245    if distributed_ptabs:
    244246        for x in xrange( x_size ):
    245247            for y in xrange( y_size ):
     
    291293                       vtype = 'PERI', x = 0, y = 0, pseg = 'PIC', identity = True )
    292294
    293     ### Global vsegs for replicated peripherals, and for schedulers
    294     ### name is indexed by (x,y), base address is incremented by (cluster_xy * peri_increment)
     295    ### global vsegs for internal peripherals, and for schedulers
     296    ### name is indexed by (x,y) / vbase address is incremented by (cluster_xy * peri_increment)
    295297
    296298    for x in xrange( x_size ):
     
    322324if __name__ == '__main__':
    323325
    324     mapping = genmap( x_size    = 2,
    325                       y_size    = 2,
    326                       nb_procs  = 2,
    327                       nb_ttys   = 1,
    328                       nb_nics   = 2,
    329                       fbf_width = 128,
    330                       x_io      = 0,
    331                       y_io      = 0 )
     326    mapping = arch( x_size    = 2,
     327                    y_size    = 2,
     328                    nb_procs  = 2 )
    332329
    333330#   print mapping.netbsd_dts()
  • branches/fault_tolerance/platforms/tsar_generic_iob/soclib.conf

    r728 r738  
    11cflags = config.default.toolchain.cflags \
    22         + ['-DUSE_OPENMP=0'] \
    3          + ['-DDISTRIBUTED_BOOT=false'] \
    43#        + ['-ggdb']
    54
  • branches/fault_tolerance/platforms/tsar_generic_iob/top.cpp

    r736 r738  
    99// an external bus (i.e. Hypertransport) to access 7 external peripherals:
    1010//
    11 // - BROM : boot ROM
    1211// - FBUF : Frame Buffer
    13 // - MTTY : multi TTY (up to 15 channels)
     12// - MTTY : multi TTY (one channel)
    1413// - MNIC : Network controller (up to 2 channels)
    1514// - CDMA : Chained Buffer DMA controller (up to 4 channels)
    16 // - BDEV : Dlock Device controler (1 channel)
     15// - BDEV : Dlock Device controler (one channel)
    1716// - IOPI : HWI to SWI translator.
    1817//
     
    3938// external IOPIC component, that must be configured by the OS to route
    4039// these WTI ITQS to one or several internal XICU components.
    41 // The total number of channels for the external peripherals (MTTY, MNIC, CDMA
    42 // IOC or HBA) is limited by the IOPIC 32 HWI inputs:..
    4340// - IOPIC HWI[1:0]     connected to IRQ_NIC_RX[1:0]
    4441// - IOPIC HWI[3:2]     connected to IRQ_NIC_TX[1:0]
     
    4845// - IOPIC HWI[31:9]    unused       (grounded)
    4946//
    50 // Besides the external peripherals, each cluster contains on XICU component,
     47// Besides the external peripherals, each cluster contains one XICU component,
    5148// and one multi channels DMA component.
    5249// The XICU component is mainly used to handle WTI IRQs, as only 2 HWI IRQs
     
    227224#define BOOT_SOFT_NAME        "../../softs/tsar_boot/preloader.elf"
    228225
    229 // Activate Distributed Boot
    230 // When this is activated, every processor boots with its physical address
    231 // extension register initialized to its cluster index (X_LOCAL, Y_LOCAL). To
    232 // support this feature, a distributed ROM is implemented in each cluster.
    233 
    234 #ifndef DISTRIBUTED_BOOT
    235 #define DISTRIBUTED_BOOT false
    236 #endif
    237 
    238226////////////////////////////////////////////////////////////
    239227//     DEBUG Parameters default values
     
    246234/////////////////////////////////////////////////////////
    247235
    248 // Replicated RAMs : address is incremented by a cluster offset
    249 //     offset  = cluster(x,y) << (address_width-x_width-y_width);
    250 
    251 #define SEG_RAM_BASE          0x0000000000
    252 #define SEG_RAM_SIZE          0x0004000000   // 64 Mbytes
     236// All physical segments base addresses and sizes are defined
     237// in the hard_config.h file. For replicated segments, the
     238// base address is incremented by a cluster offset:
     239// offset  = cluster(x,y) << (address_width-x_width-y_width);
    253240
    254241////////////////////////////////////////////////////////////////////////
     
    449436   }
    450437
     438   // Activate Distributed Boot (set by environment variable)
     439   // When this is activated, every processor boots with its instruction and data
     440   // physical address extension register initialized to its cluster index
     441   // (X_LOCAL, Y_LOCAL). To support this feature, a distributed ROM is
     442   // implemented in each cluster.
     443
     444   const bool distributed_boot = (getenv("DISTRIBUTED_BOOT") != NULL);
     445
    451446   // checking hardware parameters
    452447   assert( (XMAX <= 16) and
     
    479474             << " - RAM_LATENCY     = " << XRAM_LATENCY << std::endl
    480475             << " - MAX_FROZEN      = " << frozen_cycles << std::endl
     476             << " - DIST_BOOT       = " << distributed_boot << std::endl
    481477             << " - DEBUG_PROCID    = " << debug_proc_id << std::endl
    482478             << " - DEBUG_MEMCID    = " << debug_memc_id << std::endl
     
    979975                                       IntTab(0, IOX_IOPI_TGT_ID),
    980976                                       32 );        // number of input HWI
     977
    981978   // Clusters
    982979   TsarIobCluster<vci_param_int,
     
    10691066                XCU_NB_INPUTS,
    10701067
    1071                 DISTRIBUTED_BOOT,
     1068                distributed_boot,
    10721069
    10731070                loader,
Note: See TracChangeset for help on using the changeset viewer.