• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/arch/mips/powertv/asic/
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 */
29struct 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 */
319struct 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