2 * Memory pre-allocations for Cronus boxes.
4 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
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.
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.
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
20 * Author: Ken Eppinett
21 * David Schleef <ds@schleef.org>
24 #include <linux/init.h>
25 #include <asm/mach-powertv/asic.h>
28 * DVR_CAPABLE CRONUS RESOURCES
30 struct resource dvr_cronus_resources
[] __initdata
=
38 .name
= "ST231aImage", /* Delta-Mu 1 image and ram */
40 .end
= 0x241FFFFF, /* 2MiB */
41 .flags
= IORESOURCE_MEM
,
44 .name
= "ST231aMonitor", /* 8KiB block ST231a monitor */
47 .flags
= IORESOURCE_MEM
,
50 .name
= "MediaMemory1",
52 .end
= 0x25FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
53 .flags
= IORESOURCE_MEM
,
61 .name
= "ST231bImage", /* Delta-Mu 2 image and ram */
63 .end
= 0x601FFFFF, /* 2MiB */
64 .flags
= IORESOURCE_IO
,
67 .name
= "ST231bMonitor", /* 8KiB block ST231b monitor */
70 .flags
= IORESOURCE_IO
,
73 .name
= "MediaMemory2",
75 .end
= 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
76 .flags
= IORESOURCE_IO
,
82 * This driver requires:
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)
92 .name
= "DSP_Image_Buff",
95 .flags
= IORESOURCE_MEM
,
98 .name
= "ADSC_CPU_PCM_Buff",
101 .flags
= IORESOURCE_MEM
,
104 .name
= "ADSC_AUX_Buff",
107 .flags
= IORESOURCE_MEM
,
110 .name
= "ADSC_Main_Buff",
113 .flags
= IORESOURCE_MEM
,
117 * STAVEM driver/STAPI
119 * This driver requires:
121 * Arbitrary Based Buffers:
122 * This memory area is used for allocating buffers for Video decoding
123 * purposes. Allocation/De-allocation within this buffer is managed
124 * by the STAVMEM driver of the STAPI. They could be Decimated
125 * Picture Buffers, Intermediate Buffers, as deemed necessary for
126 * video decoding purposes, for any video decoders on Zeus.
130 .name
= "AVMEMPartition0",
132 .end
= 0x64180000 - 1, /* 12 MB total */
133 .flags
= IORESOURCE_IO
,
139 * This driver requires:
141 * Arbitrary Based Buffers:
148 .end
= 0x62700000 - 1, /* 7 MB total */
149 .flags
= IORESOURCE_IO
,
155 * This driver requires:
157 * Arbitrary Based Buffers:
158 * GraphicsHeap - PowerTV Graphics Heap
162 .name
= "GraphicsHeap",
164 .end
= 0x63500000 - 1, /* 14 MB total */
165 .flags
= IORESOURCE_IO
,
169 * multi com buffer area
171 * This driver requires:
173 * Arbitrary Based Buffers:
178 .name
= "MulticomSHM",
180 .end
= 0x26020000 - 1,
181 .flags
= IORESOURCE_MEM
,
187 * This driver requires:
189 * Arbitrary Based Buffers:
194 .name
= "BMM_Buffer",
196 .end
= 0x00280000 - 1,
197 .flags
= IORESOURCE_MEM
,
201 * Display bins buffer for unit0
203 * This driver requires:
205 * Arbitrary Based Buffers:
206 * Display Bins for unit0
210 .name
= "DisplayBins0",
212 .end
= 0x00000FFF, /* 4 KB total */
213 .flags
= IORESOURCE_MEM
,
217 * Display bins buffer
219 * This driver requires:
221 * Arbitrary Based Buffers:
222 * Display Bins for unit1
226 .name
= "DisplayBins1",
228 .end
= 0x64AD5000 - 1, /* 4 KB total */
229 .flags
= IORESOURCE_IO
,
235 * This driver requires:
237 * Arbitrary Based Buffers:
244 /* 815,104 bytes each for 2 ITFS partitions. */
246 .flags
= IORESOURCE_IO
,
252 * This driver requires:
254 * Arbitrary Based Buffers:
259 .name
= "AvfsDmaMem",
261 /* (945K * 8) = (128K *3) 5 playbacks / 3 server */
262 .end
= 0x64AD0000 - 1,
263 .flags
= IORESOURCE_IO
,
266 .name
= "AvfsFileSys",
268 .end
= 0x64AD1000 - 1, /* 4K */
269 .flags
= IORESOURCE_IO
,
275 * This driver requires:
277 * Arbitrary Based Buffers:
278 * Persistent memory for diagnostics.
282 .name
= "DiagPersistentMemory",
285 .flags
= IORESOURCE_MEM
,
291 * This driver requires:
293 * Arbitrary Based Buffers:
294 * Read and write buffers for Internal/External cards
298 .name
= "SmartCardInfo",
300 .end
= 0x64AD3800 - 1,
301 .flags
= IORESOURCE_IO
,
306 * NP Reset Vector - must be of the form xxCxxxxx
307 * NP Image - must be video bank 1
308 * NP IPC - must be video bank 2
311 .name
= "NP_Reset_Vector",
313 .end
= 0x27c01000 - 1,
314 .flags
= IORESOURCE_MEM
,
319 .end
= 0x27060000 - 1,
320 .flags
= IORESOURCE_MEM
,
325 .end
= 0x63580000 - 1,
326 .flags
= IORESOURCE_IO
,
329 * Add other resources here
335 * NON_DVR_CAPABLE CRONUS RESOURCES
337 struct resource non_dvr_cronus_resources
[] __initdata
=
345 .name
= "ST231aImage", /* Delta-Mu 1 image and ram */
347 .end
= 0x241FFFFF, /* 2MiB */
348 .flags
= IORESOURCE_MEM
,
351 .name
= "ST231aMonitor", /* 8KiB block ST231a monitor */
354 .flags
= IORESOURCE_MEM
,
357 .name
= "MediaMemory1",
359 .end
= 0x25FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
360 .flags
= IORESOURCE_MEM
,
368 .name
= "ST231bImage", /* Delta-Mu 2 image and ram */
370 .end
= 0x601FFFFF, /* 2MiB */
371 .flags
= IORESOURCE_IO
,
374 .name
= "ST231bMonitor", /* 8KiB block ST231b monitor */
377 .flags
= IORESOURCE_IO
,
380 .name
= "MediaMemory2",
382 .end
= 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
383 .flags
= IORESOURCE_IO
,
389 * This driver requires:
391 * Arbitrary Based Buffers:
392 * DSP_Image_Buff - DSP code and data images (1MB)
393 * ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
394 * ADSC_AUX_Buff - ADSC AUX buffer (16KB)
395 * ADSC_Main_Buff - ADSC Main buffer (16KB)
399 .name
= "DSP_Image_Buff",
402 .flags
= IORESOURCE_MEM
,
405 .name
= "ADSC_CPU_PCM_Buff",
408 .flags
= IORESOURCE_MEM
,
411 .name
= "ADSC_AUX_Buff",
414 .flags
= IORESOURCE_MEM
,
417 .name
= "ADSC_Main_Buff",
420 .flags
= IORESOURCE_MEM
,
424 * STAVEM driver/STAPI
426 * This driver requires:
428 * Arbitrary Based Buffers:
429 * This memory area is used for allocating buffers for Video decoding
430 * purposes. Allocation/De-allocation within this buffer is managed
431 * by the STAVMEM driver of the STAPI. They could be Decimated
432 * Picture Buffers, Intermediate Buffers, as deemed necessary for
433 * video decoding purposes, for any video decoders on Zeus.
437 .name
= "AVMEMPartition0",
439 .end
= 0x64180000 - 1, /* 12 MB total */
440 .flags
= IORESOURCE_IO
,
446 * This driver requires:
448 * Arbitrary Based Buffers:
455 .end
= 0x62700000 - 1, /* 7 MB total */
456 .flags
= IORESOURCE_IO
,
462 * This driver requires:
464 * Arbitrary Based Buffers:
465 * GraphicsHeap - PowerTV Graphics Heap
469 .name
= "GraphicsHeap",
471 .end
= 0x63500000 - 1, /* 14 MB total */
472 .flags
= IORESOURCE_IO
,
476 * multi com buffer area
478 * This driver requires:
480 * Arbitrary Based Buffers:
485 .name
= "MulticomSHM",
487 .end
= 0x26020000 - 1,
488 .flags
= IORESOURCE_MEM
,
494 * This driver requires:
496 * Arbitrary Based Buffers:
501 .name
= "BMM_Buffer",
503 .end
= 0x000AA000 - 1,
504 .flags
= IORESOURCE_MEM
,
508 * Display bins buffer for unit0
510 * This driver requires:
512 * Arbitrary Based Buffers:
513 * Display Bins for unit0
517 .name
= "DisplayBins0",
519 .end
= 0x00000FFF, /* 4 KB total */
520 .flags
= IORESOURCE_MEM
,
524 * Display bins buffer
526 * This driver requires:
528 * Arbitrary Based Buffers:
529 * Display Bins for unit1
533 .name
= "DisplayBins1",
535 .end
= 0x64AD5000 - 1, /* 4 KB total */
536 .flags
= IORESOURCE_IO
,
540 * AVFS: player HAL memory
545 .name
= "AvfsDmaMem",
547 .end
= 0x645D2C00 - 1, /* 945K * 3 for playback */
548 .flags
= IORESOURCE_IO
,
554 * This driver requires:
556 * Arbitrary Based Buffers:
557 * Persistent memory for diagnostics.
561 .name
= "DiagPersistentMemory",
564 .flags
= IORESOURCE_MEM
,
570 * This driver requires:
572 * Arbitrary Based Buffers:
573 * Read and write buffers for Internal/External cards
577 .name
= "SmartCardInfo",
579 .end
= 0x64AD3800 - 1,
580 .flags
= IORESOURCE_IO
,
585 * NP Reset Vector - must be of the form xxCxxxxx
586 * NP Image - must be video bank 1
587 * NP IPC - must be video bank 2
590 .name
= "NP_Reset_Vector",
592 .end
= 0x27c01000 - 1,
593 .flags
= IORESOURCE_MEM
,
598 .end
= 0x27060000 - 1,
599 .flags
= IORESOURCE_MEM
,
604 .end
= 0x63580000 - 1,
605 .flags
= IORESOURCE_IO
,