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

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