source: soft/giet_vm/mappings/1c_4p_four_dhrystone.xml @ 309

Last change on this file since 309 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: 12.1 KB
Line 
1<?xml version="1.0"?>
2
3<mapping_info   signature = "0xdeadbeef" 
4                name      = "1c_4p_four_dhrystone" 
5                cluster_x = "1" 
6                cluster_y = "1" 
7                vspaces   = "4" 
8                increment = "0x10000" >
9
10    <clusterset>
11        <cluster index  = "0" >
12
13*** RAM, ROM and Peripherals used in the hardware architecture
14
15            <pseg name = "PSEG_RAM"  type  = "RAM"  base = "0x0000000000" length = "0x0010000000" />
16            <pseg name = "PSEG_XCU"  type  = "PERI" base = "0x00B0000000" length = "0x0000001000" />
17            <pseg name = "PSEG_DMA"  type  = "PERI" base = "0x00B1000000" length = "0x0000001000" />
18            <pseg name = "PSEG_FBF"  type  = "PERI" base = "0x00B2000000" length = "0x0000200000" />
19            <pseg name = "PSEG_IOC"  type  = "PERI" base = "0x00B3000000" length = "0x0000001000" />
20            <pseg name = "PSEG_TTY"  type  = "PERI" base = "0x00B4000000" length = "0x0000001000" />
21            <pseg name = "PSEG_NIC"  type  = "PERI" base = "0x00B5000000" length = "0x0000021000" />
22            <pseg name = "PSEG_ROM"  type  = "ROM"  base = "0x00BFC00000" length = "0x0000100000" />
23
24            <proc index = "0" >
25                <irq type = "PTI"  icuid = "0"  isr = "ISR_SWITCH" />
26                <irq type = "HARD" icuid = "8"  isr = "ISR_DMA" channel = "0" />
27                <irq type = "HARD" icuid = "9"  isr = "ISR_DMA" channel = "1" />
28                <irq type = "HARD" icuid = "10" isr = "ISR_DMA" channel = "2" />
29                <irq type = "HARD" icuid = "11" isr = "ISR_DMA" channel = "3" />
30                <irq type = "HARD" icuid = "12" isr = "ISR_DMA" channel = "4" />
31                <irq type = "HARD" icuid = "13" isr = "ISR_DMA" channel = "5" />
32                <irq type = "HARD" icuid = "14" isr = "ISR_DMA" channel = "6" />
33                <irq type = "HARD" icuid = "15" isr = "ISR_DMA" channel = "7" />
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
52            <proc index = "1" >
53                <irq type = "PTI" icuid = "1" isr = "ISR_SWITCH" />
54            </proc>
55
56            <proc index = "2" >
57                <irq type = "PTI" icuid = "2" isr = "ISR_SWITCH" />
58            </proc>
59
60            <proc    index  = "3" >
61                <irq type = "PTI" icuid = "3" isr = "ISR_SWITCH" />
62            </proc>
63
64            <periph type = "IOC" psegname = "PSEG_IOC" channels  = "1" />
65            <periph type = "NIC" psegname = "PSEG_NIC" channels  = "8" />
66            <periph type = "TTY" psegname = "PSEG_TTY" channels  = "8" />
67            <periph type = "DMA" psegname = "PSEG_DMA" channels  = "1" />
68            <periph type = "XCU"  psegname = "PSEG_XCU"  channels  = "5" />
69            <periph type = "FBF" psegname = "PSEG_FBF" />
70
71        </cluster>
72    </clusterset>
73
74    <globalset>
75
76*** Global vsegs used in the boot phase
77
78        <vseg name = "seg_boot_code"    vbase = "0xBFC00000" mode = "CXW_" clusterid = "0" psegname = "PSEG_ROM" ident = "1" >
79            <vobj name = "boot_code"    type = "ELF" length  = "0x00008000" binpath = "build/boot/boot.elf" />
80        </vseg>
81        <vseg name = "seg_boot_mapping" vbase = "0xBFC08000" mode = "C_W_" clusterid = "0" psegname = "PSEG_ROM" ident = "1" >
82            <vobj name = "boot_mapping" type = "BLOB" length  = "0x00004000" binpath    = "map.bin" />
83        </vseg>
84        <vseg name = "seg_boot_stack"   vbase = "0x00000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
85            <vobj name = "boot_stack"   type = "BUFFER" length  = "0x00004000" />
86        </vseg>
87
88*** Global vsegs used by the kernel
89
90        <vseg name = "seg_kernel_code"  vbase = "0x80000000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" >
91            <vobj name = "kernel_code"  type = "ELF" length  = "0x00010000" binpath     = "build/sys/sys.elf" />
92        </vseg>
93        <vseg name = "seg_kernel_data"  vbase = "0x80020000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" >
94            <vobj name = "kernel_data"  type = "ELF" length  = "0x00040000" binpath     = "build/sys/sys.elf" />
95        </vseg>
96        <vseg name = "seg_kernel_uncdata"   vbase = "0x80080000" mode = "__W_" clusterid = "0" psegname = "PSEG_RAM" >
97            <vobj name = "kernel_uncdata"   type = "ELF" length  = "0x00010000" binpath = "build/sys/sys.elf" />
98        </vseg>
99        <vseg name = "seg_kernel_init"  vbase = "0x80090000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" >
100            <vobj name = "kernel_init"  type = "ELF" length  = "0x00010000" binpath     = "build/sys/sys.elf" />
101        </vseg>
102
103*** Frame buffer (up to 2 Mbytes)
104
105        <vseg name = "seg_fbf"            vbase = "0xB2000000" mode = "__W_" clusterid = "0" psegname = "PSEG_FBF" ident = "1" >
106            <vobj name = "fbf"            type = "PERI" length  = "0x00004000" />
107        </vseg>
108
109*** XICU / A[31:28] = 0xE
110        <vseg name = "seg_icu"          vbase = "0xE0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_XCU"  >
111            <vobj name = "icu"          type = "PERI" length  = "0x00001000" />
112        </vseg>
113
114*** ioc
115        <vseg name = "seg_ioc"            vbase = "0xB3000000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOC" ident = "1" >
116            <vobj name = "ioc"            type = "PERI" length  = "0x00001000" />
117        </vseg>
118
119*** tty
120        <vseg name = "seg_tty"            vbase = "0xB4000000" mode = "__W_" clusterid = "0" psegname = "PSEG_TTY" ident = "1" >
121                        <vobj name = "tty"            type = "PERI" length  = "0x00001000" />
122        </vseg>
123
124*** DMA / A[31:28] = 0xD
125        <vseg name = "seg_dma"          vbase = "0xD0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_DMA" >
126            <vobj name = "dma"          type = "PERI" length  = "0x00001000" />
127        </vseg>
128
129*** Replicated schedulers / A[31:28] = 0xF
130        <vseg name = "seg_sched"        vbase = "0xF0000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" >
131            <vobj name = "sched"      type = "SCHED" length  = "0x00004000" />
132        </vseg>
133
134    </globalset>
135
136    <vspaceset>
137
138        <vspace name = "dhrystone_0" startname = "data" >
139            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
140                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/dhrystone/dhrystone.elf" />
141            </vseg>
142            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" >
143                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/dhrystone/dhrystone.elf" />
144            </vseg>
145            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" >
146                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
147            </vseg>
148            <vseg name = "seg_stack_heap"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
149                <vobj name = "stack" type = "BUFFER" length  = "0x00010000" />
150                <vobj name = "heap"  type = "BUFFER" length  = "0x00010000" />
151            </vseg>
152            <task name = "main" clusterid = "0" proclocid = "0" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" />
153        </vspace>
154
155        <vspace name = "dhrystone_1" startname = "data" >
156            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
157                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/dhrystone/dhrystone.elf" />
158            </vseg>
159            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" >
160                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/dhrystone/dhrystone.elf" />
161            </vseg>
162            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" >
163                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
164            </vseg>
165            <vseg name = "seg_stack_heap"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
166                <vobj name = "stack" type = "BUFFER" length  = "0x00010000" />
167                <vobj name = "heap"  type = "BUFFER" length  = "0x00010000" />
168            </vseg>
169            <task name = "main" clusterid = "0" proclocid = "1" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" />
170        </vspace>
171
172        <vspace name = "dhrystone_2" startname = "data" >
173            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
174                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/dhrystone/dhrystone.elf" />
175            </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/dhrystone/dhrystone.elf" />
178            </vseg>
179            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" >
180                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
181            </vseg>
182            <vseg name = "seg_stack_heap"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
183                <vobj name = "stack" type = "BUFFER" length  = "0x00010000" />
184                <vobj name = "heap"  type = "BUFFER" length  = "0x00010000" />
185            </vseg>
186            <task name = "main" clusterid = "0" proclocid = "2" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" />
187        </vspace>
188
189        <vspace name = "dhrystone_3" startname = "data" >
190            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
191                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/dhrystone/dhrystone.elf" />
192            </vseg>
193            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" >
194                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/dhrystone/dhrystone.elf" />
195            </vseg>
196            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" >
197                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
198            </vseg>
199            <vseg name = "seg_stack_heap"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
200                <vobj name = "stack" type = "BUFFER" length  = "0x00010000" />
201                <vobj name = "heap"  type = "BUFFER" length  = "0x00010000" />
202            </vseg>
203            <task name = "main" clusterid = "0" proclocid = "3" stackname = "stack" heapname = "heap" startid = "0" usetty = "1" />
204        </vspace>
205
206    </vspaceset>
207</mapping_info>
Note: See TracBrowser for help on using the repository browser.