source: soft/giet_vm/mappings/4c_1p_display.xml @ 255

Last change on this file since 255 was 253, checked in by alain, 11 years ago

1/ introducing support to display images on the frame buffer
with the vci_chbuf_dma (in stdio.c and drivers.c)
2/ introducing support for mem_cache configuration segment
as the memory cache is considered as another addressable peripheral type
(in drivers.c)
3/ Introducing the new "increment" parameter in the mapping header.
This parameter define the virtual address increment for the vsegs
associated to the replicated peripherals (ICU, XICU, MDMA, TIMER, MMC).
This parameter is mandatory, and all map.xml files the "mappings"
directory have been updated.

File size: 14.8 KB
RevLine 
[218]1<?xml version="1.0"?>
2
[249]3<mapping_info signature    = "0xdeadbeef" 
4              name         = "4c_1p_40" 
5              cluster_x    = "2" 
6              cluster_y    = "2" 
[253]7              vspaces      = "1"
8              increment    = "0x10000 >
[218]9
[249]10*** This first section describes an instance of the "tsar_generic_iob" architecture
11*** with 4 clusters, 1 processor per cluster and 40 bits physical address.
12
[218]13    <clusterset>
14
15        <cluster index = "0" >
[249]16            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x0000000000" length = "0x0010000000" />
[253]17            <pseg name = "PSEG_XCU"  type = "PERI" base = "0x00B0000000" length = "0x0000002000" />
[249]18            <pseg name = "PSEG_DMA"  type = "PERI" base = "0x00B1000000" length = "0x0000008000" />
19            <pseg name = "PSEG_MMC"  type = "PERI" base = "0x00B2000000" length = "0x0000001000" />
[218]20
21*** Boot ROM and non replicated peripherals
22
[249]23            <pseg name = "PSEG_IOC"  type = "PERI" base = "0x00B3000000" length = "0x0000001000" /> 
24            <pseg name = "PSEG_TTY"  type = "PERI" base = "0x00B4000000" length = "0x0000001000" /> 
25            <pseg name = "PSEG_NIC"  type = "PERI" base = "0x00B5000000" length = "0x0000080000" />
26            <pseg name = "PSEG_CMA"  type = "PERI" base = "0x00B6000000" length = "0x0000008000" />
27            <pseg name = "PSEG_FBF"  type = "PERI" base = "0x00B7000000" length = "0x0000004000" /> 
28            <pseg name = "PSEG_IOB"  type = "PERI" base = "0x00BE000000" length = "0x0000100000" />
29            <pseg name = "PSEG_ROM"  type = "ROM"  base = "0x00BFC00000" length = "0x0000100000" />
[218]30
31            <proc index  = "0" >
32                <irq type = "HARD" icuid = "0"  isr = "ISR_SWITCH" /> 
33                <irq type = "HARD" icuid = "8"  isr = "ISR_DMA" channel = "0" /> 
34                <irq type = "HARD" icuid = "16" isr = "ISR_TTY" channel = "0" /> 
35                <irq type = "HARD" icuid = "17" isr = "ISR_TTY" channel = "1" /> 
36                <irq type = "HARD" icuid = "18" isr = "ISR_TTY" channel = "2" /> 
37                <irq type = "HARD" icuid = "19" isr = "ISR_TTY" channel = "3" /> 
38                <irq type = "HARD" icuid = "20" isr = "ISR_TTY" channel = "4" /> 
39                <irq type = "HARD" icuid = "21" isr = "ISR_TTY" channel = "5" /> 
40                <irq type = "HARD" icuid = "22" isr = "ISR_TTY" channel = "6" /> 
41                <irq type = "HARD" icuid = "23" isr = "ISR_TTY" channel = "7" /> 
42                <irq type = "HARD" icuid = "24" isr = "ISR_TTY" channel = "8" /> 
43                <irq type = "HARD" icuid = "25" isr = "ISR_TTY" channel = "9" />
44                <irq type = "HARD" icuid = "26" isr = "ISR_TTY" channel = "10" /> 
45                <irq type = "HARD" icuid = "27" isr = "ISR_TTY" channel = "11" /> 
46                <irq type = "HARD" icuid = "28" isr = "ISR_TTY" channel = "12" /> 
47                <irq type = "HARD" icuid = "29" isr = "ISR_TTY" channel = "13" /> 
48                <irq type = "HARD" icuid = "30" isr = "ISR_TTY" channel = "14" /> 
49                <irq type = "HARD" icuid = "31" isr = "ISR_IOC" /> 
50            </proc> 
51
[249]52            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "4"  /> 
[253]53            <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "18" />
[249]54            <periph type = "MMC"  psegname = "PSEG_MMC" channels = "1"  />
55            <periph type = "IOC"  psegname = "PSEG_IOC"  channels = "1"  /> 
56            <periph type = "TTY"  psegname = "PSEG_TTY"  channels = "8"  /> 
57            <periph type = "NIC"  psegname = "PSEG_NIC"  channels = "2"  />
58            <periph type = "CMA"  psegname = "PSEG_CMA"  channels = "4"  />
59            <periph type = "FBF"  psegname = "PSEG_FBF"  channels = "1"  />
60            <periph type = "IOB"  psegname = "PSEG_IOB"  channels = "1"  />
61        </cluster>
[218]62
[249]63        <cluster index = "1" >
64            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x4000000000" length = "0x0010000000" />
[253]65            <pseg name = "PSEG_XCU"  type = "PERI" base = "0x40B0000000" length = "0x0000002000" />
[249]66            <pseg name = "PSEG_DMA"  type = "PERI" base = "0x40B1000000" length = "0x0000008000" />
67            <pseg name = "PSEG_MMC"  type = "PERI" base = "0x40B2000000" length = "0x0000001000" />
68
69            <proc index = "0" >
70                <irq type = "HARD" icuid = "0"  isr = "ISR_SWITCH" />
71                <irq type = "HARD" icuid = "8"  isr = "ISR_DMA" channel = "0" />
72            </proc>
73
74            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "4" />
[253]75            <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "2" />
[249]76            <periph type = "MMC"  psegname = "PSEG_MMC"  channels = "1" />
[218]77        </cluster>
78
[249]79        <cluster index = "2" >
80            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x8000000000" length = "0x0010000000" />
[253]81            <pseg name = "PSEG_XCU"  type = "PERI" base = "0x80B0000000" length = "0x0000002000" />
[249]82            <pseg name = "PSEG_DMA"  type = "PERI" base = "0x80B1000000" length = "0x0000008000" />
83            <pseg name = "PSEG_MMC"  type = "PERI" base = "0x80B2000000" length = "0x0000001000" />
[218]84
85            <proc index = "0" >
86                <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" />
87                <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" />
88            </proc>
89
[249]90            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "4" />
[253]91            <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "2" />
[249]92            <periph type = "MMC"  psegname = "PSEG_MMC"  channels = "1" />
[218]93        </cluster>
[249]94
95        <cluster index = "3" >
96            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0xC000000000" length = "0x0010000000" />
[253]97            <pseg name = "PSEG_XCU"  type = "PERI" base = "0xC0B0000000" length = "0x0000002000" />
[249]98            <pseg name = "PSEG_DMA"  type = "PERI" base = "0xC0B1000000" length = "0x0000008000" />
99            <pseg name = "PSEG_MMC"  type = "PERI" base = "0xC0B2000000" length = "0x0000001000" />
100
101            <proc index = "0" >
102                <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" />
103                <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" />
104            </proc>
105
106            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "4" />
[253]107            <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "2" />
[249]108            <periph type = "MMC"  psegname = "PSEG_MMC"  channels = "1" />
109        </cluster>
110
[218]111    </clusterset>
112
113    <globalset> 
[249]114
115*** segments used by the boot code / A[31:28] = 0xB / Identity mapping
116
117        <vseg name = "seg_boot_code"      vbase = "0xBFC00000" mode = "CXW_" clusterid = "0" psegname = "PSEG_ROM" ident = "1" >
[218]118            <vobj name = "boot_code"      type = "ELF" length = "0x00008000" binpath    = "build/boot/boot.elf" />
119        </vseg>
[249]120        <vseg name = "seg_boot_data"      vbase = "0x00000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
121            <vobj name = "boot_data"      type = "ELF" length = "0x00001000" binpath    = "build/boot/boot.elf" />
[218]122        </vseg>
[249]123        <vseg name = "seg_boot_stack"     vbase = "0x00001000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
124            <vobj name = "boot_stack"     type = "BUFFER" length = "0x00003000" />
125        </vseg>
126        <vseg name = "seg_boot_mapping"   vbase = "0x00004000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
[218]127            <vobj name = "boot_mapping"   type = "BLOB" length  = "0x00004000" binpath  = "map.bin" />
128        </vseg>
129
[249]130*** segments for non replicated peripherals / A[31:28] = 0xB / Identity mapping
131
132        <vseg name = "seg_iob"            vbase = "0xBE000000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOB" ident = "1" >
133            <vobj name = "iob"            type = "PERI" length  = "0x00001000" /> 
134        </vseg>
135        <vseg name = "seg_ioc"            vbase = "0xB3000000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOC" ident = "1" >
136            <vobj name = "ioc"            type = "PERI" length  = "0x00001000" /> 
137        </vseg>
138        <vseg name = "seg_tty"            vbase = "0xB4000000" mode = "__W_" clusterid = "0" psegname = "PSEG_TTY" ident = "1" >
139                        <vobj name = "tty"            type = "PERI" length  = "0x00001000" />
140        </vseg>
141        <vseg name = "seg_nic"            vbase = "0xB5000000" mode = "__W_" clusterid = "0" psegname = "PSEG_NIC" ident = "1" >
142            <vobj name = "nic"            type = "PERI" length  = "0x00080000" /> 
143        </vseg>
144        <vseg name = "seg_cma"            vbase = "0xB6000000" mode = "__W_" clusterid = "0" psegname = "PSEG_CMA" ident = "1" >
145            <vobj name = "cma"            type = "PERI" length  = "0x00008000" /> 
146        </vseg>
147        <vseg name = "seg_fbf"            vbase = "0xB7000000" mode = "__W_" clusterid = "0" psegname = "PSEG_FBF" ident = "1" >
148            <vobj name = "fbf"            type = "PERI" length  = "0x00004000" /> 
149        </vseg>
150
151*** segments used by the kernel / A[31:28] = 0x8
[218]152 
153        <vseg name = "seg_kernel_code"    vbase = "0x80000000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" > 
154            <vobj name = "kernel_code"    type = "ELF" length = "0x00010000" binpath = "build/sys/sys.elf" />
155        </vseg>
[249]156        <vseg name = "seg_kernel_data"    vbase = "0x80020000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" > 
[218]157            <vobj name = "kernel_data"    type = "ELF" length = "0x00040000" binpath = "build/sys/sys.elf" />
158                </vseg>
159        <vseg name = "seg_kernel_uncdata" vbase = "0x80080000" mode = "__W_" clusterid = "0" psegname = "PSEG_RAM" > 
160            <vobj name = "kernel_uncdata" type = "ELF" length = "0x00010000" binpath = "build/sys/sys.elf" />
161        </vseg>
162        <vseg name = "seg_kernel_init"    vbase = "0x80090000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" > 
163            <vobj name  = "kernel_init"   type = "ELF" length = "0x00010000" binpath    = "build/sys/sys.elf" />
164        </vseg>
165
[253]166*** segments for replicated ICUS / A[31:28] = 0xE / Increment = 0x10000             
[218]167
[253]168        <vseg name = "seg_icu_0"          vbase = "0xE0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_XCU"  > 
[218]169            <vobj name = "icu_0"          type = "PERI" length  = "0x00001000" /> 
170        </vseg>
[253]171        <vseg name = "seg_icu_1"          vbase = "0xE0010000" mode = "__W_" clusterid = "1" psegname = "PSEG_XCU"  > 
[218]172            <vobj name = "icu_1"          type = "PERI" length  = "0x00001000" /> 
173        </vseg>
[253]174        <vseg name = "seg_icu_2"          vbase = "0xE0020000" mode = "__W_" clusterid = "2" psegname = "PSEG_XCU"  > 
[218]175            <vobj name = "icu_2"          type = "PERI" length  = "0x00001000" /> 
176        </vseg>
[253]177        <vseg name = "seg_icu_3"          vbase = "0xE0030000" mode = "__W_" clusterid = "3" psegname = "PSEG_XCU"  > 
[218]178            <vobj name = "icu_3"          type = "PERI" length  = "0x00001000" /> 
179        </vseg>
180
[253]181*** segments for replicated DMAs / A[31:28] = 0xD / Increment = 0x10000
[218]182
[249]183        <vseg name = "seg_dma_0"          vbase = "0xD0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_DMA" >
[218]184            <vobj name = "dma_0"          type = "PERI" length  = "0x00008000" />
185        </vseg>
[253]186        <vseg name = "seg_dma_1"          vbase = "0xD0010000" mode = "__W_" clusterid = "1" psegname = "PSEG_DMA" >
[218]187            <vobj name = "dma_1"          type = "PERI" length  = "0x00008000" />
188        </vseg>
[253]189        <vseg name = "seg_dma_2"          vbase = "0xD0020000" mode = "__W_" clusterid = "2" psegname = "PSEG_DMA" >
[218]190            <vobj name = "dma_2"          type = "PERI" length  = "0x00008000" />
191        </vseg>
[253]192        <vseg name = "seg_dma_3"          vbase = "0xD0030000" mode = "__W_" clusterid = "3" psegname = "PSEG_DMA" >
[218]193            <vobj name = "dma_3"          type = "PERI" length  = "0x00008000" />
194        </vseg>
[249]195
[253]196*** segments for replicated MMC / A[31:28] = 0xC / Increment = 0x10000
[249]197
198        <vseg name = "seg_memc_0"         vbase = "0xC0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_MMC" >
199            <vobj name = "memc_0"         type = "PERI" length  = "0x00001000" />
200        </vseg>
[253]201        <vseg name = "seg_memc_1"         vbase = "0xC0010000" mode = "__W_" clusterid = "1" psegname = "PSEG_MMC" >
[249]202            <vobj name = "memc_1"         type = "PERI" length  = "0x00001000" />
203        </vseg>
[253]204        <vseg name = "seg_memc_2"         vbase = "0xC0020000" mode = "__W_" clusterid = "2" psegname = "PSEG_MMC" >
[249]205            <vobj name = "memc_2"         type = "PERI" length  = "0x00001000" />
206        </vseg>
[253]207        <vseg name = "seg_memc_3"         vbase = "0xC0030000" mode = "__W_" clusterid = "3" psegname = "PSEG_MMC" >
[249]208            <vobj name = "memc_3"         type = "PERI" length  = "0x00001000" />
209        </vseg>
210
[253]211*** segments for replicated schedulers / A[31:28] = 0xF / Increment = 0x10000
[249]212
213        <vseg name = "seg_sched_0"        vbase = "0xF0000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" >
214            <vobj name = "sched_0"        type = "SCHED" length  = "0x00008000" />
215        </vseg>
[253]216        <vseg name = "seg_sched_1"        vbase = "0xF0010000" mode = "C_W_" clusterid = "1" psegname = "PSEG_RAM" >
[249]217            <vobj name = "sched_1"        type = "SCHED" length  = "0x00008000" />
218        </vseg>
[253]219        <vseg name = "seg_sched_2"        vbase = "0xF0020000" mode = "C_W_" clusterid = "2" psegname = "PSEG_RAM" >
[249]220            <vobj name = "sched_2"        type = "SCHED" length  = "0x00008000" />
221        </vseg>
[253]222        <vseg name = "seg_sched_3"        vbase = "0xF0030000" mode = "C_W_" clusterid = "3" psegname = "PSEG_RAM" >
[249]223            <vobj name = "sched_3"        type = "SCHED" length  = "0x00008000" />
224        </vseg>
[218]225***
226    </globalset> 
227
228    <vspaceset>
[249]229        <vspace name = "display" startname = "disp_data" >
230            <vseg name = "seg_data"        vbase = "0x00800000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" >
231                <vobj name = "disp_data"   type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" />
[218]232                        </vseg>
[249]233            <vseg name = "seg_code"        vbase = "0x00400000" mode = "CX_U" clusterid = "3" psegname = "PSEG_RAM" >
234                <vobj name = "disp_code"   type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" />
[218]235            </vseg>
[249]236            <vseg name = "seg_ptab"        vbase = "0x00300000" mode = "C___" clusterid = "3" psegname = "PSEG_RAM" >
237                <vobj name = "ptab"        type = "PTAB" length  = "0x00020000" align   = "13" />
[218]238            </vseg>
[249]239            <vseg name = "seg_stack"       vbase = "0x00010000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" >
240                <vobj name = "stack"       type = "BUFFER" length = "0x00010000" />
241                <vobj name = "heap"        type = "BUFFER" length = "0x00010000" />
[218]242            </vseg>
243
[249]244            <task name = "main_display" clusterid = "3" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" usedma = "1" />
[218]245        </vspace>
246    </vspaceset>
247</mapping_info>
Note: See TracBrowser for help on using the repository browser.