source: soft/giet_vm/1c_4p_four.xml @ 208

Last change on this file since 208 was 208, checked in by alain, 12 years ago

Introducing two mappings, for tsarv4_generic_mmu (4 clusters),
and caba_vgsb_xicu_mmu (mono cluster)

File size: 14.4 KB
Line 
1<?xml version="1.0"?>
2
3<mapping_info   signature = "0xdeadbeef" name = "1c_4p_four" clusters = "1" vspaces  = "4" >
4
5*** This section describes an instance of the "caba_vgsb_xicu_mmu" generic architecture
6*** containing 4 processors in one single cluster.
7
8    <clusterset>
9        <cluster index  = "0" >
10
11*** RAM, ROM and Peripherals used in the hardware architecture
12
13            <pseg name = "PSEG_RAM" type = "RAM"  base = "0x00000000" length = "0x00C00000" />
14            <pseg name = "PSEG_ROM" type = "ROM"  base = "0xBFC00000" length = "0x00010000" /> 
15            <pseg name = "PSEG_FBF" type = "PERI" base = "0x00D00000" length = "0x00200000" /> 
16            <pseg name = "PSEG_ICU" type = "PERI" base = "0x00F00000" length = "0x00001000" /> 
17            <pseg name = "PSEG_IOC" type = "PERI" base = "0x00F10000" length = "0x00001000" /> 
18            <pseg name = "PSEG_TTY" type = "PERI" base = "0x00F20000" length = "0x00001000" /> 
19            <pseg name = "PSEG_DMA" type = "PERI" base = "0x00F30000" length = "0x00008000" /> 
20            <pseg name = "PSEG_NIC" type = "PERI" base = "0x00F80000" length = "0x00021000" /> 
21             
22*** Peripherals unused in the hardware architecture
23
24            <pseg name = "PSEG_TIM" type = "PERI" base = "0x00F40000" length = "0x00001000" /> 
25            <pseg name = "PSEG_GCD" type = "PERI" base = "0x00F50000" length = "0x00001000" /> 
26            <pseg name = "PSEG_COP" type = "PERI" base = "0x00F60000" length = "0x00001000" /> 
27            <pseg name = "PSEG_IOB" type = "PERI" base = "0x00FF0000" length = "0x00001000" /> 
28
29            <proc index = "0" >
30                <irq type = "HARD" icuid = "0"  isr = "ISR_SWITCH" /> 
31                <irq type = "HARD" icuid = "8"  isr = "ISR_DMA" channel = "0" /> 
32                <irq type = "HARD" icuid = "9"  isr = "ISR_DMA" channel = "1" /> 
33                <irq type = "HARD" icuid = "10" isr = "ISR_DMA" channel = "2" /> 
34                <irq type = "HARD" icuid = "11" isr = "ISR_DMA" channel = "3" /> 
35                <irq type = "HARD" icuid = "12" isr = "ISR_DMA" channel = "4" /> 
36                <irq type = "HARD" icuid = "13" isr = "ISR_DMA" channel = "5" /> 
37                <irq type = "HARD" icuid = "14" isr = "ISR_DMA" channel = "6" /> 
38                <irq type = "HARD" icuid = "15" isr = "ISR_DMA" channel = "7" /> 
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                <irq type = "HARD" icuid = "24" isr = "ISR_TTY" channel = "8" /> 
48                <irq type = "HARD" icuid = "25" isr = "ISR_TTY" channel = "9" /> 
49                <irq type = "HARD" icuid = "26" isr = "ISR_TTY" channel = "10" /> 
50                <irq type = "HARD" icuid = "27" isr = "ISR_TTY" channel = "11" /> 
51                <irq type = "HARD" icuid = "28" isr = "ISR_TTY" channel = "12" /> 
52                <irq type = "HARD" icuid = "29" isr = "ISR_TTY" channel = "13" /> 
53                <irq type = "HARD" icuid = "30" isr = "ISR_TTY" channel = "14" /> 
54                <irq type = "HARD" icuid = "31" isr = "ISR_IOC" /> 
55            </proc>
56
57            <proc index = "1" >
58                <irq type = "HARD" icuid = "1" isr = "ISR_SWITCH" />
59            </proc>
60
61            <proc index = "2" >
62                <irq type = "HARD" icuid = "2" isr = "ISR_SWITCH" />
63            </proc>
64
65            <proc    index  = "3" >
66                <irq type = "HARD" icuid = "3" isr = "ISR_SWITCH" />
67            </proc>
68
69            <periph type = "IOC" psegname = "PSEG_IOC" channels  = "1" /> 
70            <periph type = "NIC" psegname = "PSEG_NIC" channels  = "8" /> 
71            <periph type = "TTY" psegname = "PSEG_TTY" channels  = "8" /> 
72            <periph type = "DMA" psegname = "PSEG_DMA" channels  = "1" /> 
73            <periph type = "FBF" psegname = "PSEG_FBF" /> 
74
75        </cluster>
76    </clusterset>
77
78    <globalset> 
79
80*** Global vsegs used in the boot phase
81
82        <vseg name = "seg_boot_code"    vbase = "0xBFC00000" mode = "CXW_" clusterid = "0" psegname = "PSEG_ROM" ident = "1" >
83            <vobj name = "boot_code"    type = "ELF" length  = "0x00010000" binpath = "build/boot/boot.elf" />
84        </vseg>
85        <vseg name = "seg_boot_stack"   vbase = "0xBFC08000" mode = "C_W_" clusterid = "0" psegname = "PSEG_ROM" ident = "1" > 
86            <vobj name = "boot_stack"   type = "BUFFER" length  = "0x00004000" />
87        </vseg>
88        <vseg name = "seg_boot_mapping" vbase = "0xBFC0c000" mode = "C_W_" clusterid = "0" psegname = "PSEG_ROM" ident = "1" > 
89            <vobj name = "boot_mapping" type = "BLOB" length  = "0x00004000" binpath    = "map.bin" />
90        </vseg>
91
92*** Global vsegs used by the kernel
93
94        <vseg name = "seg_kernel_code"  vbase = "0x80000000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" > 
95            <vobj name = "kernel_code"  type = "ELF" length  = "0x00010000" binpath     = "build/sys/sys.elf" /> 
96        </vseg>
97        <vseg name = "seg_kernel_data"  vbase = "0x80010000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" > 
98            <vobj name = "kernel_data"  type = "ELF" length  = "0x00010000" binpath     = "build/sys/sys.elf" /> 
99        </vseg>
100        <vseg name = "seg_kernel_unc"   vbase = "0x80080000" mode = "__W_" clusterid = "0" psegname = "PSEG_RAM" > 
101            <vobj name = "kernel_unc"   type = "ELF" length  = "0x00010000" binpath     = "build/sys/sys.elf" /> 
102        </vseg>
103        <vseg name = "seg_kernel_init"  vbase = "0x80090000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" > 
104            <vobj name = "kernel_init"  type = "ELF" length  = "0x00100000" binpath     = "build/sys/sys.elf" />
105        </vseg>
106
107*** Frame buffer (up to 2 Mbytes)
108
109        <vseg name = "seg_fbf"          vbase = "0x00D00000" mode = "__W_" clusterid = "0" psegname = "PSEG_FBF" ident = "1" > 
110            <vobj name = "fbf"          type = "PERI" length  = "0x00200000" /> 
111        </vseg>
112
113*** Peripherals (4 Kbytes per peripheral / 4 Kbytes per channel for the DMA / 16 Kbytes per channel + 4Kbytes for NIC
114
115        <vseg name = "seg_icu"          vbase = "0x00F00000" mode = "__W_" clusterid = "0" psegname = "PSEG_ICU" ident = "1" > 
116            <vobj name = "icu"          type = "PERI" length  = "0x00001000" /> 
117        </vseg>
118        <vseg name = "seg_ioc"          vbase = "0x00F10000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOC" ident = "1" > 
119            <vobj name = "ioc"          type = "PERI" length  = "0x00001000" /> 
120        </vseg>
121        <vseg name = "seg_tty"          vbase = "0x00F20000" mode = "__W_" clusterid = "0" psegname = "PSEG_TTY" ident = "1" > 
122            <vobj name = "tty"          type = "PERI" length  = "0x00001000" />
123        </vseg>
124        <vseg name = "seg_dma"          vbase = "0x00F30000" mode = "__W_" clusterid = "0" psegname = "PSEG_DMA" ident = "1" > 
125            <vobj name = "dma"          type = "PERI" length  = "0x00008000" /> 
126        </vseg>
127        <vseg name = "seg_tim"          vbase = "0x00F40000" mode = "__W_" clusterid = "0" psegname = "PSEG_TIM" ident = "1" > 
128            <vobj name = "tim"          type = "PERI" length  = "0x00001000" />
129        </vseg>
130        <vseg name = "seg_gcd"          vbase = "0x00F50000" mode = "__W_" clusterid = "0" psegname = "PSEG_GCD" ident = "1" > 
131            <vobj name = "gcd"          type = "PERI" length  = "0x00001000" />
132        </vseg>
133        <vseg name = "seg_iob"          vbase = "0x00FF0000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOB" ident = "1" > 
134            <vobj name = "iob"          type = "PERI" length  = "0x00001000" />
135        </vseg>
136        <vseg name = "seg_nic"          vbase = "0x00FA0000" mode = "__W_" clusterid = "0" psegname = "PSEG_NIC" ident = "1" > 
137            <vobj name = "nic"          type = "PERI" length  = "0x00001000" />
138        </vseg>
139
140    </globalset> 
141
142    <vspaceset>
143
144        <vspace name = "router" startname = "data" >
145
146            <vseg name = "seg_data"     vbase = "0x00800000" mode = "__WU" clusterid = "0" psegname  = "PSEG_RAM" > 
147                <vobj name = "data"     type = "ELF" length  = "0x00010000" binpath = "build/router/router.elf" /> 
148            </vseg>
149            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" > 
150                <vobj name = "code"     type = "ELF" length  = "0x00010000" binpath = "build/router/router.elf" /> 
151            </vseg>
152            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" > 
153                <vobj name = "ptab"     type = "PTAB" length  = "0x00012000" align   = "13" /> 
154            </vseg>
155            <vseg name = "seg_stack_p"  vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
156                <vobj name = "stack_p"  type = "BUFFER" length  = "0x00010000" />
157                        </vseg>
158            <vseg name = "seg_stack_c"  vbase = "0x00020000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
159                <vobj name = "stack_c"  type = "BUFFER" length  = "0x00010000" />
160                                                </vseg>
161            <vseg name = "seg_stack_rA" vbase = "0x00030000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
162                <vobj name = "stack_rA" type = "BUFFER" length  = "0x00010000" /> 
163            </vseg>
164            <vseg name = "seg_stack_rB" vbase = "0x00040000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
165                <vobj name = "stack_rB" type = "BUFFER" length  = "0x00010000" /> 
166            </vseg>
167            <vseg name = "seg_mwmrs"    vbase = "0x00050000" mode = "__WU" clusterid = "0" psegname  = "PSEG_RAM" >
168                <vobj name = "mwmr_in"  type = "MWMR" length  = "0x00000020" init = "1" />
169                <vobj name = "mwmr_out" type = "MWMR" length  = "0x00000020" init = "1" />
170            </vseg>
171
172            <task name = "producer" clusterid = "0" proclocid = "0" stackname = "stack_p"  startid = "0" usetty = "1" />
173            <task name = "consumer" clusterid = "0" proclocid = "1" stackname = "stack_c"  startid = "1" usetty = "1" />
174            <task name = "router_A" clusterid = "0" proclocid = "2" stackname = "stack_rA" startid = "2" usetty = "1" />
175            <task name = "router_B" clusterid = "0" proclocid = "3" stackname = "stack_rB" startid = "2" usetty = "1" />
176
177        </vspace>
178
179        <vspace name = "hello" startname = "data" >
180
181            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
182                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/hello/hello.elf" />
183            </vseg>
184            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" > 
185                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/hello/hello.elf" />
186            </vseg>
187            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" > 
188                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
189            </vseg>
190            <vseg name = "seg_stack"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
191                <vobj name = "stack"    type = "BUFFER" length  = "0x00010000" />
192            </vseg>
193
194*** allocate NIC channel 2 => base = 0x00F80000 / offset = 0x8000
195
196            <vseg name = "seg_nic_2"    vbase = "0x00F88000" mode = "__WU" clusterid = "0" psegname  = "PSEG_NIC" ident = "1" >
197                <vobj name = "nic_2"    type = "BUFFER" length  = "0x00004000" />
198            </vseg>
199
200            <task name = "main" clusterid = "0" proclocid = "2" stackname = "stack" startid = "0" usetty = "1" />
201        </vspace>
202
203        <vspace name = "pgcd" startname = "data" >
204
205            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
206                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/pgcd/pgcd.elf" />
207            </vseg>
208            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" > 
209                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/pgcd/pgcd.elf" />
210            </vseg>
211            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" > 
212                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
213            </vseg>
214            <vseg name = "seg_stack"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
215                <vobj name = "stack"    type = "BUFFER" length  = "0x00010000" />
216            </vseg>
217
218            <task name = "main" clusterid = "0" proclocid = "3" stackname = "stack" startid = "0" usetty = "1" />
219        </vspace>
220
221        <vspace name = "display" startname = "data" >
222
223            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
224                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/display/display.elf" />
225            </vseg>
226            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" > 
227                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/display/display.elf" />
228            </vseg>
229            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" > 
230                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
231            </vseg>
232            <vseg name = "seg_stack"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
233                <vobj name = "stack"    type = "BUFFER" length  = "0x00010000" />
234            </vseg>
235
236            <task name = "main" clusterid = "0" proclocid = "3" stackname = "stack" startid = "0" usetty = "1" usefbdma = "1" />
237        </vspace>
238
239    </vspaceset>
240</mapping_info>
Note: See TracBrowser for help on using the repository browser.