Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/mips/powertv/asic/prealloc-gaia.c
10818 views
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
};
590
591