source: soft/giet_vm/mappings/1c_4p_four.xml @ 241

Last change on this file since 241 was 235, checked in by cfuguet, 11 years ago

Changing irq type from "HARD" to "PTI" for the ISR_SWITCH

File size: 14.5 KB
Line 
1<?xml version="1.0"?>
2
3<mapping_info   signature = "0xdeadbeef" name = "1c_4p_four" cluster_x = "1" cluster_y = "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_GCD" type = "PERI" base = "0x00F50000" length = "0x00001000" /> 
25            <pseg name = "PSEG_COP" type = "PERI" base = "0x00F60000" length = "0x00001000" /> 
26            <pseg name = "PSEG_IOB" type = "PERI" base = "0x00FF0000" length = "0x00001000" /> 
27
28            <proc index = "0" >
29                <irq type = "PTI"  icuid = "0"  isr = "ISR_SWITCH" /> 
30                <irq type = "HARD" icuid = "8"  isr = "ISR_DMA" channel = "0" /> 
31                <irq type = "HARD" icuid = "9"  isr = "ISR_DMA" channel = "1" /> 
32                <irq type = "HARD" icuid = "10" isr = "ISR_DMA" channel = "2" /> 
33                <irq type = "HARD" icuid = "11" isr = "ISR_DMA" channel = "3" /> 
34                <irq type = "HARD" icuid = "12" isr = "ISR_DMA" channel = "4" /> 
35                <irq type = "HARD" icuid = "13" isr = "ISR_DMA" channel = "5" /> 
36                <irq type = "HARD" icuid = "14" isr = "ISR_DMA" channel = "6" /> 
37                <irq type = "HARD" icuid = "15" isr = "ISR_DMA" channel = "7" /> 
38                <irq type = "HARD" icuid = "16" isr = "ISR_TTY" channel = "0" /> 
39                <irq type = "HARD" icuid = "17" isr = "ISR_TTY" channel = "1" /> 
40                <irq type = "HARD" icuid = "18" isr = "ISR_TTY" channel = "2" /> 
41                <irq type = "HARD" icuid = "19" isr = "ISR_TTY" channel = "3" /> 
42                <irq type = "HARD" icuid = "20" isr = "ISR_TTY" channel = "4" /> 
43                <irq type = "HARD" icuid = "21" isr = "ISR_TTY" channel = "5" /> 
44                <irq type = "HARD" icuid = "22" isr = "ISR_TTY" channel = "6" /> 
45                <irq type = "HARD" icuid = "23" isr = "ISR_TTY" channel = "7" /> 
46                <irq type = "HARD" icuid = "24" isr = "ISR_TTY" channel = "8" /> 
47                <irq type = "HARD" icuid = "25" isr = "ISR_TTY" channel = "9" /> 
48                <irq type = "HARD" icuid = "26" isr = "ISR_TTY" channel = "10" /> 
49                <irq type = "HARD" icuid = "27" isr = "ISR_TTY" channel = "11" /> 
50                <irq type = "HARD" icuid = "28" isr = "ISR_TTY" channel = "12" /> 
51                <irq type = "HARD" icuid = "29" isr = "ISR_TTY" channel = "13" /> 
52                <irq type = "HARD" icuid = "30" isr = "ISR_TTY" channel = "14" /> 
53                <irq type = "HARD" icuid = "31" isr = "ISR_IOC" /> 
54            </proc>
55
56            <proc index = "1" >
57                <irq type = "PTI"  icuid = "1" isr = "ISR_SWITCH" />
58            </proc>
59
60            <proc index = "2" >
61                <irq type = "PTI"  icuid = "2" isr = "ISR_SWITCH" />
62            </proc>
63
64            <proc    index  = "3" >
65                <irq type = "PTI"  icuid = "3" isr = "ISR_SWITCH" />
66            </proc>
67
68            <periph type = "IOC" psegname = "PSEG_IOC" channels  = "1" /> 
69            <periph type = "NIC" psegname = "PSEG_NIC" channels  = "8" /> 
70            <periph type = "TTY" psegname = "PSEG_TTY" channels  = "8" /> 
71            <periph type = "DMA" psegname = "PSEG_DMA" channels  = "1" /> 
72            <periph type = "XICU" psegname = "PSEG_ICU" channels  = "5" /> 
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_gcd"          vbase = "0x00F50000" mode = "__W_" clusterid = "0" psegname = "PSEG_GCD" ident = "1" > 
128            <vobj name = "gcd"          type = "PERI" length  = "0x00001000" />
129        </vseg>
130        <vseg name = "seg_iob"          vbase = "0x00FF0000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOB" ident = "1" > 
131            <vobj name = "iob"          type = "PERI" length  = "0x00001000" />
132        </vseg>
133        <vseg name = "seg_nic"          vbase = "0x00FA0000" mode = "__W_" clusterid = "0" psegname = "PSEG_NIC" ident = "1" > 
134            <vobj name = "nic"          type = "PERI" length  = "0x00001000" />
135        </vseg>
136
137    </globalset> 
138
139    <vspaceset>
140
141        <vspace name = "router" startname = "data" >
142
143            <vseg name = "seg_data"     vbase = "0x00800000" mode = "__WU" clusterid = "0" psegname  = "PSEG_RAM" > 
144                <vobj name = "data"     type = "ELF" length = "0x00010000" binpath = "build/router/router.elf" /> 
145            </vseg>
146            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" > 
147                <vobj name = "code"     type = "ELF" length = "0x00010000" binpath = "build/router/router.elf" /> 
148            </vseg>
149            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" > 
150                <vobj name = "ptab"     type = "PTAB" length = "0x00012000" align   = "13" /> 
151            </vseg>
152            <vseg name = "seg_stack_p"  vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
153                <vobj name = "stack_p"  type = "BUFFER" length = "0x00010000" />
154                <vobj name = "heap_p"   type = "BUFFER" length = "0x00010000" />
155                           </vseg>
156            <vseg name = "seg_stack_c"  vbase = "0x00030000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
157                <vobj name = "stack_c"  type = "BUFFER" length = "0x00010000" />
158                <vobj name = "heap_c"   type = "BUFFER" length = "0x00010000" />
159                                                </vseg>
160            <vseg name = "seg_stack_rA" vbase = "0x00050000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
161                <vobj name = "stack_rA" type = "BUFFER" length = "0x00010000" /> 
162                <vobj name = "heap_rA"  type = "BUFFER" length = "0x00010000" />
163            </vseg>
164            <vseg name = "seg_stack_rB" vbase = "0x00070000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" >
165                <vobj name = "stack_rB" type = "BUFFER" length  = "0x00010000" /> 
166                <vobj name = "heap_rB"  type = "BUFFER" length = "0x00010000" />
167            </vseg>
168            <vseg name = "seg_mwmrs"    vbase = "0x00090000" mode = "__WU" clusterid = "0" psegname  = "PSEG_RAM" >
169                <vobj name = "mwmr_in"  type = "MWMR" length = "0x00000020" init = "1" />
170                <vobj name = "mwmr_out" type = "MWMR" length = "0x00000020" init = "1" />
171            </vseg>
172
173            <task name = "producer" clusterid = "0" proclocid = "0" stackname = "stack_p"  heapname = "heap_p"  startid = "0" usetty = "1" />
174            <task name = "consumer" clusterid = "0" proclocid = "1" stackname = "stack_c"  heapname = "heap_c"  startid = "1" usetty = "1" />
175            <task name = "router_A" clusterid = "0" proclocid = "2" stackname = "stack_rA" heapname = "heap_rA" startid = "2" usetty = "1" />
176            <task name = "router_B" clusterid = "0" proclocid = "3" stackname = "stack_rB" heapname = "heap_rB" startid = "2" usetty = "1" />
177
178        </vspace>
179
180        <vspace name = "hello" startname = "data" >
181
182            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
183                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/hello/hello.elf" />
184            </vseg>
185            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" > 
186                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/hello/hello.elf" />
187            </vseg>
188            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" > 
189                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
190            </vseg>
191            <vseg name = "seg_stack"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
192                <vobj name = "stack"    type = "BUFFER" length  = "0x00010000" />
193            </vseg>
194
195*** allocate NIC channel 2 => base = 0x00F80000 / offset = 0x8000
196
197            <vseg name = "seg_nic_2"    vbase = "0x00F88000" mode = "__WU" clusterid = "0" psegname  = "PSEG_NIC" ident = "1" >
198                <vobj name = "nic_2"    type = "BUFFER" length  = "0x00004000" />
199            </vseg>
200
201            <task name = "main" clusterid = "0" proclocid = "2" stackname = "stack" startid = "0" usetty = "1" />
202        </vspace>
203
204        <vspace name = "pgcd" startname = "data" >
205
206            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
207                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/pgcd/pgcd.elf" />
208            </vseg>
209            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" > 
210                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/pgcd/pgcd.elf" />
211            </vseg>
212            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" > 
213                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
214            </vseg>
215            <vseg name = "seg_stack"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
216                <vobj name = "stack"    type = "BUFFER" length  = "0x00010000" />
217            </vseg>
218
219            <task name = "main" clusterid = "0" proclocid = "3" stackname = "stack" startid = "0" usetty = "1" />
220        </vspace>
221
222        <vspace name = "display" startname = "data" >
223
224            <vseg name = "seg_data"     vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
225                <vobj name = "data"     type = "ELF" length    = "0x00010000" binpath = "build/display/display.elf" />
226            </vseg>
227            <vseg name = "seg_code"     vbase = "0x00400000" mode = "CX_U" clusterid = "0" psegname  = "PSEG_RAM" > 
228                <vobj name = "code"     type = "ELF" length    = "0x00010000" binpath = "build/display/display.elf" />
229            </vseg>
230            <vseg name = "seg_ptab"     vbase = "0x00300000" mode = "C___" clusterid = "0" psegname  = "PSEG_RAM" > 
231                <vobj name = "ptab"     type = "PTAB" length   = "0x00012000" align   = "13" />
232            </vseg>
233            <vseg name = "seg_stack"    vbase = "0x00010000" mode = "C_WU" clusterid = "0" psegname  = "PSEG_RAM" > 
234                <vobj name = "stack"    type = "BUFFER" length  = "0x00010000" />
235            </vseg>
236
237            <task name = "main" clusterid = "0" proclocid = "3" stackname = "stack" startid = "0" usetty = "1" usefbdma = "1" />
238        </vspace>
239
240    </vspaceset>
241</mapping_info>
Note: See TracBrowser for help on using the repository browser.