aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/powertv/asic/prealloc-zeus.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/powertv/asic/prealloc-zeus.c')
-rw-r--r--arch/mips/powertv/asic/prealloc-zeus.c505
1 files changed, 175 insertions, 330 deletions
diff --git a/arch/mips/powertv/asic/prealloc-zeus.c b/arch/mips/powertv/asic/prealloc-zeus.c
index 018d4514dbe3..96480a2395c0 100644
--- a/arch/mips/powertv/asic/prealloc-zeus.c
+++ b/arch/mips/powertv/asic/prealloc-zeus.c
@@ -22,7 +22,9 @@
22 */ 22 */
23 23
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/ioport.h>
25#include <asm/mach-powertv/asic.h> 26#include <asm/mach-powertv/asic.h>
27#include "prealloc.h"
26 28
27/* 29/*
28 * DVR_CAPABLE RESOURCES 30 * DVR_CAPABLE RESOURCES
@@ -30,280 +32,151 @@
30struct resource dvr_zeus_resources[] __initdata = 32struct resource dvr_zeus_resources[] __initdata =
31{ 33{
32 /* 34 /*
33 *
34 * VIDEO1 / LX1 35 * VIDEO1 / LX1
35 *
36 */ 36 */
37 { 37 /* Delta-Mu 1 image (2MiB) */
38 .name = "ST231aImage", /* Delta-Mu 1 image and ram */ 38 PREALLOC_NORMAL("ST231aImage", 0x20000000, 0x20200000-1,
39 .start = 0x20000000, 39 IORESOURCE_MEM)
40 .end = 0x201FFFFF, /* 2MiB */ 40 /* Delta-Mu 1 monitor (8KiB) */
41 .flags = IORESOURCE_IO, 41 PREALLOC_NORMAL("ST231aMonitor", 0x20200000, 0x20202000-1,
42 }, 42 IORESOURCE_MEM)
43 { 43 /* Delta-Mu 1 RAM (~29.9MiB (32MiB - (2MiB + 8KiB))) */
44 .name = "ST231aMonitor", /* 8KiB block ST231a monitor */ 44 PREALLOC_NORMAL("MediaMemory1", 0x20202000, 0x22000000-1,
45 .start = 0x20200000, 45 IORESOURCE_MEM)
46 .end = 0x20201FFF, 46
47 .flags = IORESOURCE_IO,
48 },
49 {
50 .name = "MediaMemory1",
51 .start = 0x20202000,
52 .end = 0x21FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
53 .flags = IORESOURCE_IO,
54 },
55 /* 47 /*
56 *
57 * VIDEO2 / LX2 48 * VIDEO2 / LX2
58 *
59 */ 49 */
60 { 50 /* Delta-Mu 2 image (2MiB) */
61 .name = "ST231bImage", /* Delta-Mu 2 image and ram */ 51 PREALLOC_NORMAL("ST231bImage", 0x30000000, 0x30200000-1,
62 .start = 0x30000000, 52 IORESOURCE_MEM)
63 .end = 0x301FFFFF, /* 2MiB */ 53 /* Delta-Mu 2 monitor (8KiB) */
64 .flags = IORESOURCE_IO, 54 PREALLOC_NORMAL("ST231bMonitor", 0x30200000, 0x30202000-1,
65 }, 55 IORESOURCE_MEM)
66 { 56 /* Delta-Mu 2 RAM (~29.9MiB (32MiB - (2MiB + 8KiB))) */
67 .name = "ST231bMonitor", /* 8KiB block ST231b monitor */ 57 PREALLOC_NORMAL("MediaMemory2", 0x30202000, 0x32000000-1,
68 .start = 0x30200000, 58 IORESOURCE_MEM)
69 .end = 0x30201FFF, 59
70 .flags = IORESOURCE_IO,
71 },
72 {
73 .name = "MediaMemory2",
74 .start = 0x30202000,
75 .end = 0x31FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
76 .flags = IORESOURCE_IO,
77 },
78 /* 60 /*
79 *
80 * Sysaudio Driver 61 * Sysaudio Driver
81 *
82 * This driver requires:
83 *
84 * Arbitrary Based Buffers:
85 * DSP_Image_Buff - DSP code and data images (1MB)
86 * ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
87 * ADSC_AUX_Buff - ADSC AUX buffer (16KB)
88 * ADSC_Main_Buff - ADSC Main buffer (16KB)
89 *
90 */ 62 */
91 { 63 /* DSP code and data images (1MiB) */
92 .name = "DSP_Image_Buff", 64 PREALLOC_NORMAL("DSP_Image_Buff", 0x00000000, 0x00100000-1,
93 .start = 0x00000000, 65 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
94 .end = 0x000FFFFF, 66 /* ADSC CPU PCM buffer (40KiB) */
95 .flags = IORESOURCE_MEM, 67 PREALLOC_NORMAL("ADSC_CPU_PCM_Buff", 0x00000000, 0x0000A000-1,
96 }, 68 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
97 { 69 /* ADSC AUX buffer (16KiB) */
98 .name = "ADSC_CPU_PCM_Buff", 70 PREALLOC_NORMAL("ADSC_AUX_Buff", 0x00000000, 0x00004000-1,
99 .start = 0x00000000, 71 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
100 .end = 0x00009FFF, 72 /* ADSC Main buffer (16KiB) */
101 .flags = IORESOURCE_MEM, 73 PREALLOC_NORMAL("ADSC_Main_Buff", 0x00000000, 0x00004000-1,
102 }, 74 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
103 { 75
104 .name = "ADSC_AUX_Buff",
105 .start = 0x00000000,
106 .end = 0x00003FFF,
107 .flags = IORESOURCE_MEM,
108 },
109 {
110 .name = "ADSC_Main_Buff",
111 .start = 0x00000000,
112 .end = 0x00003FFF,
113 .flags = IORESOURCE_MEM,
114 },
115 /* 76 /*
116 *
117 * STAVEM driver/STAPI 77 * STAVEM driver/STAPI
118 * 78 *
119 * This driver requires:
120 *
121 * Arbitrary Based Buffers:
122 * This memory area is used for allocating buffers for Video decoding 79 * This memory area is used for allocating buffers for Video decoding
123 * purposes. Allocation/De-allocation within this buffer is managed 80 * purposes. Allocation/De-allocation within this buffer is managed
124 * by the STAVMEM driver of the STAPI. They could be Decimated 81 * by the STAVMEM driver of the STAPI. They could be Decimated
125 * Picture Buffers, Intermediate Buffers, as deemed necessary for 82 * Picture Buffers, Intermediate Buffers, as deemed necessary for
126 * video decoding purposes, for any video decoders on Zeus. 83 * video decoding purposes, for any video decoders on Zeus.
127 *
128 */ 84 */
129 { 85 /* 12MiB */
130 .name = "AVMEMPartition0", 86 PREALLOC_NORMAL("AVMEMPartition0", 0x00000000, 0x00c00000-1,
131 .start = 0x00000000, 87 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
132 .end = 0x00c00000 - 1, /* 12 MB total */ 88
133 .flags = IORESOURCE_MEM,
134 },
135 /* 89 /*
136 *
137 * DOCSIS Subsystem 90 * DOCSIS Subsystem
138 *
139 * This driver requires:
140 *
141 * Arbitrary Based Buffers:
142 * Docsis -
143 *
144 */ 91 */
145 { 92 /* 7MiB */
146 .name = "Docsis", 93 PREALLOC_DOCSIS("Docsis", 0x40100000, 0x40800000-1, IORESOURCE_MEM)
147 .start = 0x40100000, 94
148 .end = 0x407fffff,
149 .flags = IORESOURCE_MEM,
150 },
151 /* 95 /*
152 *
153 * GHW HAL Driver 96 * GHW HAL Driver
154 *
155 * This driver requires:
156 *
157 * Arbitrary Based Buffers:
158 * GraphicsHeap - PowerTV Graphics Heap
159 *
160 */ 97 */
161 { 98 /* PowerTV Graphics Heap (14MiB) */
162 .name = "GraphicsHeap", 99 PREALLOC_NORMAL("GraphicsHeap", 0x46900000, 0x47700000-1,
163 .start = 0x46900000, 100 IORESOURCE_MEM)
164 .end = 0x47700000 - 1, /* 14 MB total */ 101
165 .flags = IORESOURCE_MEM,
166 },
167 /* 102 /*
168 *
169 * multi com buffer area 103 * multi com buffer area
170 *
171 * This driver requires:
172 *
173 * Arbitrary Based Buffers:
174 * Docsis -
175 *
176 */ 104 */
177 { 105 /* 128KiB */
178 .name = "MulticomSHM", 106 PREALLOC_NORMAL("MulticomSHM", 0x47900000, 0x47920000-1,
179 .start = 0x47900000, 107 IORESOURCE_MEM)
180 .end = 0x47920000 - 1, 108
181 .flags = IORESOURCE_MEM,
182 },
183 /* 109 /*
184 *
185 * DMA Ring buffer 110 * DMA Ring buffer
186 *
187 * This driver requires:
188 *
189 * Arbitrary Based Buffers:
190 * Docsis -
191 *
192 */ 111 */
193 { 112 /* 2.5MiB */
194 .name = "BMM_Buffer", 113 PREALLOC_NORMAL("BMM_Buffer", 0x00000000, 0x00280000-1,
195 .start = 0x00000000, 114 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
196 .end = 0x00280000 - 1, 115
197 .flags = IORESOURCE_MEM,
198 },
199 /* 116 /*
200 *
201 * Display bins buffer for unit0 117 * Display bins buffer for unit0
202 *
203 * This driver requires:
204 *
205 * Arbitrary Based Buffers:
206 * Display Bins for unit0
207 *
208 */ 118 */
209 { 119 /* 4KiB */
210 .name = "DisplayBins0", 120 PREALLOC_NORMAL("DisplayBins0", 0x00000000, 0x00001000-1,
211 .start = 0x00000000, 121 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
212 .end = 0x00000FFF, /* 4 KB total */ 122
213 .flags = IORESOURCE_MEM,
214 },
215 /* 123 /*
216 * 124 * Display bins buffer for unit1
217 * Display bins buffer
218 *
219 * This driver requires:
220 *
221 * Arbitrary Based Buffers:
222 * Display Bins for unit1
223 *
224 */ 125 */
225 { 126 /* 4KiB */
226 .name = "DisplayBins1", 127 PREALLOC_NORMAL("DisplayBins1", 0x00000000, 0x00001000-1,
227 .start = 0x00000000, 128 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
228 .end = 0x00000FFF, /* 4 KB total */ 129
229 .flags = IORESOURCE_MEM,
230 },
231 /* 130 /*
232 *
233 * ITFS 131 * ITFS
234 *
235 * This driver requires:
236 *
237 * Arbitrary Based Buffers:
238 * Docsis -
239 *
240 */ 132 */
241 { 133 /* 815,104 bytes each for 2 ITFS partitions. */
242 .name = "ITFS", 134 PREALLOC_NORMAL("ITFS", 0x00000000, 0x0018E000-1,
243 .start = 0x00000000, 135 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
244 /* 815,104 bytes each for 2 ITFS partitions. */ 136
245 .end = 0x0018DFFF,
246 .flags = IORESOURCE_MEM,
247 },
248 /* 137 /*
249 *
250 * AVFS 138 * AVFS
251 *
252 * This driver requires:
253 *
254 * Arbitrary Based Buffers:
255 * Docsis -
256 *
257 */ 139 */
258 { 140 /* (945K * 8) = (128K * 3) 5 playbacks / 3 server */
259 .name = "AvfsDmaMem", 141 PREALLOC_NORMAL("AvfsDmaMem", 0x00000000, 0x007c2000-1,
260 .start = 0x00000000, 142 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
261 /* (945K * 8) = (128K * 3) 5 playbacks / 3 server */ 143 /* 4KiB */
262 .end = 0x007c2000 - 1, 144 PREALLOC_NORMAL("AvfsFileSys", 0x00000000, 0x00001000-1,
263 .flags = IORESOURCE_MEM, 145 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
264 }, 146
265 {
266 .name = "AvfsFileSys",
267 .start = 0x00000000,
268 .end = 0x00001000 - 1, /* 4K */
269 .flags = IORESOURCE_MEM,
270 },
271 /* 147 /*
272 *
273 * PMEM 148 * PMEM
274 *
275 * This driver requires:
276 *
277 * Arbitrary Based Buffers:
278 * Persistent memory for diagnostics.
279 *
280 */ 149 */
281 { 150 /* Persistent memory for diagnostics (64KiB) */
282 .name = "DiagPersistentMemory", 151 PREALLOC_PMEM("DiagPersistentMemory", 0x00000000, 0x10000-1,
283 .start = 0x00000000, 152 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
284 .end = 0x10000 - 1, 153
285 .flags = IORESOURCE_MEM,
286 },
287 /* 154 /*
288 *
289 * Smartcard 155 * Smartcard
156 */
157 /* Read and write buffers for Internal/External cards (10KiB) */
158 PREALLOC_NORMAL("SmartCardInfo", 0x00000000, 0x2800-1,
159 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
160
161 /*
162 * TFTPBuffer
290 * 163 *
291 * This driver requires: 164 * This buffer is used in some minimal configurations (e.g. two-way
292 * 165 * loader) for storing software images
293 * Arbitrary Based Buffers:
294 * Read and write buffers for Internal/External cards
295 *
296 */ 166 */
297 { 167 PREALLOC_TFTP("TFTPBuffer", 0x00000000, MEBIBYTE(80)-1,
298 .name = "SmartCardInfo", 168 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
299 .start = 0x00000000, 169
300 .end = 0x2800 - 1,
301 .flags = IORESOURCE_MEM,
302 },
303 /* 170 /*
304 * Add other resources here 171 * Add other resources here
305 */ 172 */
306 { }, 173
174 /*
175 * End of Resource marker
176 */
177 {
178 .flags = 0,
179 },
307}; 180};
308 181
309/* 182/*
@@ -314,146 +187,118 @@ struct resource non_dvr_zeus_resources[] __initdata =
314 /* 187 /*
315 * VIDEO1 / LX1 188 * VIDEO1 / LX1
316 */ 189 */
317 { 190 /* Delta-Mu 1 image (2MiB) */
318 .name = "ST231aImage", /* Delta-Mu 1 image and ram */ 191 PREALLOC_NORMAL("ST231aImage", 0x20000000, 0x20200000-1,
319 .start = 0x20000000, 192 IORESOURCE_MEM)
320 .end = 0x201FFFFF, /* 2MiB */ 193 /* Delta-Mu 1 monitor (8KiB) */
321 .flags = IORESOURCE_IO, 194 PREALLOC_NORMAL("ST231aMonitor", 0x20200000, 0x20202000-1,
322 }, 195 IORESOURCE_MEM)
323 { 196 /* Delta-Mu 1 RAM (~29.9MiB (32MiB - (2MiB + 8KiB))) */
324 .name = "ST231aMonitor", /* 8KiB block ST231a monitor */ 197 PREALLOC_NORMAL("MediaMemory1", 0x20202000, 0x22000000-1,
325 .start = 0x20200000, 198 IORESOURCE_MEM)
326 .end = 0x20201FFF, 199
327 .flags = IORESOURCE_IO,
328 },
329 {
330 .name = "MediaMemory1",
331 .start = 0x20202000,
332 .end = 0x21FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
333 .flags = IORESOURCE_IO,
334 },
335 /* 200 /*
336 * Sysaudio Driver 201 * Sysaudio Driver
337 */ 202 */
338 { 203 /* DSP code and data images (1MiB) */
339 .name = "DSP_Image_Buff", 204 PREALLOC_NORMAL("DSP_Image_Buff", 0x00000000, 0x00100000-1,
340 .start = 0x00000000, 205 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
341 .end = 0x000FFFFF, 206 /* ADSC CPU PCM buffer (40KiB) */
342 .flags = IORESOURCE_MEM, 207 PREALLOC_NORMAL("ADSC_CPU_PCM_Buff", 0x00000000, 0x0000A000-1,
343 }, 208 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
344 { 209 /* ADSC AUX buffer (16KiB) */
345 .name = "ADSC_CPU_PCM_Buff", 210 PREALLOC_NORMAL("ADSC_AUX_Buff", 0x00000000, 0x00004000-1,
346 .start = 0x00000000, 211 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
347 .end = 0x00009FFF, 212 /* ADSC Main buffer (16KiB) */
348 .flags = IORESOURCE_MEM, 213 PREALLOC_NORMAL("ADSC_Main_Buff", 0x00000000, 0x00004000-1,
349 }, 214 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
350 { 215
351 .name = "ADSC_AUX_Buff",
352 .start = 0x00000000,
353 .end = 0x00003FFF,
354 .flags = IORESOURCE_MEM,
355 },
356 {
357 .name = "ADSC_Main_Buff",
358 .start = 0x00000000,
359 .end = 0x00003FFF,
360 .flags = IORESOURCE_MEM,
361 },
362 /* 216 /*
363 * STAVEM driver/STAPI 217 * STAVEM driver/STAPI
364 */ 218 */
365 { 219 /* 6MiB */
366 .name = "AVMEMPartition0", 220 PREALLOC_NORMAL("AVMEMPartition0", 0x00000000, 0x00600000-1,
367 .start = 0x00000000, 221 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
368 .end = 0x00600000 - 1, /* 6 MB total */ 222
369 .flags = IORESOURCE_MEM,
370 },
371 /* 223 /*
372 * DOCSIS Subsystem 224 * DOCSIS Subsystem
373 */ 225 */
374 { 226 /* 7MiB */
375 .name = "Docsis", 227 PREALLOC_DOCSIS("Docsis", 0x40100000, 0x40800000-1, IORESOURCE_MEM)
376 .start = 0x40100000, 228
377 .end = 0x407fffff,
378 .flags = IORESOURCE_MEM,
379 },
380 /* 229 /*
381 * GHW HAL Driver 230 * GHW HAL Driver
382 */ 231 */
383 { 232 /* PowerTV Graphics Heap (14MiB) */
384 .name = "GraphicsHeap", 233 PREALLOC_NORMAL("GraphicsHeap", 0x46900000, 0x47700000-1,
385 .start = 0x46900000, 234 IORESOURCE_MEM)
386 .end = 0x47700000 - 1, /* 14 MB total */ 235
387 .flags = IORESOURCE_MEM,
388 },
389 /* 236 /*
390 * multi com buffer area 237 * multi com buffer area
391 */ 238 */
392 { 239 /* 128KiB */
393 .name = "MulticomSHM", 240 PREALLOC_NORMAL("MulticomSHM", 0x47900000, 0x47920000-1,
394 .start = 0x47900000, 241 IORESOURCE_MEM)
395 .end = 0x47920000 - 1, 242
396 .flags = IORESOURCE_MEM,
397 },
398 /* 243 /*
399 * DMA Ring buffer 244 * DMA Ring buffer
400 */ 245 */
401 { 246 /* 2.5MiB */
402 .name = "BMM_Buffer", 247 PREALLOC_NORMAL("BMM_Buffer", 0x00000000, 0x00280000-1,
403 .start = 0x00000000, 248 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
404 .end = 0x00280000 - 1, 249
405 .flags = IORESOURCE_MEM,
406 },
407 /* 250 /*
408 * Display bins buffer for unit0 251 * Display bins buffer for unit0
409 */ 252 */
410 { 253 /* 4KiB */
411 .name = "DisplayBins0", 254 PREALLOC_NORMAL("DisplayBins0", 0x00000000, 0x00001000-1,
412 .start = 0x00000000, 255 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
413 .end = 0x00000FFF, /* 4 KB total */ 256
414 .flags = IORESOURCE_MEM,
415 },
416 /* 257 /*
417 *
418 * AVFS: player HAL memory 258 * AVFS: player HAL memory
419 *
420 *
421 */ 259 */
422 { 260 /* 945K * 3 for playback */
423 .name = "AvfsDmaMem", 261 PREALLOC_NORMAL("AvfsDmaMem", 0x00000000, 0x002c4c00-1,
424 .start = 0x00000000, 262 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
425 .end = 0x002c4c00 - 1, /* 945K * 3 for playback */ 263
426 .flags = IORESOURCE_MEM,
427 },
428 /* 264 /*
429 * PMEM 265 * PMEM
430 */ 266 */
431 { 267 /* Persistent memory for diagnostics (64KiB) */
432 .name = "DiagPersistentMemory", 268 PREALLOC_PMEM("DiagPersistentMemory", 0x00000000, 0x10000-1,
433 .start = 0x00000000, 269 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
434 .end = 0x10000 - 1, 270
435 .flags = IORESOURCE_MEM,
436 },
437 /* 271 /*
438 * Smartcard 272 * Smartcard
439 */ 273 */
440 { 274 /* Read and write buffers for Internal/External cards (10KiB) */
441 .name = "SmartCardInfo", 275 PREALLOC_NORMAL("SmartCardInfo", 0x00000000, 0x2800-1,
442 .start = 0x00000000, 276 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
443 .end = 0x2800 - 1, 277
444 .flags = IORESOURCE_MEM,
445 },
446 /* 278 /*
447 * NAND Flash 279 * NAND Flash
448 */ 280 */
449 { 281 /* 10KiB */
450 .name = "NandFlash", 282 PREALLOC_NORMAL("NandFlash", NAND_FLASH_BASE, NAND_FLASH_BASE+0x400-1,
451 .start = NAND_FLASH_BASE, 283 IORESOURCE_MEM)
452 .end = NAND_FLASH_BASE + 0x400 - 1, 284
453 .flags = IORESOURCE_IO, 285 /*
454 }, 286 * TFTPBuffer
287 *
288 * This buffer is used in some minimal configurations (e.g. two-way
289 * loader) for storing software images
290 */
291 PREALLOC_TFTP("TFTPBuffer", 0x00000000, MEBIBYTE(80)-1,
292 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT))
293
455 /* 294 /*
456 * Add other resources here 295 * Add other resources here
457 */ 296 */
458 { }, 297
298 /*
299 * End of Resource marker
300 */
301 {
302 .flags = 0,
303 },
459}; 304};