~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/mips/powertv/asic/prealloc-gaia.c

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Memory pre-allocations for Gaia boxes.
 
3
 *
 
4
 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
 
5
 *
 
6
 * This program is free software; you can redistribute it and/or modify
 
7
 * it under the terms of the GNU General Public License as published by
 
8
 * the Free Software Foundation; either version 2 of the License, or
 
9
 * (at your option) any later version.
 
10
 *
 
11
 * This program is distributed in the hope that it will be useful,
 
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
14
 * GNU General Public License for more details.
 
15
 *
 
16
 * You should have received a copy of the GNU General Public License
 
17
 * along with this program; if not, write to the Free Software
 
18
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
19
 *
 
20
 * Author:       David VomLehn
 
21
 */
 
22
 
 
23
#include <linux/init.h>
 
24
#include <asm/mach-powertv/asic.h>
 
25
 
 
26
/*
 
27
 * DVR_CAPABLE GAIA RESOURCES
 
28
 */
 
29
struct resource dvr_gaia_resources[] __initdata = {
 
30
        /*
 
31
         *
 
32
         * VIDEO1 / LX1
 
33
         *
 
34
         */
 
35
        {
 
36
                .name   = "ST231aImage",        /* Delta-Mu 1 image and ram */
 
37
                .start  = 0x24000000,
 
38
                .end    = 0x241FFFFF,           /* 2MiB */
 
39
                .flags  = IORESOURCE_MEM,
 
40
        },
 
41
        {
 
42
                .name   = "ST231aMonitor",      /* 8KiB block ST231a monitor */
 
43
                .start  = 0x24200000,
 
44
                .end    = 0x24201FFF,
 
45
                .flags  = IORESOURCE_MEM,
 
46
        },
 
47
        {
 
48
                .name   = "MediaMemory1",
 
49
                .start  = 0x24202000,
 
50
                .end    = 0x25FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
 
51
                .flags  = IORESOURCE_MEM,
 
52
        },
 
53
        /*
 
54
         *
 
55
         * VIDEO2 / LX2
 
56
         *
 
57
         */
 
58
        {
 
59
                .name   = "ST231bImage",        /* Delta-Mu 2 image and ram */
 
60
                .start  = 0x60000000,
 
61
                .end    = 0x601FFFFF,           /* 2MiB */
 
62
                .flags  = IORESOURCE_IO,
 
63
        },
 
64
        {
 
65
                .name   = "ST231bMonitor",      /* 8KiB block ST231b monitor */
 
66
                .start  = 0x60200000,
 
67
                .end    = 0x60201FFF,
 
68
                .flags  = IORESOURCE_IO,
 
69
        },
 
70
        {
 
71
                .name   = "MediaMemory2",
 
72
                .start  = 0x60202000,
 
73
                .end    = 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
 
74
                .flags  = IORESOURCE_IO,
 
75
        },
 
76
        /*
 
77
         *
 
78
         * Sysaudio Driver
 
79
         *
 
80
         * This driver requires:
 
81
         *
 
82
         * Arbitrary Based Buffers:
 
83
         *  DSP_Image_Buff - DSP code and data images (1MB)
 
84
         *  ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
 
85
         *  ADSC_AUX_Buff - ADSC AUX buffer (16KB)
 
86
         *  ADSC_Main_Buff - ADSC Main buffer (16KB)
 
87
         *
 
88
         */
 
89
        {
 
90
                .name   = "DSP_Image_Buff",
 
91
                .start  = 0x00000000,
 
92
                .end    = 0x000FFFFF,
 
93
                .flags  = IORESOURCE_MEM,
 
94
        },
 
95
        {
 
96
                .name   = "ADSC_CPU_PCM_Buff",
 
97
                .start  = 0x00000000,
 
98
                .end    = 0x00009FFF,
 
99
                .flags  = IORESOURCE_MEM,
 
100
        },
 
101
        {
 
102
                .name   = "ADSC_AUX_Buff",
 
103
                .start  = 0x00000000,
 
104
                .end    = 0x00003FFF,
 
105
                .flags  = IORESOURCE_MEM,
 
106
        },
 
107
        {
 
108
                .name   = "ADSC_Main_Buff",
 
109
                .start  = 0x00000000,
 
110
                .end    = 0x00003FFF,
 
111
                .flags  = IORESOURCE_MEM,
 
112
        },
 
113
        /*
 
114
         *
 
115
         * STAVEM driver/STAPI
 
116
         *
 
117
         * This driver requires:
 
118
         *
 
119
         * Arbitrary Based Buffers:
 
120
         *  This memory area is used for allocating buffers for Video decoding
 
121
         *  purposes.  Allocation/De-allocation within this buffer is managed
 
122
         *  by the STAVMEM driver of the STAPI.  They could be Decimated
 
123
         *  Picture Buffers, Intermediate Buffers, as deemed necessary for
 
124
         *  video decoding purposes, for any video decoders on Zeus.
 
125
         *
 
126
         */
 
127
        {
 
128
                .name   = "AVMEMPartition0",
 
129
                .start  = 0x63580000,
 
130
                .end    = 0x64180000 - 1,  /* 12 MB total */
 
131
                .flags  = IORESOURCE_IO,
 
132
        },
 
133
        /*
 
134
         *
 
135
         * DOCSIS Subsystem
 
136
         *
 
137
         * This driver requires:
 
138
         *
 
139
         * Arbitrary Based Buffers:
 
140
         *  Docsis -
 
141
         *
 
142
         */
 
143
        {
 
144
                .name   = "Docsis",
 
145
                .start  = 0x62000000,
 
146
                .end    = 0x62700000 - 1,       /* 7 MB total */
 
147
                .flags  = IORESOURCE_IO,
 
148
        },
 
149
        /*
 
150
         *
 
151
         * GHW HAL Driver
 
152
         *
 
153
         * This driver requires:
 
154
         *
 
155
         * Arbitrary Based Buffers:
 
156
         *  GraphicsHeap - PowerTV Graphics Heap
 
157
         *
 
158
         */
 
159
        {
 
160
                .name   = "GraphicsHeap",
 
161
                .start  = 0x62700000,
 
162
                .end    = 0x63500000 - 1,       /* 14 MB total */
 
163
                .flags  = IORESOURCE_IO,
 
164
        },
 
165
        /*
 
166
         *
 
167
         * multi com buffer area
 
168
         *
 
169
         * This driver requires:
 
170
         *
 
171
         * Arbitrary Based Buffers:
 
172
         *  Docsis -
 
173
         *
 
174
         */
 
175
        {
 
176
                .name   = "MulticomSHM",
 
177
                .start  = 0x26000000,
 
178
                .end    = 0x26020000 - 1,
 
179
                .flags  = IORESOURCE_MEM,
 
180
        },
 
181
        /*
 
182
         *
 
183
         * DMA Ring buffer
 
184
         *
 
185
         * This driver requires:
 
186
         *
 
187
         * Arbitrary Based Buffers:
 
188
         *  Docsis -
 
189
         *
 
190
         */
 
191
        {
 
192
                .name   = "BMM_Buffer",
 
193
                .start  = 0x00000000,
 
194
                .end    = 0x00280000 - 1,
 
195
                .flags  = IORESOURCE_MEM,
 
196
        },
 
197
        /*
 
198
         *
 
199
         * Display bins buffer for unit0
 
200
         *
 
201
         * This driver requires:
 
202
         *
 
203
         * Arbitrary Based Buffers:
 
204
         *  Display Bins for unit0
 
205
         *
 
206
         */
 
207
        {
 
208
                .name   = "DisplayBins0",
 
209
                .start  = 0x00000000,
 
210
                .end    = 0x00000FFF,           /* 4 KB total */
 
211
                .flags  = IORESOURCE_MEM,
 
212
        },
 
213
        /*
 
214
         *
 
215
         * Display bins buffer
 
216
         *
 
217
         * This driver requires:
 
218
         *
 
219
         * Arbitrary Based Buffers:
 
220
         *  Display Bins for unit1
 
221
         *
 
222
         */
 
223
        {
 
224
                .name   = "DisplayBins1",
 
225
                .start  = 0x64AD4000,
 
226
                .end    = 0x64AD5000 - 1,  /* 4 KB total */
 
227
                .flags  = IORESOURCE_IO,
 
228
        },
 
229
        /*
 
230
         *
 
231
         * ITFS
 
232
         *
 
233
         * This driver requires:
 
234
         *
 
235
         * Arbitrary Based Buffers:
 
236
         *  Docsis -
 
237
         *
 
238
         */
 
239
        {
 
240
                .name   = "ITFS",
 
241
                .start  = 0x64180000,
 
242
                /* 815,104 bytes each for 2 ITFS partitions. */
 
243
                .end    = 0x6430DFFF,
 
244
                .flags  = IORESOURCE_IO,
 
245
        },
 
246
        /*
 
247
         *
 
248
         * AVFS
 
249
         *
 
250
         * This driver requires:
 
251
         *
 
252
         * Arbitrary Based Buffers:
 
253
         *  Docsis -
 
254
         *
 
255
         */
 
256
        {
 
257
                .name   = "AvfsDmaMem",
 
258
                .start  = 0x6430E000,
 
259
                /* (945K * 8) = (128K *3) 5 playbacks / 3 server */
 
260
                .end    = 0x64AD0000 - 1,
 
261
                .flags  = IORESOURCE_IO,
 
262
        },
 
263
        {
 
264
                .name   = "AvfsFileSys",
 
265
                .start  = 0x64AD0000,
 
266
                .end    = 0x64AD1000 - 1,  /* 4K */
 
267
                .flags  = IORESOURCE_IO,
 
268
        },
 
269
        /*
 
270
         *
 
271
         * Smartcard
 
272
         *
 
273
         * This driver requires:
 
274
         *
 
275
         * Arbitrary Based Buffers:
 
276
         *  Read and write buffers for Internal/External cards
 
277
         *
 
278
         */
 
279
        {
 
280
                .name   = "SmartCardInfo",
 
281
                .start  = 0x64AD1000,
 
282
                .end    = 0x64AD3800 - 1,
 
283
                .flags  = IORESOURCE_IO,
 
284
        },
 
285
        /*
 
286
         *
 
287
         * KAVNET
 
288
         *    NP Reset Vector - must be of the form xxCxxxxx
 
289
         *         NP Image - must be video bank 1
 
290
         *         NP IPC - must be video bank 2
 
291
         */
 
292
        {
 
293
                .name   = "NP_Reset_Vector",
 
294
                .start  = 0x27c00000,
 
295
                .end    = 0x27c01000 - 1,
 
296
                .flags  = IORESOURCE_MEM,
 
297
        },
 
298
        {
 
299
                .name   = "NP_Image",
 
300
                .start  = 0x27020000,
 
301
                .end    = 0x27060000 - 1,
 
302
                .flags  = IORESOURCE_MEM,
 
303
        },
 
304
        {
 
305
                .name   = "NP_IPC",
 
306
                .start  = 0x63500000,
 
307
                .end    = 0x63580000 - 1,
 
308
                .flags  = IORESOURCE_IO,
 
309
        },
 
310
        /*
 
311
         * Add other resources here
 
312
         */
 
313
        { },
 
314
};
 
