Changeset 965 for trunk/platforms/tsar_generic_iob/arch.py
- Timestamp:
- Apr 5, 2015, 12:42:04 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_iob/arch.py
r959 r965 16 16 # This platform includes 6 external peripherals, accessible through an IOB 17 17 # components located in cluster [0,0] or in cluster [x_size-1, y_size-1]. 18 # Available peripherals are: TTY, BDV, FBF, ROM, NIC, CMA, PIC.18 # Available peripherals are: TTY, HBA, FBF, ROM, NIC, CMA, PIC. 19 19 # 20 20 # All clusters contain (nb_procs) processors, one L2 cache, one XCU, and … … 27 27 # - nb_ttys : number of TTY channels 28 28 # - fbf_width : frame_buffer width = frame_buffer heigth 29 # - ioc_type : can be 'BDV' , 'HBA' , 'SDC' , 'NONE' 29 30 # 30 31 # The other hardware parameters are: … … 57 58 nb_procs = 2, 58 59 nb_ttys = 1, 59 fbf_width = 128 ): 60 fbf_width = 128, 61 ioc_type = 'BDV' ): 60 62 61 63 ### define architecture constants … … 70 72 paddr_width = 40 71 73 irq_per_proc = 4 72 use_ramdisk = False73 74 peri_increment = 0x10000 # distributed peripherals vbase address increment 74 75 … … 88 89 ((x_io == x_size-1) and (y_io == y_size-1)) ) 89 90 90 ### define type and name 91 92 platform_type = 'tsar_iob' 93 platform_name = '%s_%d_%d_%d' % ( platform_type, x_size, y_size , nb_procs ) 91 assert( ioc_type in IOCSUBTYPES ) 92 93 ### define platform name 94 95 platform_name = 'tsar_iob_%d_%d_%d' % ( x_size, y_size , nb_procs ) 96 platform_name += '_%d_%d_%s' % ( fbf_width , nb_ttys , ioc_type ) 94 97 95 98 ### define physical segments replicated in all clusters … … 110 113 ## These segments are only defined in cluster_io 111 114 112 bdv_base = 0x00B3000000113 bdv_size = 0x1000 # 4kbytes115 ioc_base = 0x00B3000000 116 ioc_size = 0x1000 # 4 Kbytes 114 117 115 118 tty_base = 0x00B4000000 … … 186 189 coherence = True, 187 190 irq_per_proc = irq_per_proc, 188 use_ramdisk = use_ramdisk,191 use_ramdisk = (ioc_type == 'RDK'), 189 192 x_io = x_io, 190 193 y_io = y_io, … … 234 237 ptype = 'IOB' ) 235 238 236 bdv = mapping.addPeriph( 'BDV', base = bdv_base + offset, size = bdv_size,237 ptype = 'IOC', subtype = 'BDV')239 ioc = mapping.addPeriph( 'IOC', base = ioc_base + offset, size = ioc_size, 240 ptype = 'IOC', subtype = ioc_type ) 238 241 239 242 tty = mapping.addPeriph( 'TTY', base = tty_base + offset, size = tty_size, … … 266 269 mapping.addIrq( pic, index = 7, isrtype = 'ISR_CMA' , channel = 3 ) 267 270 268 mapping.addIrq( pic, index = 8, isrtype = 'ISR_BDV' , channel = 0 ) 271 if ( ioc_type == 'BDV' ): isr_ioc = 'ISR_BDV' 272 if ( ioc_type == 'HBA' ): isr_ioc = 'ISR_HBA' 273 if ( ioc_type == 'SDC' ): isr_ioc = 'ISR_SDC' 274 275 mapping.addIrq( pic, index = 8, isrtype = isr_ioc , channel = 0 ) 269 276 270 277 mapping.addIrq( pic, index = 16, isrtype = 'ISR_TTY_RX', channel = 0 ) … … 310 317 311 318 ### global vsegs kernel_code, kernel_init : big / local 312 ### replicated in all clusters with the same name & same vbase 313 for x in xrange( x_size ): 314 for y in xrange( y_size ): 315 mapping.addGlobal( 'seg_kernel_code', kernel_code_vbase, kernel_code_size, 319 ### replicated in all clusters with indexed name & same vbase 320 for x in xrange( x_size ): 321 for y in xrange( y_size ): 322 mapping.addGlobal( 'seg_kernel_code_%d_%d' %(x,y), 323 kernel_code_vbase, kernel_code_size, 316 324 'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM', 317 325 binpath = 'build/kernel/kernel.elf', 318 326 local = True, big = True ) 319 327 320 mapping.addGlobal( 'seg_kernel_init', kernel_init_vbase, kernel_init_size, 328 mapping.addGlobal( 'seg_kernel_init_%d_%d' %(x,y), 329 kernel_init_vbase, kernel_init_size, 321 330 'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM', 322 331 binpath = 'build/kernel/kernel.elf', … … 358 367 local = False, big = True ) 359 368 360 mapping.addGlobal( 'seg_ bdv', bdv_base, bdv_size, '__W_',361 vtype = 'PERI', x = 0, y = 0, pseg = ' BDV',369 mapping.addGlobal( 'seg_ioc', ioc_base, ioc_size, '__W_', 370 vtype = 'PERI', x = 0, y = 0, pseg = 'IOC', 362 371 local = False, big = True ) 363 372
Note: See TracChangeset
for help on using the changeset viewer.