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,