Commit 51f1336d4dbd0935d873761f7f267c3f5abc9bd6
Committed by
Ralf Baechle
1 parent
47a3486144
Exists in
master
and in
7 other branches
MIPS: PowerTV: Add Gaia platform definitions.
Define ASIC address, memory preallocations, and initialization code for the Gaia platform. Signed-off-by: David VomLehn <dvomlehn@cisco.com> To: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/1519/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Showing 6 changed files with 708 additions and 11 deletions Side-by-side Diff
arch/mips/include/asm/mach-powertv/asic.h
... | ... | @@ -40,19 +40,23 @@ |
40 | 40 | FAMILY_8600VZB, |
41 | 41 | FAMILY_1500VZE, |
42 | 42 | FAMILY_1500VZF, |
43 | + FAMILY_8700, | |
43 | 44 | FAMILIES |
44 | 45 | }; |
45 | 46 | |
46 | 47 | /* Register maps for each ASIC */ |
47 | 48 | extern const struct register_map calliope_register_map; |
48 | 49 | extern const struct register_map cronus_register_map; |
50 | +extern const struct register_map gaia_register_map; | |
49 | 51 | extern const struct register_map zeus_register_map; |
50 | 52 | |
51 | 53 | extern struct resource dvr_cronus_resources[]; |
54 | +extern struct resource dvr_gaia_resources[]; | |
52 | 55 | extern struct resource dvr_zeus_resources[]; |
53 | 56 | extern struct resource non_dvr_calliope_resources[]; |
54 | 57 | extern struct resource non_dvr_cronus_resources[]; |
55 | 58 | extern struct resource non_dvr_cronuslite_resources[]; |
59 | +extern struct resource non_dvr_gaia_resources[]; | |
56 | 60 | extern struct resource non_dvr_vz_calliope_resources[]; |
57 | 61 | extern struct resource non_dvr_vze_calliope_resources[]; |
58 | 62 | extern struct resource non_dvr_vzf_calliope_resources[]; |
arch/mips/include/asm/mach-powertv/asic_regs.h
... | ... | @@ -27,7 +27,8 @@ |
27 | 27 | ASIC_CALLIOPE, |
28 | 28 | ASIC_CRONUS, |
29 | 29 | ASIC_CRONUSLITE, |
30 | - ASICS | |
30 | + ASIC_GAIA, | |
31 | + ASICS /* Number of supported ASICs */ | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | /* hardcoded values read from Chip Version registers */ |
... | ... | @@ -37,6 +38,7 @@ |
37 | 38 | |
38 | 39 | #define NAND_FLASH_BASE 0x03000000 |
39 | 40 | #define CALLIOPE_IO_BASE 0x08000000 |
41 | +#define GAIA_IO_BASE 0x09000000 | |
40 | 42 | #define CRONUS_IO_BASE 0x09000000 |
41 | 43 | #define ZEUS_IO_BASE 0x09000000 |
42 | 44 |
arch/mips/powertv/asic/Makefile
... | ... | @@ -16,9 +16,9 @@ |
16 | 16 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
17 | 17 | # |
18 | 18 | |
19 | -obj-y += asic-calliope.o asic-cronus.o asic-zeus.o asic_devices.o asic_int.o \ | |
20 | - irq_asic.o prealloc-calliope.o prealloc-cronus.o \ | |
21 | - prealloc-cronuslite.o prealloc-zeus.o | |
19 | +obj-y += asic-calliope.o asic-cronus.o asic-gaia.o asic-zeus.o \ | |
20 | + asic_devices.o asic_int.o irq_asic.o prealloc-calliope.o \ | |
21 | + prealloc-cronus.o prealloc-cronuslite.o prealloc-gaia.o prealloc-zeus.o | |
22 | 22 | |
23 | 23 | EXTRA_CFLAGS += -Wall -Werror |
arch/mips/powertv/asic/asic-gaia.c
1 | +/* | |
2 | + * Locations of devices in the Gaia ASIC | |
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 | +const struct register_map gaia_register_map __initdata = { | |
27 | + .eic_slow0_strt_add = {.phys = GAIA_IO_BASE + 0x000000}, | |
28 | + .eic_cfg_bits = {.phys = GAIA_IO_BASE + 0x000038}, | |
29 | + .eic_ready_status = {.phys = GAIA_IO_BASE + 0x00004C}, | |
30 | + | |
31 | + .chipver3 = {.phys = GAIA_IO_BASE + 0x2A0800}, | |
32 | + .chipver2 = {.phys = GAIA_IO_BASE + 0x2A0804}, | |
33 | + .chipver1 = {.phys = GAIA_IO_BASE + 0x2A0808}, | |
34 | + .chipver0 = {.phys = GAIA_IO_BASE + 0x2A080C}, | |
35 | + | |
36 | + /* The registers of IRBlaster */ | |
37 | + .uart1_intstat = {.phys = GAIA_IO_BASE + 0x2A1800}, | |
38 | + .uart1_inten = {.phys = GAIA_IO_BASE + 0x2A1804}, | |
39 | + .uart1_config1 = {.phys = GAIA_IO_BASE + 0x2A1808}, | |
40 | + .uart1_config2 = {.phys = GAIA_IO_BASE + 0x2A180C}, | |
41 | + .uart1_divisorhi = {.phys = GAIA_IO_BASE + 0x2A1810}, | |
42 | + .uart1_divisorlo = {.phys = GAIA_IO_BASE + 0x2A1814}, | |
43 | + .uart1_data = {.phys = GAIA_IO_BASE + 0x2A1818}, | |
44 | + .uart1_status = {.phys = GAIA_IO_BASE + 0x2A181C}, | |
45 | + | |
46 | + .int_stat_3 = {.phys = GAIA_IO_BASE + 0x2A2800}, | |
47 | + .int_stat_2 = {.phys = GAIA_IO_BASE + 0x2A2804}, | |
48 | + .int_stat_1 = {.phys = GAIA_IO_BASE + 0x2A2808}, | |
49 | + .int_stat_0 = {.phys = GAIA_IO_BASE + 0x2A280C}, | |
50 | + .int_config = {.phys = GAIA_IO_BASE + 0x2A2810}, | |
51 | + .int_int_scan = {.phys = GAIA_IO_BASE + 0x2A2818}, | |
52 | + .ien_int_3 = {.phys = GAIA_IO_BASE + 0x2A2830}, | |
53 | + .ien_int_2 = {.phys = GAIA_IO_BASE + 0x2A2834}, | |
54 | + .ien_int_1 = {.phys = GAIA_IO_BASE + 0x2A2838}, | |
55 | + .ien_int_0 = {.phys = GAIA_IO_BASE + 0x2A283C}, | |
56 | + .int_level_3_3 = {.phys = GAIA_IO_BASE + 0x2A2880}, | |
57 | + .int_level_3_2 = {.phys = GAIA_IO_BASE + 0x2A2884}, | |
58 | + .int_level_3_1 = {.phys = GAIA_IO_BASE + 0x2A2888}, | |
59 | + .int_level_3_0 = {.phys = GAIA_IO_BASE + 0x2A288C}, | |
60 | + .int_level_2_3 = {.phys = GAIA_IO_BASE + 0x2A2890}, | |
61 | + .int_level_2_2 = {.phys = GAIA_IO_BASE + 0x2A2894}, | |
62 | + .int_level_2_1 = {.phys = GAIA_IO_BASE + 0x2A2898}, | |
63 | + .int_level_2_0 = {.phys = GAIA_IO_BASE + 0x2A289C}, | |
64 | + .int_level_1_3 = {.phys = GAIA_IO_BASE + 0x2A28A0}, | |
65 | + .int_level_1_2 = {.phys = GAIA_IO_BASE + 0x2A28A4}, | |
66 | + .int_level_1_1 = {.phys = GAIA_IO_BASE + 0x2A28A8}, | |
67 | + .int_level_1_0 = {.phys = GAIA_IO_BASE + 0x2A28AC}, | |
68 | + .int_level_0_3 = {.phys = GAIA_IO_BASE + 0x2A28B0}, | |
69 | + .int_level_0_2 = {.phys = GAIA_IO_BASE + 0x2A28B4}, | |
70 | + .int_level_0_1 = {.phys = GAIA_IO_BASE + 0x2A28B8}, | |
71 | + .int_level_0_0 = {.phys = GAIA_IO_BASE + 0x2A28BC}, | |
72 | + .int_docsis_en = {.phys = GAIA_IO_BASE + 0x2A28F4}, | |
73 | + | |
74 | + .mips_pll_setup = {.phys = GAIA_IO_BASE + 0x1C0000}, | |
75 | + .fs432x4b4_usb_ctl = {.phys = GAIA_IO_BASE + 0x1C0024}, | |
76 | + .test_bus = {.phys = GAIA_IO_BASE + 0x1C00CC}, | |
77 | + .crt_spare = {.phys = GAIA_IO_BASE + 0x1c0108}, | |
78 | + .usb2_ohci_int_mask = {.phys = GAIA_IO_BASE + 0x20000C}, | |
79 | + .usb2_strap = {.phys = GAIA_IO_BASE + 0x200014}, | |
80 | + .ehci_hcapbase = {.phys = GAIA_IO_BASE + 0x21FE00}, | |
81 | + .ohci_hc_revision = {.phys = GAIA_IO_BASE + 0x21fc00}, | |
82 | + .bcm1_bs_lmi_steer = {.phys = GAIA_IO_BASE + 0x2E0004}, | |
83 | + .usb2_control = {.phys = GAIA_IO_BASE + 0x2E004C}, | |
84 | + .usb2_stbus_obc = {.phys = GAIA_IO_BASE + 0x21FF00}, | |
85 | + .usb2_stbus_mess_size = {.phys = GAIA_IO_BASE + 0x21FF04}, | |
86 | + .usb2_stbus_chunk_size = {.phys = GAIA_IO_BASE + 0x21FF08}, | |
87 | + | |
88 | + .pcie_regs = {.phys = GAIA_IO_BASE + 0x220000}, | |
89 | + .tim_ch = {.phys = GAIA_IO_BASE + 0x2A2C10}, | |
90 | + .tim_cl = {.phys = GAIA_IO_BASE + 0x2A2C14}, | |
91 | + .gpio_dout = {.phys = GAIA_IO_BASE + 0x2A2C20}, | |
92 | + .gpio_din = {.phys = GAIA_IO_BASE + 0x2A2C24}, | |
93 | + .gpio_dir = {.phys = GAIA_IO_BASE + 0x2A2C2C}, | |
94 | + .watchdog = {.phys = GAIA_IO_BASE + 0x2A2C30}, | |
95 | + .front_panel = {.phys = GAIA_IO_BASE + 0x2A3800}, | |
96 | +}; |
arch/mips/powertv/asic/asic_devices.c
1 | 1 | /* |
2 | - * ASIC Device List Intialization | |
3 | 2 | * |
4 | - * Description: Defines the platform resources for the SA settop. | |
3 | + * Description: Defines the platform resources for Gaia-based settops. | |
5 | 4 | * |
6 | 5 | * Copyright (C) 2005-2009 Scientific-Atlanta, Inc. |
7 | 6 | * |
... | ... | @@ -19,11 +18,6 @@ |
19 | 18 | * along with this program; if not, write to the Free Software |
20 | 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
21 | 20 | * |
22 | - * Author: Ken Eppinett | |
23 | - * David Schleef <ds@schleef.org> | |
24 | - * | |
25 | - * Description: Defines the platform resources for the SA settop. | |
26 | - * | |
27 | 21 | * NOTE: The bootloader allocates persistent memory at an address which is |
28 | 22 | * 16 MiB below the end of the highest address in KSEG0. All fixed |
29 | 23 | * address memory reservations must avoid this region. |
... | ... | @@ -289,6 +283,9 @@ |
289 | 283 | case BOOTLDRFAMILY('F', '1'): |
290 | 284 | platform_family = FAMILY_1500VZF; |
291 | 285 | break; |
286 | + case BOOTLDRFAMILY('8', '7'): | |
287 | + platform_family = FAMILY_8700; | |
288 | + break; | |
292 | 289 | default: |
293 | 290 | platform_family = -1; |
294 | 291 | } |
... | ... | @@ -524,6 +521,15 @@ |
524 | 521 | |
525 | 522 | pr_info("Platform: 8600/Vz Class B - CRONUS, " |
526 | 523 | "DVR_CAPABLE\n"); |
524 | + break; | |
525 | + | |
526 | + case FAMILY_8700: | |
527 | + platform_features = FFS_CAPABLE | PCIE_CAPABLE; | |
528 | + asic = ASIC_GAIA; | |
529 | + set_register_map(GAIA_IO_BASE, &gaia_register_map); | |
530 | + gp_resources = dvr_gaia_resources; | |
531 | + | |
532 | + pr_info("Platform: 8700 - GAIA, DVR_CAPABLE\n"); | |
527 | 533 | break; |
528 | 534 | |
529 | 535 | default: |
arch/mips/powertv/asic/prealloc-gaia.c
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 | +}; |