*** This mapping is for the "tsar_generic_iob" hardware architecture, *** with 4 clusters containing processors and 1 processor per cluster, *** 40 bits physical address, and 16 Mbytes per cluster. *** External peripherals are accessed (through IOB) in cluster(0,0) *** HWI interrupts from external peripherals are translated to WTI interrupts *** by an external IOPIC component. The parallel application "sort" is launched on the 4 processors. *** Physical segments for external peripherals (including the ROM containing the preloader code) *** external peripherals *** Global vsegs associated to peripherals replicated in all clusters (XCU, MMC, SCHED, DMA) *** must respect the following policy (checked by the XML parser) : *** vbase[x,y] = vbase[0,0] + 64K * cluster_xy *** pbase[x,y] = pbase[0,0] + 4G * cluster_xy *** ( with cluster_xy = x*16 + y ) *** the vseg type is entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000) *** The cluster index must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000) *** 5 global vsegs used by the boot code / A[31:28] = 0x0 / Identity mapping *** seg_boot_mapping is loaded by the boot-loader. It contains the mapping info. Reused by the kernel. *** seg_boot_code and seg_boot data are loaded by the preloader, used by the boot-loader Not reused by the kernel. *** seg_boot_stack is contains the stacks used by all processors during reset and boot. Not reused by the Kernel. *** seg_boot_buffer is used by the boot-loader. It can contain a complete .elf file. Not reused by the kernel. *** 4 global vsegs used by the kernel / A[31:28] = 0x8 *** 8 Global vsegs for external peripherals / A[31:28] = 0xB / Identity mapping *** 4 global vsegs for replicated ICUS / A[31:24] = 0xB0 / Increment = 0x10000 / Identity mapping in cluster 0 *** 4 global vsegs for replicated DMAs / A[31:24] = 0xB1 / Increment = 0x10000 / Tdentity mapping in cluster 0 *** The peripheral type must be entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000) *** The cluster id must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000) *** 4 global segs for replicated MMC / A[31:24] = 0xB2 / Increment = 0x10000 / Identity mapping in cluster 0 *** The peripheral type must be entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000) *** The cluster id must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000) *** 4 global vsegs for replicated schedulers / A[31:28] = 0xF / Increment = 0x10000 *** The type must be entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000) *** The cluster id must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000) *** For each vspace, the startname field is the name of the vobj containing the start_vector (entry point array) *** For each task, the startid field define the task entry point as an index in the start_vector *** For each task, the clusterid and proclocid arguments define the task static placement *** For each task, the stackname field is the name of the vobj containing the task stack *** For each task, the heapname field is the name of the vobj containing the task heap *** This vobj emulates a command line argument for the sort application