source: soft/giet_vm/mappings/1c_4p_gameoflife.xml @ 295

Last change on this file since 295 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: 9.8 KB
Line 
1<?xml version="1.0"?>
2
3<mapping_info   signature = "0xdeadbeef" 
4                name      = "1c_4p_gameoflife" 
5                cluster_x = "1" 
6                cluster_y = "1" 
7                vspaces   = "1"
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*** Peripherals unused in the hardware architecture
25
26
27            <proc index = "0" >
28                <irq type = "PTI"  icuid = "0"  isr = "ISR_SWITCH" /> 
29                <irq type = "HARD" icuid = "8"  isr = "ISR_DMA" channel = "0" /> 
30                <irq type = "HARD" icuid = "9"  isr = "ISR_DMA" channel = "1" /> 
31                <irq type = "HARD" icuid = "10" isr = "ISR_DMA" channel = "2" /> 
32                <irq type = "HARD" icuid = "11" isr = "ISR_DMA" channel = "3" /> 
33                <irq type = "HARD" icuid = "12" isr = "ISR_DMA" channel = "4" /> 
34                <irq type = "HARD" icuid = "13" isr = "ISR_DMA" channel = "5" /> 
35                <irq type = "HARD" icuid = "14" isr = "ISR_DMA" channel = "6" /> 
36                <irq type = "HARD" icuid = "15" isr = "ISR_DMA" channel = "7" /> 
37                <irq type = "HARD" icuid = "16" isr = "ISR_TTY" channel = "0" /> 
38                <irq type = "HARD" icuid = "17" isr = "ISR_TTY" channel = "1" /> 
39                <irq type = "HARD" icuid = "18" isr = "ISR_TTY" channel = "2" /> 
40                <irq type = "HARD" icuid = "19" isr = "ISR_TTY" channel = "3" /> 
41                <irq type = "HARD" icuid = "20" isr = "ISR_TTY" channel = "4" /> 
42                <irq type = "HARD" icuid = "21" isr = "ISR_TTY" channel = "5" /> 
43                <irq type = "HARD" icuid = "22" isr = "ISR_TTY" channel = "6" /> 
44                <irq type = "HARD" icuid = "23" isr = "ISR_TTY" channel = "7" /> 
45                <irq type = "HARD" icuid = "24" isr = "ISR_TTY" channel = "8" /> 
46                <irq type = "HARD" icuid = "25" isr = "ISR_TTY" channel = "9" /> 
47                <irq type = "HARD" icuid = "26" isr = "ISR_TTY" channel = "10" /> 
48                <irq type = "HARD" icuid = "27" isr = "ISR_TTY" channel = "11" /> 
49                <irq type = "HARD" icuid = "28" isr = "ISR_TTY" channel = "12" /> 
50                <irq type = "HARD" icuid = "29" isr = "ISR_TTY" channel = "13" /> 
51                <irq type = "HARD" icuid = "30" isr = "ISR_TTY" channel = "14" /> 
52                <irq type = "HARD" icuid = "31" isr = "ISR_IOC" /> 
53            </proc>
54
55            <proc index = "1" >
56                <irq type = "PTI" icuid = "1" isr = "ISR_SWITCH" />
57            </proc>
58
59            <proc index = "2" >
60                <irq type = "PTI" icuid = "2" isr = "ISR_SWITCH" />
61            </proc>
62
63            <proc    index  = "3" >
64                <irq type = "PTI" icuid = "3" isr = "ISR_SWITCH" />
65            </proc>
66
67            <periph type = "IOC" psegname = "PSEG_IOC" channels  = "1" /> 
68            <periph type = "NIC" psegname = "PSEG_NIC" channels  = "8" /> 
69            <periph type = "TTY" psegname = "PSEG_TTY" channels  = "2" /> 
70            <periph type = "DMA" psegname = "PSEG_DMA" channels  = "1" /> 
71            <periph type = "XCU" psegname = "PSEG_XCU" channels  = "5" /> 
72            <periph type = "FBF" psegname = "PSEG_FBF" /> 
73
74        </cluster>
75    </clusterset>
76
77    <globalset> 
78
79*** Global vsegs used in the boot phase
80
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 = "0x00008000" binpath    = "build/boot/boot.elf" />
84        </vseg>
85        <vseg name = "seg_boot_data"      vbase = "0x00000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
86            <vobj name = "boot_data"      type = "ELF" length = "0x00001000" binpath    = "build/boot/boot.elf" />
87        </vseg>
88        <vseg name = "seg_boot_stack"     vbase = "0x00001000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
89            <vobj name = "boot_stack"     type = "BUFFER" length = "0x00003000" />
90        </vseg>
91        <vseg name = "seg_boot_mapping"   vbase = "0x00004000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
92            <vobj name = "boot_mapping"   type = "BLOB" length  = "0x00004000" binpath  = "map.bin" />
93        </vseg>
94
95*** Global vsegs used by the kernel
96
97        <vseg name = "seg_kernel_code"  vbase = "0x80000000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" >
98            <vobj name = "kernel_code"  type = "ELF" length  = "0x00010000" binpath     = "build/sys/sys.elf" />
99        </vseg>
100        <vseg name = "seg_kernel_data"  vbase = "0x80020000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" >
101            <vobj name = "kernel_data"  type = "ELF" length  = "0x00040000" binpath     = "build/sys/sys.elf" />
102        </vseg>
103        <vseg name = "seg_kernel_uncdata"   vbase = "0x80080000" mode = "__W_" clusterid = "0" psegname = "PSEG_RAM" >
104            <vobj name = "kernel_uncdata"   type = "ELF" length  = "0x00010000" binpath = "build/sys/sys.elf" />
105        </vseg>
106        <vseg name = "seg_kernel_init"  vbase = "0x80090000" mode = "CX__" clusterid = "0" psegname = "PSEG_RAM" >
107            <vobj name = "kernel_init"  type = "ELF" length  = "0x00010000" binpath     = "build/sys/sys.elf" />
108        </vseg>
109
110*** Frame buffer (up to 2 Mbytes)
111
112        <vseg name = "seg_fbf"            vbase = "0xB2000000" mode = "__W_" clusterid = "0" psegname = "PSEG_FBF" ident = "1" >
113            <vobj name = "fbf"            type = "PERI" length  = "0x00004000" />
114        </vseg>
115
116*** XCU / A[31:28] = 0xE
117        <vseg name = "seg_icu"          vbase = "0xE0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_XCU"  >
118            <vobj name = "icu"          type = "PERI" length  = "0x00001000" />
119        </vseg>
120
121*** ioc
122        <vseg name = "seg_ioc"            vbase = "0xB3000000" mode = "__W_" clusterid = "0" psegname = "PSEG_IOC" ident = "1" >
123            <vobj name = "ioc"            type = "PERI" length  = "0x00001000" />
124        </vseg>
125
126*** tty
127        <vseg name = "seg_tty"            vbase = "0xB4000000" mode = "__W_" clusterid = "0" psegname = "PSEG_TTY" ident = "1" >
128                        <vobj name = "tty"            type = "PERI" length  = "0x00001000" />
129        </vseg>
130
131*** DMA / A[31:28] = 0xD
132        <vseg name = "seg_dma"          vbase = "0xD0000000" mode = "__W_" clusterid = "0" psegname = "PSEG_DMA" >
133            <vobj name = "dma"          type = "PERI" length  = "0x00001000" />
134        </vseg>
135
136*** Replicated schedulers / A[31:28] = 0xF
137        <vseg name = "seg_sched"        vbase = "0xF0000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" >
138            <vobj name = "sched"      type = "SCHED" length  = "0x00004000" />
139        </vseg>
140
141    </globalset> 
142
143    <vspaceset>
144
145        <vspace name = "gameoflife" startname = "data" >
146            <vseg name = "seg_data"        vbase = "0x00800000" mode = "C_WU" clusterid = "0" psegname = "PSEG_RAM" >
147                <vobj name = "data"        type = "ELF" length = "0x00010000" binpath = "build/gameoflife/gameoflife.elf" />
148            </vseg>
149                       
150            <vseg name = "seg_ptab"        vbase = "0x00300000" mode = "C___" clusterid = "0" psegname = "PSEG_RAM" >
151                <vobj name = "ptab"        type = "PTAB" length = "0x00012000" align = "13" />
152            </vseg>
153                       
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/gameoflife/gameoflife.elf" />
156            </vseg>
157                       
158            <vseg name = "seg_stack_0"     vbase = "0x00020000" mode = "C_WU" clusterid = "0" psegname = "PSEG_RAM" >
159                <vobj name = "stack_0"     type = "BUFFER" length = "0x00008000" /> 
160            </vseg>
161
162            <vseg name = "seg_stack_1"     vbase = "0x00030000" mode = "C_WU" clusterid = "0" psegname = "PSEG_RAM" >
163                <vobj name = "stack_1"     type = "BUFFER" length = "0x00008000" /> 
164            </vseg>
165           
166            <vseg name = "seg_stack_2"     vbase = "0x00040000" mode = "C_WU" clusterid = "0" psegname = "PSEG_RAM" >
167                <vobj name = "stack_2"     type = "BUFFER" length = "0x00008000" /> 
168            </vseg>
169           
170            <vseg name = "seg_stack_3"     vbase = "0x00050000" mode = "C_WU" clusterid = "0" psegname = "PSEG_RAM" >
171                <vobj name = "stack_3"     type = "BUFFER" length = "0x00008000" /> 
172            </vseg>
173         
174            <task name = "main_gameoflife_0" clusterid = "0" proclocid = "0" stackname = "stack_0" startid = "0" usetty = "1" />
175            <task name = "main_gameoflife_1" clusterid = "0" proclocid = "1" stackname = "stack_1" startid = "0" usetty = "0" />
176            <task name = "main_gameoflife_2" clusterid = "0" proclocid = "2" stackname = "stack_2" startid = "0" usetty = "0" />
177            <task name = "main_gameoflife_3" clusterid = "0" proclocid = "3" stackname = "stack_3" startid = "0" usetty = "0" />
178
179        </vspace>
180    </vspaceset>
181</mapping_info>
Note: See TracBrowser for help on using the repository browser.