- Timestamp:
- Jul 17, 2012, 4:37:44 PM (12 years ago)
- Location:
- soft/giet_vm
- Files:
-
- 3 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_config.h
r169 r170 27 27 #define NB_TIMERS 4 /* number of timers per cluster */ 28 28 #define NB_DMAS 1 /* total number of DMA channels */ 29 #define NB_TTYS 2/* total number of TTY terminals */29 #define NB_TTYS 8 /* total number of TTY terminals */ 30 30 #define NB_IOC 1 /* total number of IOC channels */ 31 31 -
soft/giet_vm/map.xml
r169 r170 5 5 clusters = "1" 6 6 psegs = "9" 7 ttys = " 2"7 ttys = "8" 8 8 fbs = "1" 9 vspaces = " 1"9 vspaces = "4" 10 10 globals = "13" > 11 11 12 12 <clusterset> 13 13 <cluster index = "0" 14 procs = " 2" />14 procs = "4" /> 15 15 </clusterset> 16 16 … … 139 139 <vobj name = "tty" 140 140 type = "PERI" 141 length = "0x0000 0100" />141 length = "0x00001000" /> 142 142 </vseg> 143 143 … … 149 149 <vobj name = "timer" 150 150 type = "PERI" 151 length = "0x0000 0080" />151 length = "0x00001000" /> 152 152 </vseg> 153 153 … … 169 169 <vobj name = "dma" 170 170 type = "PERI" 171 length = "0x0000 0100" />171 length = "0x00001000" /> 172 172 </vseg> 173 173 … … 194 194 195 195 <vspaceset> 196 <vspace name = " display"197 startname = "seg_data_ display" >198 199 <vseg name = "seg_data_ display"196 <vspace name = "router" 197 startname = "seg_data_router" > 198 199 <vseg name = "seg_data_router" 200 200 vbase = "0x00800000" 201 mode = "C_WU" 202 psegname = "PSEG_RAU" > 203 <vobj name = "seg_data_display" 201 mode = "__WU" 202 psegname = "PSEG_RAU" > 203 <vobj name = "seg_data_router" 204 type = "ELF" 205 length = "0x00010000" 206 binpath = "build/router.elf" /> 207 </vseg> 208 209 <vseg name = "seg_code_router" 210 vbase = "0x00400000" 211 mode = "CX_U" 212 psegname = "PSEG_RAU" > 213 <vobj name = "seg_code_router" 204 214 type = "ELF" 205 215 length = "0x00010000" 206 binpath = "build/display.elf" /> 216 binpath = "build/router.elf" /> 217 </vseg> 218 219 <vseg name = "seg_ptab" 220 vbase = "0x00300000" 221 mode = "C___" 222 psegname = "PSEG_RAU" > 223 <vobj name = "ptab_router" 224 type = "PTAB" 225 length = "0x00012000" 226 align = "13" /> 227 </vseg> 228 229 <vseg name = "seg_stack_producer" 230 vbase = "0x00010000" 231 mode = "C_WU" 232 psegname = "PSEG_RAU" > 233 <vobj name = "stack_producer" 234 type = "BUFFER" 235 length = "0x00010000" /> 236 </vseg> 237 238 <vseg name = "seg_stack_consumer" 239 vbase = "0x00020000" 240 mode = "C_WU" 241 psegname = "PSEG_RAU" > 242 <vobj name = "stack_consumer" 243 type = "BUFFER" 244 length = "0x00010000" /> 245 </vseg> 246 247 <vseg name = "seg_stack_router_A" 248 vbase = "0x00030000" 249 mode = "C_WU" 250 psegname = "PSEG_RAU" > 251 <vobj name = "stack_router_A" 252 type = "BUFFER" 253 length = "0x00010000" /> 254 </vseg> 255 256 <vseg name = "seg_stack_router_B" 257 vbase = "0x00040000" 258 mode = "C_WU" 259 psegname = "PSEG_RAU" > 260 <vobj name = "stack_router_B" 261 type = "BUFFER" 262 length = "0x00010000" /> 263 </vseg> 264 265 <vseg name = "seg_mwmr_channels" 266 vbase = "0x00050000" 267 mode = "__WU" 268 psegname = "PSEG_RAU" > 269 <vobj name = "mwmr_in" 270 type = "MWMR" 271 length = "0x00000020" /> 272 <vobj name = "mwmr_out" 273 type = "MWMR" 274 length = "0x00000020" /> 275 </vseg> 276 277 <task name = "producer" 278 clusterid = "0" 279 proclocid = "0" 280 stackname = "stack_producer" 281 startid = "0" 282 usetty = "1" /> 283 284 <task name = "consumer" 285 clusterid = "0" 286 proclocid = "1" 287 stackname = "stack_consumer" 288 startid = "1" 289 usetty = "1" /> 290 291 <task name = "router_A" 292 clusterid = "0" 293 proclocid = "2" 294 stackname = "stack_router_A" 295 startid = "2" 296 usetty = "1" /> 297 298 <task name = "router_B" 299 clusterid = "0" 300 proclocid = "3" 301 stackname = "stack_router_B" 302 startid = "2" 303 usetty = "1" /> 304 </vspace> 305 306 <vspace name = "hello" 307 startname = "seg_data_hello" > 308 309 <vseg name = "seg_data_hello" 310 vbase = "0x00800000" 311 mode = "C_WU" 312 psegname = "PSEG_RAU" > 313 <vobj name = "seg_data_hello" 314 type = "ELF" 315 length = "0x00010000" 316 binpath = "build/hello.elf" /> 317 </vseg> 318 319 <vseg name = "seg_code_hello" 320 vbase = "0x00400000" 321 mode = "CX_U" 322 psegname = "PSEG_RAU" > 323 <vobj name = "seg_code_hello" 324 type = "ELF" 325 length = "0x00010000" 326 binpath = "build/hello.elf" /> 207 327 </vseg> 208 328 … … 217 337 </vseg> 218 338 339 <vseg name = "seg_stack" 340 vbase = "0x00000000" 341 mode = "C_WU" 342 psegname = "PSEG_RAU" > 343 <vobj name = "stack" 344 type = "BUFFER" 345 length = "0x00010000" /> 346 </vseg> 347 348 349 <task name = "main_hello" 350 clusterid = "0" 351 proclocid = "2" 352 stackname = "stack" 353 startid = "0" 354 usetty = "1" /> 355 </vspace> 356 357 <vspace name = "pgcd" 358 startname = "seg_data_pgcd" > 359 360 <vseg name = "seg_data_pgcd" 361 vbase = "0x00800000" 362 mode = "C_WU" 363 psegname = "PSEG_RAU" > 364 <vobj name = "seg_data_pgcd" 365 type = "ELF" 366 length = "0x00010000" 367 binpath = "build/pgcd.elf" /> 368 </vseg> 369 370 <vseg name = "seg_ptab" 371 vbase = "0x00300000" 372 mode = "C___" 373 psegname = "PSEG_RAU" > 374 <vobj name = "ptab" 375 type = "PTAB" 376 length = "0x00012000" 377 align = "13" /> 378 </vseg> 379 380 <vseg name = "seg_code_pgcd" 381 vbase = "0x00400000" 382 mode = "CX_U" 383 psegname = "PSEG_RAU" > 384 <vobj name = "seg_code_pgcd" 385 type = "ELF" 386 length = "0x00010000" 387 binpath = "build/pgcd.elf" /> 388 </vseg> 389 390 <vseg name = "seg_stack" 391 vbase = "0x00000000" 392 mode = "C_WU" 393 psegname = "PSEG_RAU" > 394 <vobj name = "stack" 395 type = "BUFFER" 396 length = "0x00010000" /> 397 </vseg> 398 399 <task name = "main_pgcd" 400 clusterid = "0" 401 proclocid = "3" 402 stackname = "stack" 403 startid = "0" 404 usetty = "1" /> 405 </vspace> 406 407 <vspace name = "display" 408 startname = "seg_data_display" > 409 410 <vseg name = "seg_data_display" 411 vbase = "0x00800000" 412 mode = "C_WU" 413 psegname = "PSEG_RAU" > 414 <vobj name = "seg_data_display" 415 type = "ELF" 416 length = "0x00010000" 417 binpath = "build/display.elf" /> 418 </vseg> 419 420 <vseg name = "seg_ptab_display" 421 vbase = "0x00300000" 422 mode = "C___" 423 psegname = "PSEG_RAU" > 424 <vobj name = "ptab" 425 type = "PTAB" 426 length = "0x00012000" 427 align = "13" /> 428 </vseg> 429 219 430 <vseg name = "seg_code_display" 220 431 vbase = "0x00400000" … … 238 449 <task name = "main_display" 239 450 clusterid = "0" 240 proclocid = " 1"451 proclocid = "3" 241 452 stackname = "stack_display" 242 453 startid = "0" -
soft/giet_vm/sys/vm_handler.c
r167 r170 98 98 { 99 99 unsigned int ptba; 100 unsigned int* pte2; 101 unsigned int flags_value; 102 unsigned int ppn_value; 100 101 register unsigned int* pte2; 102 register unsigned int flags_value; 103 register unsigned int ppn_value; 103 104 104 105 unsigned int ix1 = vpn >> 9; … … 117 118 118 119 // gets ppn_value and flags_value, after temporary DTLB desactivation 119 asm volatile ( "li $26, 0xB \n" /* DTLB unactivated */ 120 asm volatile ( "move $27, %2 \n" /* $27 <= pte2 */ 121 "li $26, 0xB \n" /* DTLB unactivated */ 120 122 "mtc2 $26, $1 \n" 121 "lw %0, 0( %2)\n" /* read flags */122 "lw %1, 4( %2)\n" /* read ppn */123 "lw %0, 0($27) \n" /* read flags */ 124 "lw %1, 4($27) \n" /* read ppn */ 123 125 "li $26, 0xF \n" 124 126 "mtc2 $26, $1 \n" /* DTLB activated */
Note: See TracChangeset
for help on using the changeset viewer.