Changeset 249 for soft/giet_vm/mappings/4c_1p_display.xml
- Timestamp:
- Jul 18, 2013, 6:33:38 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/mappings/4c_1p_display.xml
r232 r249 1 1 <?xml version="1.0"?> 2 2 3 <mapping_info signature = "0xdeadbeef" name = "4c_1p_display" cluster_x = "2" cluster_y = "2" vspaces = "1" > 3 <mapping_info signature = "0xdeadbeef" 4 name = "4c_1p_40" 5 cluster_x = "2" 6 cluster_y = "2" 7 vspaces = "1"> 8 9 *** This first section describes an instance of the "tsar_generic_iob" architecture 10 *** with 4 clusters, 1 processor per cluster and 40 bits physical address. 4 11 5 12 <clusterset> 6 13 7 14 <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 = "0x00001000" /> 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 = "1" /> 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 = "0x00001000" /> 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 = "1" /> 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 = "0x00001000" /> 41 <pseg name = "PSEG_DMA" type = "PERI" base = "0x80F30000" length = "0x00008000" /> 15 <pseg name = "PSEG_RAM" type = "RAM" base = "0x0000000000" length = "0x0010000000" /> 16 <pseg name = "PSEG_XICU" type = "PERI" base = "0x00B0000000" length = "0x0000002000" /> 17 <pseg name = "PSEG_DMA" type = "PERI" base = "0x00B1000000" length = "0x0000008000" /> 18 <pseg name = "PSEG_MMC" type = "PERI" base = "0x00B2000000" length = "0x0000001000" /> 42 19 43 20 *** Boot ROM and non replicated peripherals 44 21 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" /> 22 <pseg name = "PSEG_IOC" type = "PERI" base = "0x00B3000000" length = "0x0000001000" /> 23 <pseg name = "PSEG_TTY" type = "PERI" base = "0x00B4000000" length = "0x0000001000" /> 24 <pseg name = "PSEG_NIC" type = "PERI" base = "0x00B5000000" length = "0x0000080000" /> 25 <pseg name = "PSEG_CMA" type = "PERI" base = "0x00B6000000" length = "0x0000008000" /> 26 <pseg name = "PSEG_FBF" type = "PERI" base = "0x00B7000000" length = "0x0000004000" /> 27 <pseg name = "PSEG_IOB" type = "PERI" base = "0x00BE000000" length = "0x0000100000" /> 28 <pseg name = "PSEG_ROM" type = "ROM" base = "0x00BFC00000" length = "0x0000100000" /> 50 29 51 30 <proc index = "0" > … … 70 49 </proc> 71 50 72 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 73 <periph type = "XICU" psegname = "PSEG_XICU" channels = "1" /> 74 <periph type = "IOC" psegname = "PSEG_IOC" channels = "1" /> 75 <periph type = "TTY" psegname = "PSEG_TTY" channels = "2" /> 76 <periph type = "NIC" psegname = "PSEG_NIC" channels = "8" /> 77 <periph type = "FBF" psegname = "PSEG_FBF" /> 78 79 </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" /> 51 <periph type = "DMA" psegname = "PSEG_DMA" channels = "4" /> 52 <periph type = "XICU" psegname = "PSEG_XICU" channels = "18" /> 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 = "IOB" psegname = "PSEG_IOB" channels = "1" /> 60 </cluster> 61 62 <cluster index = "1" > 63 <pseg name = "PSEG_RAM" type = "RAM" base = "0x4000000000" length = "0x0010000000" /> 64 <pseg name = "PSEG_XICU" type = "PERI" base = "0x40B0000000" length = "0x0000002000" /> 65 <pseg name = "PSEG_DMA" type = "PERI" base = "0x40B1000000" length = "0x0000008000" /> 66 <pseg name = "PSEG_MMC" type = "PERI" base = "0x40B2000000" length = "0x0000001000" /> 67 68 <proc index = "0" > 69 <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" /> 70 <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" /> 71 </proc> 72 73 <periph type = "DMA" psegname = "PSEG_DMA" channels = "4" /> 74 <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" /> 75 <periph type = "MMC" psegname = "PSEG_MMC" channels = "1" /> 76 </cluster> 77 78 <cluster index = "2" > 79 <pseg name = "PSEG_RAM" type = "RAM" base = "0x8000000000" length = "0x0010000000" /> 80 <pseg name = "PSEG_XICU" type = "PERI" base = "0x80B0000000" length = "0x0000002000" /> 81 <pseg name = "PSEG_DMA" type = "PERI" base = "0x80B1000000" length = "0x0000008000" /> 82 <pseg name = "PSEG_MMC" type = "PERI" base = "0x80B2000000" length = "0x0000001000" /> 85 83 86 84 <proc index = "0" > … … 89 87 </proc> 90 88 91 <periph type = "DMA" psegname = "PSEG_DMA" channels = "1" /> 92 <periph type = "XICU" psegname = "PSEG_XICU" channels = "1" /> 93 </cluster> 89 <periph type = "DMA" psegname = "PSEG_DMA" channels = "4" /> 90 <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" /> 91 <periph type = "MMC" psegname = "PSEG_MMC" channels = "1" /> 92 </cluster> 93 94 <cluster index = "3" > 95 <pseg name = "PSEG_RAM" type = "RAM" base = "0xC000000000" length = "0x0010000000" /> 96 <pseg name = "PSEG_XICU" type = "PERI" base = "0xC0B0000000" length = "0x0000002000" /> 97 <pseg name = "PSEG_DMA" type = "PERI" base = "0xC0B1000000" length = "0x0000008000" /> 98 <pseg name = "PSEG_MMC" type = "PERI" base = "0xC0B2000000" length = "0x0000001000" /> 99 100 <proc index = "0" > 101 <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" /> 102 <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" /> 103 </proc> 104 105 <periph type = "DMA" psegname = "PSEG_DMA" channels = "4" /> 106 <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" /> 107 <periph type = "MMC" psegname = "PSEG_MMC" channels = "1" /> 108 </cluster> 109 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" > 113 114 *** segments used by the boot code / A[31:28] = 0xB / Identity mapping 115 116 <vseg name = "seg_boot_code" vbase = "0xBFC00000" mode = "CXW_" clusterid = "0" psegname = "PSEG_ROM" ident = "1" > 98 117 <vobj name = "boot_code" type = "ELF" length = "0x00008000" binpath = "build/boot/boot.elf" /> 99 118 </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" > 119 <vseg name = "seg_boot_data" vbase = "0x00000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" > 120 <vobj name = "boot_data" type = "ELF" length = "0x00001000" binpath = "build/boot/boot.elf" /> 121 </vseg> 122 <vseg name = "seg_boot_stack" vbase = "0x00001000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" > 123 <vobj name = "boot_stack" type = "BUFFER" length = "0x00003000" /> 124 </vseg> 125 <vseg name = "seg_boot_mapping" vbase = "0x00004000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" > 104 126 <vobj name = "boot_mapping" type = "BLOB" length = "0x00004000" binpath = "map.bin" /> 105 127 </vseg> 106 128 107 *** On voudrait répliquer le segment de code du systÚme (seg_kernel_code) dans tous les clusters... 129 *** segments for non replicated peripherals / A[31:28] = 0xB / Identity mapping 130 131 <vseg name = "seg_iob" vbase = "0xBE000000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOB" ident = "1" > 132 <vobj name = "iob" type = "PERI" length = "0x00001000" /> 133 </vseg> 134 <vseg name = "seg_ioc" vbase = "0xB3000000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOC" ident = "1" > 135 <vobj name = "ioc" type = "PERI" length = "0x00001000" /> 136 </vseg> 137 <vseg name = "seg_tty" vbase = "0xB4000000" mode = "__W_" clusterid = "0" psegname = "PSEG_TTY" ident = "1" > 138 <vobj name = "tty" type = "PERI" length = "0x00001000" /> 139 </vseg> 140 <vseg name = "seg_nic" vbase = "0xB5000000" mode = "__W_" clusterid = "0" psegname = "PSEG_NIC" ident = "1" > 141 <vobj name = "nic" type = "PERI" length = "0x00080000" /> 142 </vseg> 143 <vseg name = "seg_cma" vbase = "0xB6000000" mode = "__W_" clusterid = "0" psegname = "PSEG_CMA" ident = "1" > 144 <vobj name = "cma" type = "PERI" length = "0x00008000" /> 145 </vseg> 146 <vseg name = "seg_fbf" vbase = "0xB7000000" mode = "__W_" clusterid = "0" psegname = "PSEG_FBF" ident = "1" > 147 <vobj name = "fbf" type = "PERI" length = "0x00004000" /> 148 </vseg> 149 150 *** segments used by the kernel / A[31:28] = 0x8 108 151 109 152 <vseg name = "seg_kernel_code" vbase = "0x80000000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" > 110 153 <vobj name = "kernel_code" type = "ELF" length = "0x00010000" binpath = "build/sys/sys.elf" /> 111 154 </vseg> 112 <vseg name = "seg_kernel_data" vbase = "0x800 10000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" >155 <vseg name = "seg_kernel_data" vbase = "0x80020000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" > 113 156 <vobj name = "kernel_data" type = "ELF" length = "0x00040000" binpath = "build/sys/sys.elf" /> 114 157 </vseg> … … 120 163 </vseg> 121 164 122 *** Non replicated peripherals 123 124 <vseg name = "seg_ioc" vbase = "0xbff10000" mode = "__W_" clusterid = "2" psegname = "PSEG_IOC" ident = "1" > 125 <vobj name = "ioc" type = "PERI" length = "0x00001000" /> 126 </vseg> 127 <vseg name = "seg_tty" vbase = "0xbff20000" mode = "__W_" clusterid = "2" psegname = "PSEG_TTY" ident = "1" > 128 <vobj name = "tty" type = "PERI" length = "0x00001000" /> 129 </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" > 165 *** segments for replicated ICUS / A[31:28] = 0xE / Increment = 0x100000 166 167 <vseg name = "seg_icu_0" vbase = "0xE0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_XICU" > 142 168 <vobj name = "icu_0" type = "PERI" length = "0x00001000" /> 143 169 </vseg> 144 <vseg name = "seg_icu_1" vbase = "0x 40f00000" mode = "__W_" clusterid = "1" psegname = "PSEG_XICU" >170 <vseg name = "seg_icu_1" vbase = "0xE0100000" mode = "__W_" clusterid = "1" psegname = "PSEG_XICU" > 145 171 <vobj name = "icu_1" type = "PERI" length = "0x00001000" /> 146 172 </vseg> 147 <vseg name = "seg_icu_2" vbase = "0x 80f00000" mode = "__W_" clusterid = "2" psegname = "PSEG_XICU" >173 <vseg name = "seg_icu_2" vbase = "0xE0200000" mode = "__W_" clusterid = "2" psegname = "PSEG_XICU" > 148 174 <vobj name = "icu_2" type = "PERI" length = "0x00001000" /> 149 175 </vseg> 150 <vseg name = "seg_icu_3" vbase = "0x c0f00000" mode = "__W_" clusterid = "3" psegname = "PSEG_XICU" >176 <vseg name = "seg_icu_3" vbase = "0xE0300000" mode = "__W_" clusterid = "3" psegname = "PSEG_XICU" > 151 177 <vobj name = "icu_3" type = "PERI" length = "0x00001000" /> 152 178 </vseg> 153 179 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 = "0x 00f30000" mode = "__W_" clusterid = "0" psegname = "PSEG_DMA" >180 *** segments for replicated DMAs / A[31:28] = 0xD / Increment = 0x100000 181 182 <vseg name = "seg_dma_0" vbase = "0xD0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_DMA" > 157 183 <vobj name = "dma_0" type = "PERI" length = "0x00008000" /> 158 184 </vseg> 159 <vseg name = "seg_dma_1" vbase = "0x 40f30000" mode = "__W_" clusterid = "1" psegname = "PSEG_DMA" >185 <vseg name = "seg_dma_1" vbase = "0xD0100000" mode = "__W_" clusterid = "1" psegname = "PSEG_DMA" > 160 186 <vobj name = "dma_1" type = "PERI" length = "0x00008000" /> 161 187 </vseg> 162 <vseg name = "seg_dma_2" vbase = "0x 80f30000" mode = "__W_" clusterid = "2" psegname = "PSEG_DMA" >188 <vseg name = "seg_dma_2" vbase = "0xD0200000" mode = "__W_" clusterid = "2" psegname = "PSEG_DMA" > 163 189 <vobj name = "dma_2" type = "PERI" length = "0x00008000" /> 164 190 </vseg> 165 <vseg name = "seg_dma_3" vbase = "0x c0f30000" mode = "__W_" clusterid = "3" psegname = "PSEG_DMA" >191 <vseg name = "seg_dma_3" vbase = "0xD0300000" mode = "__W_" clusterid = "3" psegname = "PSEG_DMA" > 166 192 <vobj name = "dma_3" type = "PERI" length = "0x00008000" /> 193 </vseg> 194 195 *** segments for replicated MMC / A[31:28] = 0xC / Increment = 0x100000 196 197 <vseg name = "seg_memc_0" vbase = "0xC0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_MMC" > 198 <vobj name = "memc_0" type = "PERI" length = "0x00001000" /> 199 </vseg> 200 <vseg name = "seg_memc_1" vbase = "0xC0100000" mode = "__W_" clusterid = "1" psegname = "PSEG_MMC" > 201 <vobj name = "memc_1" type = "PERI" length = "0x00001000" /> 202 </vseg> 203 <vseg name = "seg_memc_2" vbase = "0xC0200000" mode = "__W_" clusterid = "2" psegname = "PSEG_MMC" > 204 <vobj name = "memc_2" type = "PERI" length = "0x00001000" /> 205 </vseg> 206 <vseg name = "seg_memc_3" vbase = "0xC0300000" mode = "__W_" clusterid = "3" psegname = "PSEG_MMC" > 207 <vobj name = "memc_3" type = "PERI" length = "0x00001000" /> 208 </vseg> 209 210 *** segments for replicated schedulers / A[31:28] = 0xF / Increment = 0x100000 211 212 <vseg name = "seg_sched_0" vbase = "0xF0000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" > 213 <vobj name = "sched_0" type = "SCHED" length = "0x00008000" /> 214 </vseg> 215 <vseg name = "seg_sched_1" vbase = "0xF0100000" mode = "C_W_" clusterid = "1" psegname = "PSEG_RAM" > 216 <vobj name = "sched_1" type = "SCHED" length = "0x00008000" /> 217 </vseg> 218 <vseg name = "seg_sched_2" vbase = "0xF0200000" mode = "C_W_" clusterid = "2" psegname = "PSEG_RAM" > 219 <vobj name = "sched_2" type = "SCHED" length = "0x00008000" /> 220 </vseg> 221 <vseg name = "seg_sched_3" vbase = "0xF0300000" mode = "C_W_" clusterid = "3" psegname = "PSEG_RAM" > 222 <vobj name = "sched_3" type = "SCHED" length = "0x00008000" /> 167 223 </vseg> 168 224 *** … … 170 226 171 227 <vspaceset> 172 <vspace name = "display" startname = "d ata" >173 <vseg name = "seg_data" vbase = "0x00800000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" >174 <vobj name = "d ata"type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" />228 <vspace name = "display" startname = "disp_data" > 229 <vseg name = "seg_data" vbase = "0x00800000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" > 230 <vobj name = "disp_data" type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" /> 175 231 </vseg> 176 <vseg name = "seg_ ptab" vbase = "0x00300000" mode = "C___" clusterid = "3" psegname = "PSEG_RAM" >177 <vobj name = " ptab" type = "PTAB" length = "0x00012000" align = "13" />232 <vseg name = "seg_code" vbase = "0x00400000" mode = "CX_U" clusterid = "3" psegname = "PSEG_RAM" > 233 <vobj name = "disp_code" type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" /> 178 234 </vseg> 179 <vseg name = "seg_ code" vbase = "0x00400000" mode = "CX_U" clusterid = "3" psegname = "PSEG_RAM" >180 <vobj name = " code" type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" />235 <vseg name = "seg_ptab" vbase = "0x00300000" mode = "C___" clusterid = "3" psegname = "PSEG_RAM" > 236 <vobj name = "ptab" type = "PTAB" length = "0x00020000" align = "13" /> 181 237 </vseg> 182 <vseg name = "seg_stack" vbase = "0x00010000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" >183 <vobj name = "stack" type = "BUFFER" length = "0x00010000" />184 <vobj name = "heap" type= "BUFFER" length = "0x00010000" />238 <vseg name = "seg_stack" vbase = "0x00010000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" > 239 <vobj name = "stack" type = "BUFFER" length = "0x00010000" /> 240 <vobj name = "heap" type = "BUFFER" length = "0x00010000" /> 185 241 </vseg> 186 242 187 <task name = "main_display" clusterid = "3" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" use fbdma = "1" />243 <task name = "main_display" clusterid = "3" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" usedma = "1" /> 188 244 </vspace> 189 245 </vspaceset>
Note: See TracChangeset
for help on using the changeset viewer.