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

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

Introducing support for Network controller

File size: 11.0 KB
Line 
1<?xml version="1.0"?>
2
3<mapping_info signature = "0xdeadbeef" name = "4c_1p_display" cluster_x = "2" cluster_y = "2" vspaces = "1" >
4
5    <clusterset>
6
7        <cluster index = "0" >
8
9            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x00000000" length = "0x00C00000" />
10            <pseg name = "PSEG_XICU" type = "PERI" base = "0x00F00000" length = "0x00001000" />
11            <pseg name = "PSEG_DMA"  type = "PERI" base = "0x00F30000" length = "0x00008000" />
12
13            <proc index = "0" >
14                <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" />
15                <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" />
16            </proc>
17
18            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "1" />
19            <periph type = "XICU" psegname = "PSEG_XICU" channels = "1" />
20
21        </cluster>
22        <cluster index = "1" >
23
24            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x40000000" length = "0x00C00000" />
25            <pseg name = "PSEG_XICU" type = "PERI" base = "0x40F00000" length = "0x00001000" />
26            <pseg name = "PSEG_DMA"  type = "PERI" base = "0x40F30000" length = "0x00008000" />
27
28            <proc index = "0" >
29                <irq type = "HARD" icuid = "0"  isr = "ISR_SWITCH" />
30                <irq type = "HARD" icuid = "8"  isr = "ISR_DMA" channel = "0" />
31            </proc>
32
33            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "1" />
34            <periph type = "XICU" psegname = "PSEG_XICU" channels = "1" />
35
36        </cluster>
37        <cluster index = "2" >
38
39            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x80000000" length = "0x00C00000" /> 
40            <pseg name = "PSEG_XICU" type = "PERI" base = "0x80F00000" length = "0x00001000" />
41            <pseg name = "PSEG_DMA"  type = "PERI" base = "0x80F30000" length = "0x00008000" />
42
43*** Boot ROM and non replicated peripherals
44
45            <pseg name = "PSEG_FBF"  type = "PERI" base = "0xBFD00000" length = "0x00200000" /> 
46            <pseg name = "PSEG_TTY"  type = "PERI" base = "0xBFF20000" length = "0x00001000" /> 
47            <pseg name = "PSEG_IOC"  type = "PERI" base = "0xBFF10000" length = "0x00001000" /> 
48            <pseg name = "PSEG_NIC"  type = "PERI" base = "0xBFF80000" length = "0x00021000" />
49            <pseg name = "PSEG_ROM"  type = "ROM"  base = "0xBFC00000" length = "0x00100000" />
50
51            <proc index  = "0" >
52                <irq type = "HARD" icuid = "0"  isr = "ISR_SWITCH" /> 
53                <irq type = "HARD" icuid = "8"  isr = "ISR_DMA" channel = "0" /> 
54                <irq type = "HARD" icuid = "16" isr = "ISR_TTY" channel = "0" /> 
55                <irq type = "HARD" icuid = "17" isr = "ISR_TTY" channel = "1" /> 
56                <irq type = "HARD" icuid = "18" isr = "ISR_TTY" channel = "2" /> 
57                <irq type = "HARD" icuid = "19" isr = "ISR_TTY" channel = "3" /> 
58                <irq type = "HARD" icuid = "20" isr = "ISR_TTY" channel = "4" /> 
59                <irq type = "HARD" icuid = "21" isr = "ISR_TTY" channel = "5" /> 
60                <irq type = "HARD" icuid = "22" isr = "ISR_TTY" channel = "6" /> 
61                <irq type = "HARD" icuid = "23" isr = "ISR_TTY" channel = "7" /> 
62                <irq type = "HARD" icuid = "24" isr = "ISR_TTY" channel = "8" /> 
63                <irq type = "HARD" icuid = "25" isr = "ISR_TTY" channel = "9" />
64                <irq type = "HARD" icuid = "26" isr = "ISR_TTY" channel = "10" /> 
65                <irq type = "HARD" icuid = "27" isr = "ISR_TTY" channel = "11" /> 
66                <irq type = "HARD" icuid = "28" isr = "ISR_TTY" channel = "12" /> 
67                <irq type = "HARD" icuid = "29" isr = "ISR_TTY" channel = "13" /> 
68                <irq type = "HARD" icuid = "30" isr = "ISR_TTY" channel = "14" /> 
69                <irq type = "HARD" icuid = "31" isr = "ISR_IOC" /> 
70            </proc> 
71
72            <periph type = "DMA"  psegname = "PSEG_DMA" channels = "1" /> 
73            <periph type = "XICU" psegname = "PSEG_XICU" channels = "1" />
74            <periph type = "IOC"  psegname = "PSEG_IOC" channels = "1" /> 
75            <periph type = "TTY"  psegname = "PSEG_TTY" channels = "2" /> 
76            <periph type = "NIC"  psegname = "PSEG_NIC" channels = "8" />
77            <periph type = "FBF"  psegname = "PSEG_FBF" />
78
79        </cluster>
80        <cluster index = "3" >
81
82            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0xC0000000" length = "0x00C00000" />
83            <pseg name = "PSEG_XICU" type = "PERI" base = "0xC0F00000" length = "0x00001000" />
84            <pseg name = "PSEG_DMA"  type = "PERI" base = "0xC0F30000" length = "0x00008000" />
85
86            <proc index = "0" >
87                <irq type = "HARD" icuid = "0" isr = "ISR_SWITCH" />
88                <irq type = "HARD" icuid = "8" isr = "ISR_DMA" channel = "0" />
89            </proc>
90
91            <periph type = "DMA"  psegname = "PSEG_DMA" channels = "1" /> 
92            <periph type = "XICU" psegname = "PSEG_XICU" channels = "1" />
93        </cluster>
94    </clusterset>
95
96    <globalset> 
97        <vseg name = "seg_boot_code"      vbase = "0xbfc00000" mode = "CXW_" clusterid = "2" psegname = "PSEG_ROM" ident = "1" >
98            <vobj name = "boot_code"      type = "ELF" length = "0x00008000" binpath    = "build/boot/boot.elf" />
99        </vseg>
100        <vseg name = "seg_boot_stack"     vbase = "0xbfc08000" mode = "C_W_" clusterid = "2" psegname = "PSEG_ROM" ident = "1" >
101            <vobj name = "boot_stack"     type = "BUFFER" length = "0x00004000" />
102        </vseg>
103        <vseg name = "seg_boot_mapping"   vbase = "0xbfc0c000" mode = "C_W_" clusterid = "2" psegname = "PSEG_ROM" ident = "1" >
104            <vobj name = "boot_mapping"   type = "BLOB" length  = "0x00004000" binpath  = "map.bin" />
105        </vseg>
106
107*** On voudrait répliquer le segment de code du systÚme (seg_kernel_code) dans tous les clusters...
108 
109        <vseg name = "seg_kernel_code"    vbase = "0x80000000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" > 
110            <vobj name = "kernel_code"    type = "ELF" length = "0x00010000" binpath = "build/sys/sys.elf" />
111        </vseg>
112        <vseg name = "seg_kernel_data"    vbase = "0x80010000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" > 
113            <vobj name = "kernel_data"    type = "ELF" length = "0x00040000" binpath = "build/sys/sys.elf" />
114                </vseg>
115        <vseg name = "seg_kernel_uncdata" vbase = "0x80080000" mode = "__W_" clusterid = "0" psegname = "PSEG_RAM" > 
116            <vobj name = "kernel_uncdata" type = "ELF" length = "0x00010000" binpath = "build/sys/sys.elf" />
117        </vseg>
118        <vseg name = "seg_kernel_init"    vbase = "0x80090000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" > 
119            <vobj name  = "kernel_init"   type = "ELF" length = "0x00010000" binpath    = "build/sys/sys.elf" />
120        </vseg>
121
122*** Non replicated peripherals
123
124        <vseg name = "seg_ioc"            vbase = "0xbff10000" mode = "__W_" clusterid = "2" psegname = "PSEG_IOC" ident = "1" >
125            <vobj name = "ioc"            type = "PERI" length  = "0x00001000" /> 
126        </vseg>
127        <vseg name = "seg_tty"            vbase = "0xbff20000" mode = "__W_" clusterid = "2" psegname = "PSEG_TTY" ident = "1" >
128                        <vobj name = "tty"            type = "PERI" length  = "0x00001000" />
129        </vseg>
130        <vseg name = "seg_fbf"            vbase = "0xbfd00000" mode = "__W_" clusterid = "2" psegname = "PSEG_FBF" ident = "1" >
131            <vobj name = "fbf"            type = "PERI" length  = "0x00200000" /> 
132        </vseg>
133        <vseg name = "seg_nic"            vbase = "0xbff80000" mode = "__W_" clusterid = "2" psegname = "PSEG_NIC" ident = "1" >
134            <vobj name = "nic"            type = "PERI" length  = "0x00021000" /> 
135        </vseg>
136
137*** On pourrait supprimer les vsegs associés aux composants XICU en les traitant comme les schedulers :
138*** accÚs en addresse physique et stockage de l'adresse de base de chaque XICU dans chaque processeur.
139*** On peut aussi définir un vseg factorisé en introduisant le CLUSTER_SIZE...
140
141        <vseg name = "seg_icu_0"          vbase = "0x00f00000" mode = "__W_" clusterid = "0" psegname = "PSEG_XICU" > 
142            <vobj name = "icu_0"          type = "PERI" length  = "0x00001000" /> 
143        </vseg>
144        <vseg name = "seg_icu_1"          vbase = "0x40f00000" mode = "__W_" clusterid = "1" psegname = "PSEG_XICU" > 
145            <vobj name = "icu_1"          type = "PERI" length  = "0x00001000" /> 
146        </vseg>
147        <vseg name = "seg_icu_2"          vbase = "0x80f00000" mode = "__W_" clusterid = "2" psegname = "PSEG_XICU" > 
148            <vobj name = "icu_2"          type = "PERI" length  = "0x00001000" /> 
149        </vseg>
150        <vseg name = "seg_icu_3"          vbase = "0xc0f00000" mode = "__W_" clusterid = "3" psegname = "PSEG_XICU" > 
151            <vobj name = "icu_3"          type = "PERI" length  = "0x00001000" /> 
152        </vseg>
153
154*** Il faudrait trouver un moyen de supprimer les vsegs associés aux composants DMA distribués, ou de les factoriser...
155
156        <vseg name = "seg_dma_0"          vbase = "0x00f30000" mode = "__W_" clusterid = "0" psegname = "PSEG_DMA" >
157            <vobj name = "dma_0"          type = "PERI" length  = "0x00008000" />
158        </vseg>
159        <vseg name = "seg_dma_1"          vbase = "0x40f30000" mode = "__W_" clusterid = "1" psegname = "PSEG_DMA" >
160            <vobj name = "dma_1"          type = "PERI" length  = "0x00008000" />
161        </vseg>
162        <vseg name = "seg_dma_2"          vbase = "0x80f30000" mode = "__W_" clusterid = "2" psegname = "PSEG_DMA" >
163            <vobj name = "dma_2"          type = "PERI" length  = "0x00008000" />
164        </vseg>
165        <vseg name = "seg_dma_3"          vbase = "0xc0f30000" mode = "__W_" clusterid = "3" psegname = "PSEG_DMA" >
166            <vobj name = "dma_3"          type = "PERI" length  = "0x00008000" />
167        </vseg>
168***
169    </globalset> 
170
171    <vspaceset>
172        <vspace name = "display" startname = "data" >
173            <vseg name = "seg_data"        vbase = "0x00800000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" >
174                <vobj name = "data"        type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" />
175                        </vseg>
176            <vseg name = "seg_ptab"        vbase = "0x00300000" mode = "C___" clusterid = "3" psegname = "PSEG_RAM" >
177                <vobj name = "ptab"        type = "PTAB" length  = "0x00012000" align   = "13" />
178            </vseg>
179            <vseg name = "seg_code"        vbase = "0x00400000" mode = "CX_U" clusterid = "3" psegname = "PSEG_RAM" >
180                <vobj name = "code"        type = "ELF" length = "0x00010000" binpath = "build/display/display.elf" />
181            </vseg>
182            <vseg name = "seg_stack"       vbase = "0x00010000" mode = "C_WU" clusterid = "3" psegname = "PSEG_RAM" >
183                <vobj name = "stack"       type = "BUFFER" length = "0x00010000" />
184            </vseg>
185
186            <task name = "main_display" clusterid = "3" proclocid = "0" stackname = "stack" startid = "0" usetty = "1" usefbdma = "1" />
187        </vspace>
188    </vspaceset>
189</mapping_info>
Note: See TracBrowser for help on using the repository browser.