315
 
 
316
/*
 
317
 * NON_DVR_CAPABLE GAIA RESOURCES
 
318
 */
 
319
struct resource non_dvr_gaia_resources[] __initdata = {
 
320
        /*
 
321
         *
 
322
         * VIDEO1 / LX1
 
323
         *
 
324
         */
 
325
        {
 
326
                .name   = "ST231aImage",        /* Delta-Mu 1 image and ram */
 
327
                .start  = 0x24000000,
 
328
                .end    = 0x241FFFFF,           /* 2MiB */
 
329
                .flags  = IORESOURCE_MEM,
 
330
        },
 
331
        {
 
332
                .name   = "ST231aMonitor",      /* 8KiB block ST231a monitor */
 
333
                .start  = 0x24200000,
 
334
                .end    = 0x24201FFF,
 
335
                .flags  = IORESOURCE_MEM,
 
336
        },
 
337
        {
 
338
                .name   = "MediaMemory1",
 
339
                .start  = 0x24202000,
 
340
                .end    = 0x25FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
 
341
                .flags  = IORESOURCE_MEM,
 
342
        },
 
343
        /*
 
344
         *
 
345
         * VIDEO2 / LX2
 
346
         *
 
347
         */
 
348
        {
 
349
                .name   = "ST231bImage",        /* Delta-Mu 2 image and ram */
 
350
                .start  = 0x60000000,
 
351
                .end    = 0x601FFFFF,           /* 2MiB */
 
352
                .flags  = IORESOURCE_IO,
 
353
        },
 
354
        {
 
355
                .name   = "ST231bMonitor",      /* 8KiB block ST231b monitor */
 
356
                .start  = 0x60200000,
 
357
                .end    = 0x60201FFF,
 
358
                .flags  = IORESOURCE_IO,
 
359
        },
 
360
        {
 
361
                .name   = "MediaMemory2",
 
362
                .start  = 0x60202000,
 
363
                .end    = 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
 
364
                .flags  = IORESOURCE_IO,
 
365
        },
 
366
        /*
 
367
         *
 
368
         * Sysaudio Driver
 
369
         *
 
370
         * This driver requires:
 
371
         *
 
372
         * Arbitrary Based Buffers:
 
373
         *  DSP_Image_Buff - DSP code and data images (1MB)
 
374
         *  ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
 
375
         *  ADSC_AUX_Buff - ADSC AUX buffer (16KB)
 
376
         *  ADSC_Main_Buff - ADSC Main buffer (16KB)
 
377
         *
 
378
         */
 
379
        {
 
380
                .name   = "DSP_Image_Buff",
 
381
                .start  = 0x00000000,
 
382
                .end    = 0x000FFFFF,
 
383
                .flags  = IORESOURCE_MEM,
 
384
        },
 
385
        {
 
386
                .name   = "ADSC_CPU_PCM_Buff",
 
387
                .start  = 0x00000000,
 
388
                .end    = 0x00009FFF,
 
389
                .flags  = IORESOURCE_MEM,
 
390
        },
 
391
        {
 
392
                .name   = "ADSC_AUX_Buff",
 
393
                .start  = 0x00000000,
 
394
                .end    = 0x00003FFF,
 
395
                .flags  = IORESOURCE_MEM,
 
396
        },
 
397
        {
 
398
                .name   = "ADSC_Main_Buff",
 
399
                .start  = 0x00000000,
 
400
                .end    = 0x00003FFF,
 
401
                .flags  = IORESOURCE_MEM,
 
402
        },
 
403
        /*
 
404
         *
 
405
         * STAVEM driver/STAPI
 
406
         *
 
407
         * This driver requires:
 
408
         *
 
409
         * Arbitrary Based Buffers:
 
410
         *  This memory area is used for allocating buffers for Video decoding
 
411
         *  purposes.  Allocation/De-allocation within this buffer is managed
 
412
         *  by the STAVMEM driver of the STAPI.  They could be Decimated
 
413
         *  Picture Buffers, Intermediate Buffers, as deemed necessary for
 
414
         *  video decoding purposes, for any video decoders on Zeus.
 
415
         *
 
416
         */
 
417
        {
 
418
                .name   = "AVMEMPartition0",
 
419
                .start  = 0x63580000,
 
420
                .end    = 0x64180000 - 1,  /* 12 MB total */
 
421
                .flags  = IORESOURCE_IO,
 
422
        },
 
423
        /*
 
424
         *
 
425
         * DOCSIS Subsystem
 
426
         *
 
427
         * This driver requires:
 
428
         *
 
429
         * Arbitrary Based Buffers:
 
430
         *  Docsis -
 
431
         *
 
432
         */
 
433
        {
 
434
                .name   = "Docsis",
 
435
                .start  = 0x62000000,
 
436
                .end    = 0x62700000 - 1,       /* 7 MB total */
 
437
                .flags  = IORESOURCE_IO,
 
438
        },
 
439
        /*
 
440
         *
 
441
         * GHW HAL Driver
 
442
         *
 
443
         * This driver requires:
 
444
         *
 
445
         * Arbitrary Based Buffers:
 
446
         *  GraphicsHeap - PowerTV Graphics Heap
 
447
         *
 
448
         */
 
449
        {
 
450
                .name   = "GraphicsHeap",
 
451
                .start  = 0x62700000,
 
452
                .end    = 0x63500000 - 1,       /* 14 MB total */
 
453
                .flags  = IORESOURCE_IO,
 
454
        },
 
455
        /*
 
456
         *
 
457
         * multi com buffer area
 
458
         *
 
459
         * This driver requires:
 
460
         *
 
461
         * Arbitrary Based Buffers:
 
462
         *  Docsis -
 
463
         *
 
464
         */
 
465
        {
 
466
                .name   = "MulticomSHM",
 
467
                .start  = 0x26000000,
 
468
                .end    = 0x26020000 - 1,
 
469
                .flags  = IORESOURCE_MEM,
 
470
        },
 
471
        /*
 
472
         *
 
473
         * DMA Ring buffer
 
474
         *
 
475
         * This driver requires:
 
476
         *
 
477
         * Arbitrary Based Buffers:
 
478
         *  Docsis -
 
479
         *
 
480
         */
 
481
        {
 
482
                .name   = "BMM_Buffer",
 
483
                .start  = 0x00000000,
 
484
                .end    = 0x000AA000 - 1,
 
485
                .flags  = IORESOURCE_MEM,
 
486
        },
 
487
        /*
 
488
         *
 
489
         * Display bins buffer for unit0
 
490
         *
 
491
         * This driver requires:
 
492
         *
 
493
         * Arbitrary Based Buffers:
 
494
         *  Display Bins for unit0
 
495
         *
 
496
         */
 
497
        {
 
498
                .name   = "DisplayBins0",
 
499
                .start  = 0x00000000,
 
500
                .end    = 0x00000FFF,           /* 4 KB total */
 
501
                .flags  = IORESOURCE_MEM,
 
502
        },
 
503
        /*
 
504
         *
 
505
         * Display bins buffer
 
506
         *
 
507
         * This driver requires:
 
508
         *
 
509
         * Arbitrary Based Buffers:
 
510
         *  Display Bins for unit1
 
511
         *
 
512
         */
 
513
        {
 
514
                .name   = "DisplayBins1",
 
515
                .start  = 0x64AD4000,
 
516
                .end    = 0x64AD5000 - 1,  /* 4 KB total */
 
517
                .flags  = IORESOURCE_IO,
 
518
        },
 
519
        /*
 
520
         *
 
521
         * AVFS: player HAL memory
 
522
         *
 
523
         *
 
524
         */
 
525
        {
 
526
                .name   = "AvfsDmaMem",
 
527
                .start  = 0x6430E000,
 
528
                .end    = 0x645D2C00 - 1,  /* 945K * 3 for playback */
 
529
                .flags  = IORESOURCE_IO,
 
530
        },
 
531
        /*
 
532
         *
 
533
         * PMEM
 
534
         *
 
535
         * This driver requires:
 
536
         *
 
537
         * Arbitrary Based Buffers:
 
538
         *  Persistent memory for diagnostics.
 
539
         *
 
540
         */
 
541
        {
 
542
                .name   = "DiagPersistentMemory",
 
543
                .start  = 0x00000000,
 
544
                .end    = 0x10000 - 1,
 
545
                .flags  = IORESOURCE_MEM,
 
546
        },
 
547
        /*
 
548
         *
 
549
         * Smartcard
 
550
         *
 
551
         * This driver requires:
 
552
         *
 
553
         * Arbitrary Based Buffers:
 
554
         *  Read and write buffers for Internal/External cards
 
555
         *
 
556
         */
 
557
        {
 
558
                .name   = "SmartCardInfo",
 
559
                .start  = 0x64AD1000,
 
560
                .end    = 0x64AD3800 - 1,
 
561
                .flags  = IORESOURCE_IO,
 
562
        },
 
563
        /*
 
564
         *
 
565
         * KAVNET
 
566
         *    NP Reset Vector - must be of the form xxCxxxxx
 
567
         *         NP Image - must be video bank 1
 
568
         *         NP IPC - must be video bank 2
 
569
         */
 
570
        {
 
571
                .name   = "NP_Reset_Vector",
 
572
                .start  = 0x27c00000,
 
573
                .end    = 0x27c01000 - 1,
 
574
                .flags  = IORESOURCE_MEM,
 
575
        },
 
576
        {
 
577
                .name   = "NP_Image",
 
578
                .start  = 0x27020000,
 
579
                .end    = 0x27060000 - 1,
 
580
                .flags  = IORESOURCE_MEM,
 
581
        },
 
582
        {
 
583
                .name   = "NP_IPC",
 
584
                .start  = 0x63500000,
 
585
                .end    = 0x63580000 - 1,
 
586
                .flags  = IORESOURCE_IO,
 
587
        },
 
588
        { },
 
589
};