*** This mapping is for the "tsar_generic_iob" hardware architecture,
*** with 4 clusters containing processors, 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 "transpose" 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