Changeset 819
- Timestamp:
- Sep 29, 2014, 3:53:12 PM (10 years ago)
- Location:
- trunk/platforms/tsar_generic_leti
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_leti/Makefile
r800 r819 1 simul.x: top.cpp top.desc 1 simul.x: top.cpp top.desc hard_config.h 2 2 soclib-cc -P -p top.desc -I. -o simul.x 3 3 -
trunk/platforms/tsar_generic_leti/arch.py
r803 r819 34 34 35 35 ######################## 36 def arch( x_size = 2, 37 y_size = 2, 38 nb_procs = 2 ): 36 def arch( x_size = 2, 37 y_size = 2, 38 nb_procs = 2, 39 fbf_width = 128 ): 39 40 40 41 ### define architecture constants … … 42 43 nb_ttys = 1 43 44 nb_nics = 2 44 fbf_width = 12845 45 x_io = 0 46 46 y_io = 0 47 47 x_width = 4 48 48 y_width = 4 49 p_width = int(ceil(log(nb_procs, 2)))49 p_width = 4 50 50 paddr_width = 40 51 51 irq_per_proc = 4 52 52 use_ramdisk = True 53 peri_increment = 0x10000 53 peri_increment = 0x10000 # distributed peripherals vbase address increment 54 sched_increment = 0x10000 # distributed schedulers vbase address increment 55 ptab_increment = 0x200000 # distributed page tables vbase address increment 54 56 reset_address = 0x00000000 55 57 distributed_ptabs = False … … 106 108 rdk_size = 0x02000000 # 32 Mbytes 107 109 108 ### define preloader vseg base address and size 110 ### define preloader & bootloader vsegs base addresses and sizes 111 ### we want to pack these 5 vsegs in the same big page 109 112 110 113 preloader_vbase = 0x00000000 # ident 111 114 preloader_size = 0x00010000 # 64 Kbytes 112 115 113 ### define bootloader vsegs base addresses and sizes114 115 116 boot_mapping_vbase = 0x00010000 # ident 116 117 boot_mapping_size = 0x00080000 # 512 Kbytes … … 126 127 127 128 ### define kernel vsegs base addresses and sizes 128 129 ### we want to pack code, init and data vsegs in one big page 130 ### we want to map the ptab vseg in one big page per cluster 131 ### we want to map the sched vseg in small pages 132 129 133 kernel_code_vbase = 0x80000000 130 kernel_code_size = 0x00020000 # 128 Kbytes 131 132 kernel_data_vbase = 0x80020000 133 kernel_data_size = 0x00020000 # 128 Kbytes 134 135 kernel_uncdata_vbase = 0x80040000 136 kernel_uncdata_size = 0x00010000 # 64 Kbytes 137 138 kernel_init_vbase = 0x80050000 139 kernel_init_size = 0x00010000 # 64 Kbytes 140 141 kernel_sched_vbase = 0x80060000 # distributed in all clusters 142 kernel_sched_size = 0x2000 * nb_procs # 8 kbytes per processor 134 kernel_code_size = 0x00080000 # 512 Kbytes per cluster 135 136 kernel_init_vbase = 0x80080000 137 kernel_init_size = 0x00080000 # 512 Kbytes per cluster 138 139 kernel_data_vbase = 0x80100000 140 kernel_data_size = 0x00100000 # 1 Mbytes in cluster [0,0] 141 142 kernel_ptab_vbase = 0xB0000000 143 kernel_ptab_size = 0x00200000 # 2 Mbytes per cluster 144 145 kernel_uncdata_vbase = 0x90000000 146 kernel_uncdata_size = 0x00001000 # 4 Kbytes 147 148 kernel_sched_vbase = 0xA0000000 # distributed in all clusters 149 kernel_sched_size = 0x00002000 * nb_procs # 8 kbytes per processor 143 150 144 151 ### create mapping … … 147 154 x_size = x_size, 148 155 y_size = y_size, 149 procs_max= nb_procs,156 nprocs = nb_procs, 150 157 x_width = x_width, 151 158 y_width = y_width, … … 225 232 ### global vseg for preloader 226 233 227 mapping.addGlobal( 'seg_preloader', preloader_vbase, preloader_size, '__W_',228 vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM',229 identity = True )230 231 234 ### global vseg for ram disk 232 235 … … 279 282 'C_W_', vtype = 'SCHED', x = x , y = y , pseg = 'RAM' ) 280 283 281 ### GIET-VM specifics 282 ### global vsegs for boot_loader / identity mapping 284 ### global vsegs for preloader and boot_loader 285 ### identity mapping / non local / big page 286 287 mapping.addGlobal( 'seg_preloader', preloader_vbase, preloader_size, 288 'CXW_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', 289 identity = True, local = False, big = True ) 283 290 284 291 mapping.addGlobal( 'seg_boot_mapping', boot_mapping_vbase, boot_mapping_size, 285 'C _W_', vtype = 'BLOB' , x = 0, y = 0, pseg = 'RAM',286 identity = True )292 'CXW_', vtype = 'BLOB' , x = 0, y = 0, pseg = 'RAM', 293 identity = True, local = False, big = True ) 287 294 288 295 mapping.addGlobal( 'seg_boot_code', boot_code_vbase, boot_code_size, 289 296 'CXW_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', 290 identity = True )297 identity = True, local = False, big = True ) 291 298 292 299 mapping.addGlobal( 'seg_boot_data', boot_data_vbase, boot_data_size, 293 'C _W_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM',294 identity = True )300 'CXW_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', 301 identity = True, local = False, big = True ) 295 302 296 303 mapping.addGlobal( 'seg_boot_stack', boot_stack_vbase, boot_stack_size, 297 'C_W_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', 298 identity = True ) 299 300 ### the code global vsegs for kernel can be replicated in all clusters 301 ### if the page tables are distributed in all clusters. 302 303 if distributed_ptabs: 304 for x in xrange( x_size ): 305 for y in xrange( y_size ): 306 cluster_xy = (x << y_width) + y; 307 308 mapping.addGlobal( 'seg_kernel_code', kernel_code_vbase, kernel_code_size, 309 'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM', 310 binpath = 'build/kernel/kernel.elf', local = True ) 311 312 mapping.addGlobal( 'seg_kernel_init', kernel_init_vbase, kernel_init_size, 313 'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM', 314 binpath = 'build/kernel/kernel.elf', local = True ) 315 else: 316 mapping.addGlobal( 'seg_kernel_code', kernel_code_vbase, kernel_code_size, 317 'CXW_', vtype = 'ELF', x = 0 , y = 0 , pseg = 'RAM', 318 binpath = 'build/kernel/kernel.elf', local = False ) 319 320 mapping.addGlobal( 'seg_kernel_init', kernel_init_vbase, kernel_init_size, 321 'CXW_', vtype = 'ELF', x = 0 , y = 0 , pseg = 'RAM', 322 binpath = 'build/kernel/kernel.elf', local = False ) 323 324 ### shared global vsegs for kernel 304 'CXW_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', 305 identity = True, local = False, big = True ) 306 307 ### global vsegs kernel_code, kernel_init 308 for x in xrange( x_size ): 309 for y in xrange( y_size ): 310 cluster_xy = (x << y_width) + y; 311 312 mapping.addGlobal( 'seg_kernel_code', kernel_code_vbase, kernel_code_size, 313 'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM', 314 binpath = 'build/kernel/kernel.elf', 315 local = True, big = True ) 316 317 mapping.addGlobal( 'seg_kernel_init', kernel_init_vbase, kernel_init_size, 318 'CXW_', vtype = 'ELF', x = x , y = y , pseg = 'RAM', 319 binpath = 'build/kernel/kernel.elf', 320 local = True, big = True ) 321 322 325 323 326 324 mapping.addGlobal( 'seg_kernel_data', kernel_data_vbase, kernel_data_size,
Note: See TracChangeset
for help on using the changeset viewer.