Changeset 441
- Timestamp:
- Nov 3, 2014, 11:15:07 AM (10 years ago)
- Location:
- soft/giet_vm/giet_python
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_python/genmap
r432 r441 102 102 help = 'map the "router" application for the GietVM' ) 103 103 104 parser.add_option( '--display', action = 'store_true', dest = 'display', 105 default = False, 106 help = 'map the "display" application for the GietVM' ) 107 104 108 ###################################################################################### 105 109 # Get command line arguments … … 129 133 map_convol = options.convol # map "convol" application if True 130 134 map_router = options.router # map "convol" application if True 135 map_display = options.display # map "convol" application if True 131 136 132 137 ###################################################################################### … … 155 160 app = __import__( 'transpose' ) 156 161 app.transpose( mapping ) 157 print '[genmap] application "transpose" loaded'162 print '[genmap] application "transpose" will be loaded' 158 163 159 164 if ( map_sort ): 160 165 app = __import__( 'sort' ) 161 166 app.sort( mapping ) 162 print '[genmap] application "sort" loaded'167 print '[genmap] application "sort" will be loaded' 163 168 164 169 if ( map_convol ): 165 170 app = __import__( 'convol' ) 166 171 app.convol( mapping ) 167 print '[genmap] application "convol" loaded'172 print '[genmap] application "convol" will be loaded' 168 173 169 174 if ( map_router ): 170 175 app = __import__( 'router' ) 171 176 app.router( mapping ) 172 print '[genmap] application "router" loaded' 177 print '[genmap] application "router" will be loaded' 178 179 if ( map_display ): 180 app = __import__( 'display' ) 181 app.display( mapping ) 182 print '[genmap] application "display" will be loaded' 173 183 174 184 ###################################################################################### -
soft/giet_vm/giet_python/mapping.py
r425 r441 19 19 # a set of 'Task' (user tasks mapping) 20 20 # - A 'Vseg' contains a set of 'Vobj' 21 # - A 'Periph' contains a set of 'Irq' (only for XCU , ICUand PIC types )21 # - A 'Periph' contains a set of 'Irq' (only for XCU and PIC types ) 22 22 # - A 'Coproc' contains a set of 'Cpports' (one port per MWMR channel) 23 23 ########################################################################################## … … 54 54 'DMA', 55 55 'FBF', 56 'ICU',57 56 'IOB', 58 57 'IOC', … … 173 172 self.x_size = x_size 174 173 self.y_size = y_size 175 self.nprocs = nprocs174 self.nprocs = nprocs 176 175 self.x_width = x_width 177 176 self.y_width = y_width … … 494 493 stackname, # name of vobj containing stack 495 494 heapname, # name of vobj containing heap 496 startid, # index in start_vector 497 usetty = False, # request a private TTY channel 498 usenic = False, # request a private NIC channel 499 usecma = False, # request a private CMA channel 500 usehba = False, # request a private HBA channel 501 usetim = False ): # request a private TIM channel 495 startid ): # index in start_vector 502 496 503 497 assert (x < self.x_size) and (y < self.y_size) … … 505 499 506 500 # add one task into mapping 507 task = Task( name, trdid, x, y, lpid, stackname, heapname, startid, 508 usetty, usenic, usecma, usehba, usetim ) 501 task = Task( name, trdid, x, y, lpid, stackname, heapname, startid ) 509 502 vspace.tasks.append( task ) 510 503 task.index = self.total_tasks … … 854 847 seg_fbf_size = 0 855 848 856 nb_icu = 0857 icu_channels = 0858 seg_icu_base = 0xFFFFFFFF859 seg_icu_size = 0860 861 849 nb_iob = 0 862 850 iob_channels = 0 … … 941 929 nb_fbf +=1 942 930 943 elif ( periph.ptype == 'ICU' ):944 seg_icu_base = periph.pseg.base & 0xFFFFFFFF945 seg_icu_size = periph.pseg.size946 icu_channels = periph.channels947 nb_icu +=1948 949 931 elif ( periph.ptype == 'IOB' ): 950 932 seg_iob_base = periph.pseg.base & 0xFFFFFFFF … … 1019 1001 xcu_arg = periph.arg 1020 1002 nb_xcu +=1 1021 1022 # don't mix ICU and XCU1023 assert ( nb_icu*nb_xcu == 0 )1024 1003 1025 1004 # no more than two access to external peripherals … … 1168 1147 s += '#define SEG_FBF_BASE 0x%x\n' % seg_fbf_base 1169 1148 s += '#define SEG_FBF_SIZE 0x%x\n' % seg_fbf_size 1170 s += '\n'1171 s += '#define SEG_ICU_BASE 0x%x\n' % seg_icu_base1172 s += '#define SEG_ICU_SIZE 0x%x\n' % seg_icu_size1173 1149 s += '\n' 1174 1150 s += '#define SEG_IOB_BASE 0x%x\n' % seg_iob_base … … 1326 1302 s += ' reg = <0x%x 0x%x 0x%x>;\n' % (msb, lsb, size) 1327 1303 s += ' };\n\n' 1328 1329 # search ICU (non supported by Linux)1330 if ( periph.ptype == 'ICU' ):1331 print '[genmap warning] in linux_dts() : ICU peripheral not supported by LINUX'1332 1304 1333 1305 # we need one interrupt controler in any cluster containing peripherals … … 1762 1734 sys.exit(1) 1763 1735 1764 # research ICU component1765 elif ( periph.ptype == 'ICU' ):1766 print '[genmap error] in netbsd_dts() : ICU peripheral not supported by NetBSD'1767 sys.exit(1)1768 1769 1736 # topology 1770 1737 s += '\n' … … 2089 2056 stackname, 2090 2057 heapname, 2091 startid, 2092 usetty = False, 2093 usenic = False, 2094 usecma = False, 2095 usehba = False, 2096 usetim = False ): 2058 startid ): 2097 2059 2098 2060 self.index = 0 # global index value set by addTask() … … 2105 2067 self.heapname = heapname # name of vobj containing the heap 2106 2068 self.startid = startid # index in start_vector 2107 self.usetty = usetty # request a private TTY channel2108 self.usenic = usenic # request a private NIC channel2109 self.usecma = usecma # request a private CMA channel2110 self.usehba = usehba # request a private HBA channel2111 self.usetim = usetim # request a private TIM channel2112 2069 return 2113 2070 … … 2123 2080 s += ' heapname="%s"' % self.heapname 2124 2081 s += ' startid="%d"' % self.startid 2125 if self.usetty != 0: s += ' usetty="1"'2126 if self.usenic != 0: s += ' usenic="1"'2127 if self.usecma != 0: s += ' usehba="1"'2128 if self.usehba != 0: s += ' usehba="1"'2129 if self.usetim != 0: s += ' usehba="1"'2130 2082 s += ' />\n' 2131 2083 … … 2175 2127 byte_stream += mapping.int2bytes( 4, vobj_heap_id ) # heap vobj local index 2176 2128 byte_stream += mapping.int2bytes( 4, self.startid ) # index in start vector 2177 byte_stream += mapping.int2bytes( 4, self.usetty ) # TTY channel required2178 byte_stream += mapping.int2bytes( 4, self.usenic ) # NIC channel required2179 byte_stream += mapping.int2bytes( 4, self.usecma ) # CMA channel required2180 byte_stream += mapping.int2bytes( 4, self.usehba ) # IOC channel required2181 byte_stream += mapping.int2bytes( 4, self.usetim ) # TIM channel required2182 2129 2183 2130 if ( verbose ): … … 2501 2448 s += ' channels="%d"' % self.channels 2502 2449 s += ' arg="%d" >\n' % self.arg 2503 if ( (self.ptype == 'PIC') or (self.ptype == 'XCU') or (self.ptype == 'ICU')):2450 if ( (self.ptype == 'PIC') or (self.ptype == 'XCU') ): 2504 2451 for irq in self.irqs: s += irq.xml() 2505 2452 s += ' </periph>\n'
Note: See TracChangeset
for help on using the changeset viewer.