Changeset 277 for soft/giet_vm
- Timestamp:
- Jan 21, 2014, 7:21:53 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/mappings/4c_1p_four.xml
r246 r277 1 1 <?xml version="1.0"?> 2 2 3 <mapping_info signature = "0xdeadbeef" name = "C4_P1_FOUR" cluster_x = "2" cluster_y = "2" vspaces = "4" > 3 <mapping_info signature = "0xdeadbeef" 4 name = "4c_1p_four" 5 x_size = "2" 6 y_size = "2" 7 x_width = "4" 8 y_width = "4" 9 vspaces = "4" 10 increment = "0x10000" > 11 12 *** The "increment" parameter is the virtual address cluster increment 13 *** The physical address cluster increment is 0x10000000000 / NB_CLUSTERS 14 15 *** This first section describes an instance of the "tsar_generic_iob" architecture 16 *** with 4 clusters, 1 processor per cluster and 40 bits physical address. 4 17 5 18 <clusterset> 6 19 7 <cluster index = "0" > 8 9 <pseg name = "PSEG_RAM" type = "RAM" base = "0x00000000" length = "0x00C00000" /> 10 <pseg name = "PSEG_XICU" type = "PERI" base = "0x00F00000" length = "0x00002000" /> 11 <pseg name = "PSEG_DMA" type = "PERI" base = "0x00F30000" length = "0x00008000" /> 12 13 <proc index = "0" > 14 <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" /> 15 <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" /> 16 </proc> 17 18 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 19 <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" /> 20 21 </cluster> 22 <cluster index = "1" > 23 24 <pseg name = "PSEG_RAM" type = "RAM" base = "0x40000000" length = "0x00C00000" /> 25 <pseg name = "PSEG_XICU" type = "PERI" base = "0x40F00000" length = "0x00002000" /> 26 <pseg name = "PSEG_DMA" type = "PERI" base = "0x40F30000" length = "0x00008000" /> 27 28 <proc index = "0" > 29 <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" /> 30 <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" /> 31 </proc> 32 33 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 34 <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" /> 35 36 </cluster> 37 <cluster index = "2" > 38 39 <pseg name = "PSEG_RAM" type = "RAM" base = "0x80000000" length = "0x00C00000" /> 40 <pseg name = "PSEG_XICU" type = "PERI" base = "0x80F00000" length = "0x00002000" /> 41 <pseg name = "PSEG_DMA" type = "PERI" base = "0x80F30000" length = "0x00008000" /> 42 43 *** Boot ROM and non replicated peripherals 44 45 <pseg name = "PSEG_FBF" type = "PERI" base = "0xBFD00000" length = "0x00200000" /> 46 <pseg name = "PSEG_TTY" type = "PERI" base = "0xBFF20000" length = "0x00001000" /> 47 <pseg name = "PSEG_IOC" type = "PERI" base = "0xBFF10000" length = "0x00001000" /> 48 <pseg name = "PSEG_NIC" type = "PERI" base = "0xBFF80000" length = "0x00021000" /> 49 <pseg name = "PSEG_ROM" type = "ROM" base = "0xBFC00000" length = "0x00100000" /> 20 <cluster x = "0" y = "0" > 21 <pseg name = "PSEG_RAM" type = "RAM" base = "0x0000000000" length = "0x0001000000" /> 22 <pseg name = "PSEG_XCU" type = "PERI" base = "0x00B0000000" length = "0x0000002000" /> 23 <pseg name = "PSEG_DMA" type = "PERI" base = "0x00B1000000" length = "0x0000008000" /> 24 <pseg name = "PSEG_MMC" type = "PERI" base = "0x00B8000000" length = "0x0000001000" /> 25 26 *** Non replicated peripherals (including the ROM containing the preloader code) 27 28 <pseg name = "PSEG_FBF" type = "PERI" base = "0x00B2000000" length = "0x0000004000" /> 29 <pseg name = "PSEG_IOC" type = "PERI" base = "0x00B3000000" length = "0x0000001000" /> 30 <pseg name = "PSEG_TTY" type = "PERI" base = "0x00B4000000" length = "0x0000001000" /> 31 <pseg name = "PSEG_NIC" type = "PERI" base = "0x00B5000000" length = "0x0000080000" /> 32 <pseg name = "PSEG_CMA" type = "PERI" base = "0x00B6000000" length = "0x0000008000" /> 33 <pseg name = "PSEG_ROM" type = "PERI" base = "0x00BFC00000" length = "0x0000004000" /> 50 34 51 35 <proc index = "0" > 52 <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" /> 53 <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" /> 54 <irq type = "HARD" icuid = "16" isr = "ISR_TTY" channel = "0" /> 55 <irq type = "HARD" icuid = "17" isr = "ISR_TTY" channel = "1" /> 56 <irq type = "HARD" icuid = "18" isr = "ISR_TTY" channel = "2" /> 57 <irq type = "HARD" icuid = "19" isr = "ISR_TTY" channel = "3" /> 58 <irq type = "HARD" icuid = "20" isr = "ISR_TTY" channel = "4" /> 59 <irq type = "HARD" icuid = "21" isr = "ISR_TTY" channel = "5" /> 60 <irq type = "HARD" icuid = "22" isr = "ISR_TTY" channel = "6" /> 61 <irq type = "HARD" icuid = "23" isr = "ISR_TTY" channel = "7" /> 62 <irq type = "HARD" icuid = "24" isr = "ISR_TTY" channel = "8" /> 63 <irq type = "HARD" icuid = "25" isr = "ISR_TTY" channel = "9" /> 64 <irq type = "HARD" icuid = "26" isr = "ISR_TTY" channel = "10" /> 65 <irq type = "HARD" icuid = "27" isr = "ISR_TTY" channel = "11" /> 66 <irq type = "HARD" icuid = "28" isr = "ISR_TTY" channel = "12" /> 67 <irq type = "HARD" icuid = "29" isr = "ISR_TTY" channel = "13" /> 68 <irq type = "HARD" icuid = "30" isr = "ISR_TTY" channel = "14" /> 36 <irq type = "SOFT" icuid = "0" isr = "ISR_WAKUP" /> 37 <irq type = "TIME" icuid = "1" isr = "ISR_SWITCH" /> 38 39 <irq type = "HARD" icuid = "16" isr = "ISR_TTY" channel = "0" /> 40 <irq type = "HARD" icuid = "17" isr = "ISR_TTY" channel = "1" /> 41 <irq type = "HARD" icuid = "18" isr = "ISR_TTY" channel = "2" /> 42 <irq type = "HARD" icuid = "19" isr = "ISR_TTY" channel = "3" /> 43 <irq type = "HARD" icuid = "20" isr = "ISR_TTY" channel = "4" /> 44 <irq type = "HARD" icuid = "21" isr = "ISR_TTY" channel = "5" /> 45 <irq type = "HARD" icuid = "22" isr = "ISR_TTY" channel = "6" /> 46 <irq type = "HARD" icuid = "23" isr = "ISR_TTY" channel = "7" /> 47 69 48 <irq type = "HARD" icuid = "31" isr = "ISR_IOC" /> 70 49 </proc> 71 50 72 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 73 <periph type = "XICU" psegname = "PSEG_XICU" channels = "18" /> 74 <periph type = "IOC" psegname = "PSEG_IOC" channels = "1" /> 75 <periph type = "TTY" psegname = "PSEG_TTY" channels = "8" /> 76 <periph type = "NIC" psegname = "PSEG_NIC" channels = "8" /> 77 <periph type = "FBF" psegname = "PSEG_FBF" /> 51 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 52 <periph type = "XCU" psegname = "PSEG_XCU" channels = "1" /> 53 <periph type = "MMC" psegname = "PSEG_MMC" channels = "1" /> 54 <periph type = "IOC" psegname = "PSEG_IOC" channels = "1" /> 55 <periph type = "TTY" psegname = "PSEG_TTY" channels = "8" /> 56 <periph type = "NIC" psegname = "PSEG_NIC" channels = "2" /> 57 <periph type = "CMA" psegname = "PSEG_CMA" channels = "4" /> 58 <periph type = "FBF" psegname = "PSEG_FBF" channels = "1" /> 59 <periph type = "ROM" psegname = "PSEG_ROM" channels = "1" /> 78 60 79 61 </cluster> 80 <cluster index = "3" > 81 82 <pseg name = "PSEG_RAM" type = "RAM" base = "0xC0000000" length = "0x00C00000" /> 83 <pseg name = "PSEG_XICU" type = "PERI" base = "0xC0F00000" length = "0x00001000" /> 84 <pseg name = "PSEG_DMA" type = "PERI" base = "0xC0F30000" length = "0x00008000" /> 62 63 <cluster x = "0" y = "1" > 64 <pseg name = "PSEG_RAM" type = "RAM" base = "0x0100000000" length = "0x0001000000" /> 65 <pseg name = "PSEG_XCU" type = "PERI" base = "0x01B0000000" length = "0x0000002000" /> 66 <pseg name = "PSEG_DMA" type = "PERI" base = "0x01B1000000" length = "0x0000008000" /> 67 <pseg name = "PSEG_MMC" type = "PERI" base = "0x01B8000000" length = "0x0000001000" /> 85 68 86 69 <proc index = "0" > 87 <irq type = " HARD" icuid = "0" isr = "ISR_SWITCH" />88 <irq type = " HARD" icuid = "8" isr = "ISR_DMA" channel = "0" />70 <irq type = "SOFT" icuid = "0" isr = "ISR_WAKUP" /> 71 <irq type = "TIME" icuid = "1" isr = "ISR_SWITCH" /> 89 72 </proc> 90 73 91 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 92 <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" /> 74 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 75 <periph type = "XCU" psegname = "PSEG_XCU" channels = "1" /> 76 <periph type = "MMC" psegname = "PSEG_MMC" channels = "1" /> 77 </cluster> 78 79 <cluster x = "1" y = "0" > 80 <pseg name = "PSEG_RAM" type = "RAM" base = "0x1000000000" length = "0x0001000000" /> 81 <pseg name = "PSEG_XCU" type = "PERI" base = "0x10B0000000" length = "0x0000002000" /> 82 <pseg name = "PSEG_DMA" type = "PERI" base = "0x10B1000000" length = "0x0000008000" /> 83 <pseg name = "PSEG_MMC" type = "PERI" base = "0x10B8000000" length = "0x0000001000" /> 84 85 <proc index = "0" > 86 <irq type = "SOFT" icuid = "0" isr = "ISR_WAKUP" /> 87 <irq type = "TIME" icuid = "1" isr = "ISR_SWITCH" /> 88 </proc> 89 90 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 91 <periph type = "XCU" psegname = "PSEG_XCU" channels = "1" /> 92 <periph type = "MMC" psegname = "PSEG_MMC" channels = "1" /> 93 </cluster> 94 95 <cluster x = "1" y = "1" > 96 <pseg name = "PSEG_RAM" type = "RAM" base = "0x1100000000" length = "0x0001000000" /> 97 <pseg name = "PSEG_XCU" type = "PERI" base = "0x11B0000000" length = "0x0000002000" /> 98 <pseg name = "PSEG_DMA" type = "PERI" base = "0x11B1000000" length = "0x0000008000" /> 99 <pseg name = "PSEG_MMC" type = "PERI" base = "0x11B8000000" length = "0x0000001000" /> 100 101 <proc index = "0" > 102 <irq type = "SOFT" icuid = "0" isr = "ISR_WAKUP" /> 103 <irq type = "TIME" icuid = "1" isr = "ISR_SWITCH" /> 104 </proc> 105 106 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 107 <periph type = "XCU" psegname = "PSEG_XCU" channels = "1" /> 108 <periph type = "MMC" psegname = "PSEG_MMC" channels = "1" /> 93 109 </cluster> 94 110 </clusterset> 95 111 96 112 <globalset> 97 <vseg name = "seg_boot_code" vbase = "0xBFC00000" mode = "CXW_" clusterid = "2" psegname = "PSEG_ROM" ident = "1" > 98 <vobj name = "boot_code" type = "ELF" length = "0x00008000" binpath = "build/boot/boot.elf" /> 99 </vseg> 100 <vseg name = "seg_boot_stack" vbase = "0xBFC08000" mode = "C_W_" clusterid = "2" psegname = "PSEG_ROM" ident = "1" > 101 <vobj name = "boot_stack" type = "BUFFER" length = "0x00004000" /> 102 </vseg> 103 <vseg name = "seg_boot_mapping" vbase = "0xBFC0c000" mode = "C_W_" clusterid = "2" psegname = "PSEG_ROM" ident = "1" > 104 <vobj name = "boot_mapping" type = "BLOB" length = "0x00004000" binpath = "map.bin" /> 105 </vseg> 106 107 *** On voudrait répliquer le segment de code du systÚme (seg_kernel_code) dans tous les clusters... 113 114 *** Segments used by the boot code / A[31:28] = 0x0 / Identity mapping 115 - seg_boot_mapping is loaded by the boot-loader. It contains the mapping info. The content is reused by the kernel. 116 - seg_boot_code and seg_boot data are loaded by the preloader, used by the boot-loader The content is not reused by the kernel. 117 - seg_boot_stack is contains the stacks used by all processors during reset and boot. The content is not reused by the Kernel. 118 - seg_boot_buffer is used by the boot-loader. It can contain a complete .elf file. The content is not reused by the kernel. 119 120 <vseg name = "seg_boot_mapping" vbase = "0x00000000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" > 121 <vobj name = "boot_mapping" type = "BLOB" length = "0x00010000" binpath = "map.bin" /> 122 </vseg> 123 <vseg name = "seg_boot_code" vbase = "0x00010000" mode = "CXW_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" > 124 <vobj name = "boot_code" type = "BUFFER" length = "0x00020000" /> 125 </vseg> 126 <vseg name = "seg_boot_data" vbase = "0x00030000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" > 127 <vobj name = "boot_data" type = "BUFFER" length = "0x00010000" /> 128 </vseg> 129 <vseg name = "seg_boot_buffer" vbase = "0x00040000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" > 130 <vobj name = "boot_buffer" type = "BUFFER" length = "0x00020000" /> 131 </vseg> 132 <vseg name = "seg_boot_stack" vbase = "0x00060000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" > 133 <vobj name = "boot_stack" type = "BUFFER" length = "0x00090000" /> 134 </vseg> 135 136 *** Segments used by the kernel / A[31:28] = 0x8 108 137 109 <vseg name = "seg_kernel_code" vbase = "0x80000000" mode = "CX __" clusterid= "0" psegname = "PSEG_RAM" >110 <vobj name = "kernel_code" type = "ELF" length = "0x000 10000" binpath = "build/sys/sys.elf" />111 </vseg> 112 <vseg name = "seg_kernel_data" vbase = "0x800 10000" mode = "C_W_" clusterid= "0" psegname = "PSEG_RAM" >113 <vobj name = "kernel_data" type = "ELF" length = "0x000 40000" binpath = "build/sys/sys.elf" />138 <vseg name = "seg_kernel_code" vbase = "0x80000000" mode = "CXW_" x = "0" y = "0" psegname = "PSEG_RAM" > 139 <vobj name = "kernel_code" type = "ELF" length = "0x00020000" binpath = "build/kernel/kernel.elf" /> 140 </vseg> 141 <vseg name = "seg_kernel_data" vbase = "0x80020000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" > 142 <vobj name = "kernel_data" type = "ELF" length = "0x00060000" binpath = "build/kernel/kernel.elf" /> 114 143 </vseg> 115 <vseg name = "seg_kernel_uncdata" vbase = "0x80080000" mode = "__W_" clusterid = "0" psegname = "PSEG_RAM" > 116 <vobj name = "kernel_uncdata" type = "ELF" length = "0x00010000" binpath = "build/sys/sys.elf" /> 117 </vseg> 118 <vseg name = "seg_kernel_init" vbase = "0x80090000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" > 119 <vobj name = "kernel_init" type = "ELF" length = "0x00010000" binpath = "build/sys/sys.elf" /> 120 </vseg> 121 122 *** Non replicated peripherals 123 124 <vseg name = "seg_ioc" vbase = "0xBFF10000" mode = "__W_" clusterid = "2" psegname = "PSEG_IOC" ident = "1" > 144 <vseg name = "seg_kernel_uncdata" vbase = "0x80080000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_RAM" > 145 <vobj name = "kernel_uncdata" type = "ELF" length = "0x00040000" binpath = "build/kernel/kernel.elf" /> 146 </vseg> 147 <vseg name = "seg_kernel_init" vbase = "0x800C0000" mode = "CXW_" x = "0" y = "0" psegname = "PSEG_RAM" > 148 <vobj name = "kernel_init" type = "ELF" length = "0x00010000" binpath = "build/kernel/kernel.elf" /> 149 </vseg> 150 151 *** Segments for non replicated peripherals / A[31:28] = 0xB / Identity mapping 152 153 <vseg name = "seg_fbf" vbase = "0xB2000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_FBF" ident = "1" > 154 <vobj name = "fbf" type = "PERI" length = "0x00004000" /> 155 </vseg> 156 <vseg name = "seg_ioc" vbase = "0xB3000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_IOC" ident = "1" > 125 157 <vobj name = "ioc" type = "PERI" length = "0x00001000" /> 126 158 </vseg> 127 <vseg name = "seg_tty" vbase = "0xB FF20000" mode = "__W_" clusterid = "2" psegname = "PSEG_TTY" ident = "1" >159 <vseg name = "seg_tty" vbase = "0xB4000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_TTY" ident = "1" > 128 160 <vobj name = "tty" type = "PERI" length = "0x00001000" /> 129 161 </vseg> 130 <vseg name = "seg_fbf" vbase = "0xBFD00000" mode = "__W_" clusterid = "2" psegname = "PSEG_FBF" ident = "1" > 131 <vobj name = "fbf" type = "PERI" length = "0x00200000" /> 132 </vseg> 133 <vseg name = "seg_nic" vbase = "0xBFF80000" mode = "__W_" clusterid = "2" psegname = "PSEG_NIC" ident = "1" > 134 <vobj name = "nic" type = "PERI" length = "0x00021000" /> 135 </vseg> 136 137 *** On pourrait supprimer les vsegs associés aux composants XICU en les traitant comme les schedulers : 138 *** accÚs en addresse physique et stockage de l'adresse de base de chaque XICU dans chaque processeur. 139 *** On peut aussi définir un vseg factorisé en introduisant le CLUSTER_SIZE... 140 141 <vseg name = "seg_icu_0" vbase = "0x00F00000" mode = "__W_" clusterid = "0" psegname = "PSEG_XICU" > 162 <vseg name = "seg_nic" vbase = "0xB5000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_NIC" ident = "1" > 163 <vobj name = "nic" type = "PERI" length = "0x00080000" /> 164 </vseg> 165 <vseg name = "seg_cma" vbase = "0xB6000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_CMA" ident = "1" > 166 <vobj name = "cma" type = "PERI" length = "0x00008000" /> 167 </vseg> 168 <vseg name = "seg_rom" vbase = "0xBFC00000" mode = "CXW_" x = "0" y = "0" psegname = "PSEG_ROM" ident = "1" > 169 <vobj name = "rom" type = "PERI" length = "0x00004000" /> 170 </vseg> 171 172 *** Segments for replicated ICUS / A[31:24] = 0xB0 / Increment = 0x10000 / Identity mapping in cluster 0 173 174 <vseg name = "seg_icu_0" vbase = "0xB0000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_XCU" ident = "1" > 142 175 <vobj name = "icu_0" type = "PERI" length = "0x00001000" /> 143 176 </vseg> 144 <vseg name = "seg_icu_1" vbase = "0x 40F00000" mode = "__W_" clusterid = "1" psegname = "PSEG_XICU" >177 <vseg name = "seg_icu_1" vbase = "0xB0010000" mode = "__W_" x = "0" y = "1" psegname = "PSEG_XCU" > 145 178 <vobj name = "icu_1" type = "PERI" length = "0x00001000" /> 146 179 </vseg> 147 <vseg name = "seg_icu_2" vbase = "0x 80F00000" mode = "__W_" clusterid = "2" psegname = "PSEG_XICU" >180 <vseg name = "seg_icu_2" vbase = "0xB0100000" mode = "__W_" x = "1" y = "0" psegname = "PSEG_XCU" > 148 181 <vobj name = "icu_2" type = "PERI" length = "0x00001000" /> 149 182 </vseg> 150 <vseg name = "seg_icu_3" vbase = "0x C0F00000" mode = "__W_" clusterid = "3" psegname = "PSEG_XICU" >183 <vseg name = "seg_icu_3" vbase = "0xB0110000" mode = "__W_" x = "1" y = "1" psegname = "PSEG_XCU" > 151 184 <vobj name = "icu_3" type = "PERI" length = "0x00001000" /> 152 185 </vseg> 153 186 154 *** Il faudrait trouver un moyen de supprimer les vsegs associés aux composants DMA distribués, ou de les factoriser... 155 156 <vseg name = "seg_dma_0" vbase = "0x00F30000" mode = "__W_" clusterid = "0" psegname = "PSEG_DMA" > 187 *** segments for replicated DMAs / A[31:24] = 0xB1 / Increment = 0x10000 / Tdentity mapping in cluster 0 188 *** The peripheral type must be entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000) 189 *** The cluster id must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000) 190 191 <vseg name = "seg_dma_0" vbase = "0xB1000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_DMA" ident = "1" > 157 192 <vobj name = "dma_0" type = "PERI" length = "0x00008000" /> 158 193 </vseg> 159 <vseg name = "seg_dma_1" vbase = "0x 40F30000" mode = "__W_" clusterid= "1" psegname = "PSEG_DMA" >194 <vseg name = "seg_dma_1" vbase = "0xB1010000" mode = "__W_" x = "0" y = "1" psegname = "PSEG_DMA" > 160 195 <vobj name = "dma_1" type = "PERI" length = "0x00008000" /> 161 196 </vseg> 162 <vseg name = "seg_dma_2" vbase = "0x 80F30000" mode = "__W_" clusterid = "2" psegname = "PSEG_DMA" >197 <vseg name = "seg_dma_2" vbase = "0xB1100000" mode = "__W_" x = "1" y = "0" psegname = "PSEG_DMA" > 163 198 <vobj name = "dma_2" type = "PERI" length = "0x00008000" /> 164 199 </vseg> 165 <vseg name = "seg_dma_3" vbase = "0x C0F30000" mode = "__W_" clusterid = "3" psegname = "PSEG_DMA" >200 <vseg name = "seg_dma_3" vbase = "0xB1110000" mode = "__W_" x = "1" y = "1" psegname = "PSEG_DMA" > 166 201 <vobj name = "dma_3" type = "PERI" length = "0x00008000" /> 202 </vseg> 203 204 *** segments for replicated MMC / A[31:24] = 0xB8 / Increment = 0x10000 / Identity mapping in cluster 0 205 *** The peripheral type must be entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000) 206 *** The cluster id must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000) 207 208 <vseg name = "seg_memc_0" vbase = "0xB8000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_MMC" ident = "1" > 209 <vobj name = "memc_0" type = "PERI" length = "0x00001000" /> 210 </vseg> 211 <vseg name = "seg_memc_1" vbase = "0xB8010000" mode = "__W_" x = "0" y = "1" psegname = "PSEG_MMC" > 212 <vobj name = "memc_1" type = "PERI" length = "0x00001000" /> 213 </vseg> 214 <vseg name = "seg_memc_2" vbase = "0xB8100000" mode = "__W_" x = "1" y = "0" psegname = "PSEG_MMC" > 215 <vobj name = "memc_2" type = "PERI" length = "0x00001000" /> 216 </vseg> 217 <vseg name = "seg_memc_3" vbase = "0xB8110000" mode = "__W_" x = "1" y = "1" psegname = "PSEG_MMC" > 218 <vobj name = "memc_3" type = "PERI" length = "0x00001000" /> 219 </vseg> 220 221 *** segments for replicated schedulers / A[31:28] = 0xF / Increment = 0x10000 222 *** The type must be entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000) 223 *** The cluster id must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000) 224 225 <vseg name = "seg_sched_0" vbase = "0xF0000000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" > 226 <vobj name = "sched_0" type = "SCHED" length = "0x00008000" /> 227 </vseg> 228 <vseg name = "seg_sched_1" vbase = "0xF0010000" mode = "C_W_" x = "0" y = "1" psegname = "PSEG_RAM" > 229 <vobj name = "sched_1" type = "SCHED" length = "0x00008000" /> 230 </vseg> 231 <vseg name = "seg_sched_2" vbase = "0xF0100000" mode = "C_W_" x = "1" y = "0" psegname = "PSEG_RAM" > 232 <vobj name = "sched_2" type = "SCHED" length = "0x00008000" /> 233 </vseg> 234 <vseg name = "seg_sched_3" vbase = "0xF0110000" mode = "C_W_" x = "1" y = "1" psegname = "PSEG_RAM" > 235 <vobj name = "sched_3" type = "SCHED" length = "0x00008000" /> 167 236 </vseg> 168 237 *** … … 170 239 171 240 <vspaceset> 241 242 *** For each vspace, the startname field is the name of the vobj containing the start_vector (entry point array) 243 *** For each task, the startid field define the task entry point as an index in the start_vector 244 *** For each task, the x,y and proclocid arguments define the task static placement 245 *** For each task, the stackname field is the name of the vobj containing the task stack 246 *** For each task, the heapname field is the name of the vobj containing the task heap 247 172 248 <vspace name = "router" startname = "data" > 173 <vseg name = "seg_data" vbase = "0x00800000" mode = "__WU" clusterid = "0" psegname = "PSEG_RAM" > 249 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" x = "0" y = "0" psegname = "PSEG_RAM" > 250 <vobj name = "code" type = "ELF" length = "0x00010000" binpath = "build/router/router.elf" /> 251 </vseg> 252 <vseg name = "seg_data" vbase = "0x00500000" mode = "__WU" x = "0" y = "0" psegname = "PSEG_RAM" > 174 253 <vobj name = "data" type = "ELF" length = "0x00010000" binpath = "build/router/router.elf" /> 175 254 </vseg> 176 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname = "PSEG_RAM" > 177 <vobj name = "code" type = "ELF" length = "0x00010000" binpath = "build/router/router.elf" /> 178 </vseg> 179 <vseg name = "seg_ptab" vbase = "0x00300000" mode = "C___" clusterid = "0" psegname = "PSEG_RAM" > 255 <vseg name = "seg_ptab" vbase = "0x00600000" mode = "C___" x = "0" y = "0" psegname = "PSEG_RAM" > 180 256 <vobj name = "ptab" type = "PTAB" length = "0x00012000" align = "13" /> 181 257 </vseg> 182 <vseg name = "seg_stack_prod" vbase = "0x00 010000" mode = "C_WU" clusterid= "0" psegname = "PSEG_RAM" >258 <vseg name = "seg_stack_prod" vbase = "0x00700000" mode = "C_WU" x = "0" y = "0" psegname = "PSEG_RAM" > 183 259 <vobj name = "stack_prod" type = "BUFFER" length = "0x00010000" /> 184 260 <vobj name = "heap_prod" type = "BUFFER" length = "0x00010000" /> 185 261 </vseg> 186 <vseg name = "seg_stack_cons" vbase = "0x00 030000" mode = "C_WU" clusterid= "1" psegname = "PSEG_RAM" >262 <vseg name = "seg_stack_cons" vbase = "0x00800000" mode = "C_WU" x = "0" y = "1" psegname = "PSEG_RAM" > 187 263 <vobj name = "stack_cons" type = "BUFFER" length = "0x00010000" /> 188 264 <vobj name = "heap_cons" type = "BUFFER" length = "0x00010000" /> 189 265 </vseg> 190 <vseg name = "seg_stack_routA" vbase = "0x00 050000" mode = "C_WU" clusterid = "2" psegname = "PSEG_RAM" >266 <vseg name = "seg_stack_routA" vbase = "0x00900000" mode = "C_WU" x = "1" y = "0" psegname = "PSEG_RAM" > 191 267 <vobj name = "stack_routA" type = "BUFFER" length = "0x00010000" /> 192 268 <vobj name = "heap_routA" type = "BUFFER" length = "0x00010000" /> 193 269 </vseg> 194 <vseg name = "seg_stack_routB" vbase = "0x00 070000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" >270 <vseg name = "seg_stack_routB" vbase = "0x00A00000" mode = "C_WU" x = "1" y = "1" psegname = "PSEG_RAM" > 195 271 <vobj name = "stack_routB" type = "BUFFER" length = "0x00010000" /> 196 272 <vobj name = "heap_routB" type = "BUFFER" length = "0x00010000" /> 197 273 </vseg> 198 <vseg name = "seg_mwmrs" vbase = "0x00 090000" mode = "__WU" clusterid= "0" psegname = "PSEG_RAM" >274 <vseg name = "seg_mwmrs" vbase = "0x00B00000" mode = "__WU" x = "0" y = "0" psegname = "PSEG_RAM" > 199 275 <vobj name = "mwmr_in" type = "MWMR" length = "0x00000020" init = "1" /> 200 276 <vobj name = "mwmr_out" type = "MWMR" length = "0x00000020" init = "1" /> 201 277 </vseg> 202 278 203 <task name = "producer" clusterid= "0" proclocid = "0" stackname = "stack_prod" heapname = "heap_prod" startid = "0" usetty = "1" />204 <task name = "consumer" clusterid= "1" proclocid = "0" stackname = "stack_cons" heapname = "heap_cons" startid = "1" usetty = "1" />205 <task name = "router_A" clusterid = "2" proclocid = "0" stackname = "stack_routA" heapname = "heap_routA" startid = "2" usetty = "1" />206 <task name = "router_B" clusterid = "3" proclocid = "0" stackname = "stack_routB" heapname = "heap_routB" startid = "2" usetty = "1" />279 <task name = "producer" x = "0" y = "0" proclocid = "0" stackname = "stack_prod" heapname = "heap_prod" startid = "0" usetty = "1" /> 280 <task name = "consumer" x = "0" y = "1" proclocid = "0" stackname = "stack_cons" heapname = "heap_cons" startid = "1" usetty = "1" /> 281 <task name = "router_A" x = "1" y = "0" proclocid = "0" stackname = "stack_routA" heapname = "heap_routA" startid = "2" usetty = "1" /> 282 <task name = "router_B" x = "1" y = "0" proclocid = "0" stackname = "stack_routB" heapname = "heap_routB" startid = "2" usetty = "1" /> 207 283 </vspace> 208 284 209 285 <vspace name = "hello" startname = "data" > 210 <vseg name = "seg_data" vbase = "0x00800000" mode = "C_WU" clusterid = "1" psegname = "PSEG_RAM" > 286 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" x = "0" y = "1" psegname = "PSEG_RAM" > 287 <vobj name = "code" type = "ELF" length = "0x00010000" binpath = "build/hello/hello.elf" /> 288 </vseg> 289 <vseg name = "seg_data" vbase = "0x00500000" mode = "C_WU" x = "0" y = "1" psegname = "PSEG_RAM" > 211 290 <vobj name = "data" type = "ELF" length = "0x00010000" binpath = "build/hello/hello.elf" /> 212 291 </vseg> 213 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" clusterid = "1" psegname = "PSEG_RAM" > 214 <vobj name = "code" type = "ELF" length = "0x00010000" binpath = "build/hello/hello.elf" /> 215 </vseg> 216 <vseg name = "seg_ptab" vbase = "0x00300000" mode = "C___" clusterid = "1" psegname = "PSEG_RAM" > 292 <vseg name = "seg_ptab" vbase = "0x00600000" mode = "C___" x = "0" y = "1" psegname = "PSEG_RAM" > 217 293 <vobj name = "ptab" type = "PTAB" length = "0x00012000" align = "13" /> 218 294 </vseg> 219 <vseg name = "seg_stack" vbase = "0x00 010000" mode = "C_WU" clusterid= "1" psegname = "PSEG_RAM" >295 <vseg name = "seg_stack" vbase = "0x00700000" mode = "C_WU" x = "0" y = "1" psegname = "PSEG_RAM" > 220 296 <vobj name = "stack" type = "BUFFER" length = "0x00010000" /> 221 297 <vobj name = "heap" type = "BUFFER" length = "0x00010000" /> 222 298 </vseg> 223 299 224 <task name = "main_hello" clusterid= "1" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" />300 <task name = "main_hello" x = "0" y = "1" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" /> 225 301 </vspace> 226 302 227 303 <vspace name = "pgcd" startname = "data" > 228 <vseg name = "seg_data" vbase = "0x00800000" mode = "C_WU" clusterid = "2" psegname = "PSEG_RAM" > 304 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" x = "1" y = "0" psegname = "PSEG_RAM" > 305 <vobj name = "code" type = "ELF" length = "0x00010000" binpath = "build/pgcd/pgcd.elf" /> 306 </vseg> 307 <vseg name = "seg_data" vbase = "0x00500000" mode = "C_WU" x = "1" y = "0" psegname = "PSEG_RAM" > 229 308 <vobj name = "data" type = "ELF" length = "0x00010000" binpath = "build/pgcd/pgcd.elf" /> 230 309 </vseg> 231 <vseg name = "seg_ptab" vbase = "0x00 300000" mode = "C___" clusterid = "2" psegname = "PSEG_RAM" >310 <vseg name = "seg_ptab" vbase = "0x00600000" mode = "C___" x = "1" y = "0" psegname = "PSEG_RAM" > 232 311 <vobj name = "ptab" type = "PTAB" length = "0x00012000" align = "13" /> 233 312 </vseg> 234 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" clusterid = "2" psegname = "PSEG_RAM" > 235 <vobj name = "code" type = "ELF" length = "0x00010000" binpath = "build/pgcd/pgcd.elf" /> 236 </vseg> 237 <vseg name = "seg_stack" vbase = "0x00010000" mode = "C_WU" clusterid = "2" psegname = "PSEG_RAM" > 313 <vseg name = "seg_stack" vbase = "0x00700000" mode = "C_WU" x = "1" y = "0" psegname = "PSEG_RAM" > 238 314 <vobj name = "stack" type = "BUFFER" length = "0x00010000" /> 239 315 <vobj name = "heap" type = "BUFFER" length = "0x00010000" /> 240 316 </vseg> 241 317 242 <task name = "main_pgcd" clusterid = "2" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" />318 <task name = "main_pgcd" x = "1" y = "0" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" /> 243 319 </vspace> 244 320 245 321 <vspace name = "display" startname = "data" > 246 <vseg name = "seg_data" vbase = "0x00800000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" > 322 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" x = "1" y = "1" psegname = "PSEG_RAM" > 323 <vobj name = "code" type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" /> 324 </vseg> 325 <vseg name = "seg_data" vbase = "0x00500000" mode = "C_WU" x = "1" y = "1" psegname = "PSEG_RAM" > 247 326 <vobj name = "data" type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" /> 248 327 </vseg> 249 <vseg name = "seg_ptab" vbase = "0x00 300000" mode = "C___" clusterid = "3" psegname = "PSEG_RAM" >328 <vseg name = "seg_ptab" vbase = "0x00600000" mode = "C___" x = "1" y = "1" psegname = "PSEG_RAM" > 250 329 <vobj name = "ptab" type = "PTAB" length = "0x00012000" align = "13" /> 251 330 </vseg> 252 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" clusterid = "3" psegname = "PSEG_RAM" > 253 <vobj name = "code" type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" /> 254 </vseg> 255 <vseg name = "seg_stack" vbase = "0x00010000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" > 331 <vseg name = "seg_stack" vbase = "0x00700000" mode = "C_WU" x = "1" y = "1" psegname = "PSEG_RAM" > 256 332 <vobj name = "stack" type = "BUFFER" length = "0x00010000" /> 257 333 <vobj name = "heap" type = "BUFFER" length = "0x00010000" /> 258 334 </vseg> 259 335 260 <task name = "main_display" clusterid = "3" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" usefbdma = "1" />336 <task name = "main_display" x = "1" y = "1" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" usecma = "1" /> 261 337 </vspace> 338 262 339 </vspaceset> 263 340 </mapping_info>
Note: See TracChangeset
for help on using the changeset viewer.