Changeset 738
- Timestamp:
- Jul 4, 2014, 4:27:51 PM (10 years ago)
- 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 12 12 # physical space segmentation) and the mapping of all kernel objects (global vsegs). 13 13 # 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. 16 16 # 17 17 # The "constructor" parameters are: … … 41 41 ### define architecture constants 42 42 43 distptabs= 144 nb_ ttys = 145 nb_nics = 246 fbf_width = 102447 x_io= 048 y_io = 049 x_width= 450 y_width = 451 paddr_width = 4052 irq_per_proc = 453 use_ramdisk = False54 peri_increment = 0x1000043 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 55 55 56 56 ### parameters checking … … 161 161 x_io = x_io, 162 162 y_io = y_io, 163 peri_increment = peri_increment ) 163 peri_increment = peri_increment, 164 ram_base = ram_base, 165 ram_size = ram_size ) 164 166 165 167 ### external peripherals (accessible in cluster[0,0] only for this mapping) … … 241 243 ### global vsegs for kernel 242 244 243 if dist ptabs:245 if distributed_ptabs: 244 246 for x in xrange( x_size ): 245 247 for y in xrange( y_size ): … … 291 293 vtype = 'PERI', x = 0, y = 0, pseg = 'PIC', identity = True ) 292 294 293 ### Global vsegs for replicatedperipherals, and for schedulers294 ### 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) 295 297 296 298 for x in xrange( x_size ): … … 322 324 if __name__ == '__main__': 323 325 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 ) 332 329 333 330 # print mapping.netbsd_dts() -
branches/fault_tolerance/platforms/tsar_generic_iob/soclib.conf
r728 r738 1 1 cflags = config.default.toolchain.cflags \ 2 2 + ['-DUSE_OPENMP=0'] \ 3 + ['-DDISTRIBUTED_BOOT=false'] \4 3 # + ['-ggdb'] 5 4 -
branches/fault_tolerance/platforms/tsar_generic_iob/top.cpp
r736 r738 9 9 // an external bus (i.e. Hypertransport) to access 7 external peripherals: 10 10 // 11 // - BROM : boot ROM12 11 // - FBUF : Frame Buffer 13 // - MTTY : multi TTY ( up to 15 channels)12 // - MTTY : multi TTY (one channel) 14 13 // - MNIC : Network controller (up to 2 channels) 15 14 // - CDMA : Chained Buffer DMA controller (up to 4 channels) 16 // - BDEV : Dlock Device controler ( 1channel)15 // - BDEV : Dlock Device controler (one channel) 17 16 // - IOPI : HWI to SWI translator. 18 17 // … … 39 38 // external IOPIC component, that must be configured by the OS to route 40 39 // these WTI ITQS to one or several internal XICU components. 41 // The total number of channels for the external peripherals (MTTY, MNIC, CDMA42 // IOC or HBA) is limited by the IOPIC 32 HWI inputs:..43 40 // - IOPIC HWI[1:0] connected to IRQ_NIC_RX[1:0] 44 41 // - IOPIC HWI[3:2] connected to IRQ_NIC_TX[1:0] … … 48 45 // - IOPIC HWI[31:9] unused (grounded) 49 46 // 50 // Besides the external peripherals, each cluster contains on XICU component,47 // Besides the external peripherals, each cluster contains one XICU component, 51 48 // and one multi channels DMA component. 52 49 // The XICU component is mainly used to handle WTI IRQs, as only 2 HWI IRQs … … 227 224 #define BOOT_SOFT_NAME "../../softs/tsar_boot/preloader.elf" 228 225 229 // Activate Distributed Boot230 // When this is activated, every processor boots with its physical address231 // extension register initialized to its cluster index (X_LOCAL, Y_LOCAL). To232 // support this feature, a distributed ROM is implemented in each cluster.233 234 #ifndef DISTRIBUTED_BOOT235 #define DISTRIBUTED_BOOT false236 #endif237 238 226 //////////////////////////////////////////////////////////// 239 227 // DEBUG Parameters default values … … 246 234 ///////////////////////////////////////////////////////// 247 235 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); 253 240 254 241 //////////////////////////////////////////////////////////////////////// … … 449 436 } 450 437 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 451 446 // checking hardware parameters 452 447 assert( (XMAX <= 16) and … … 479 474 << " - RAM_LATENCY = " << XRAM_LATENCY << std::endl 480 475 << " - MAX_FROZEN = " << frozen_cycles << std::endl 476 << " - DIST_BOOT = " << distributed_boot << std::endl 481 477 << " - DEBUG_PROCID = " << debug_proc_id << std::endl 482 478 << " - DEBUG_MEMCID = " << debug_memc_id << std::endl … … 979 975 IntTab(0, IOX_IOPI_TGT_ID), 980 976 32 ); // number of input HWI 977 981 978 // Clusters 982 979 TsarIobCluster<vci_param_int, … … 1069 1066 XCU_NB_INPUTS, 1070 1067 1071 DISTRIBUTED_BOOT,1068 distributed_boot, 1072 1069 1073 1070 loader,
Note: See TracChangeset
for help on using the changeset viewer.