diff options
-rw-r--r-- | arch/mips/include/asm/mach-powertv/asic.h | 4 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-powertv/asic_regs.h | 4 | ||||
-rw-r--r-- | arch/mips/powertv/asic/Makefile | 6 | ||||
-rw-r--r-- | arch/mips/powertv/asic/asic-gaia.c | 96 | ||||
-rw-r--r-- | arch/mips/powertv/asic/asic_devices.c | 20 | ||||
-rw-r--r-- | arch/mips/powertv/asic/prealloc-gaia.c | 589 |
6 files changed, 708 insertions, 11 deletions
diff --git a/arch/mips/include/asm/mach-powertv/asic.h b/arch/mips/include/asm/mach-powertv/asic.h index bcad43a93ebf..df33d93e4f56 100644 --- a/arch/mips/include/asm/mach-powertv/asic.h +++ b/arch/mips/include/asm/mach-powertv/asic.h | |||
@@ -40,19 +40,23 @@ enum family_type { | |||
40 | FAMILY_8600VZB, | 40 | FAMILY_8600VZB, |
41 | FAMILY_1500VZE, | 41 | FAMILY_1500VZE, |
42 | FAMILY_1500VZF, | 42 | FAMILY_1500VZF, |
43 | FAMILY_8700, | ||
43 | FAMILIES | 44 | FAMILIES |
44 | }; | 45 | }; |
45 | 46 | ||
46 | /* Register maps for each ASIC */ | 47 | /* Register maps for each ASIC */ |
47 | extern const struct register_map calliope_register_map; | 48 | extern const struct register_map calliope_register_map; |
48 | extern const struct register_map cronus_register_map; | 49 | extern const struct register_map cronus_register_map; |
50 | extern const struct register_map gaia_register_map; | ||
49 | extern const struct register_map zeus_register_map; | 51 | extern const struct register_map zeus_register_map; |
50 | 52 | ||
51 | extern struct resource dvr_cronus_resources[]; | 53 | extern struct resource dvr_cronus_resources[]; |
54 | extern struct resource dvr_gaia_resources[]; | ||
52 | extern struct resource dvr_zeus_resources[]; | 55 | extern struct resource dvr_zeus_resources[]; |
53 | extern struct resource non_dvr_calliope_resources[]; | 56 | extern struct resource non_dvr_calliope_resources[]; |
54 | extern struct resource non_dvr_cronus_resources[]; | 57 | extern struct resource non_dvr_cronus_resources[]; |
55 | extern struct resource non_dvr_cronuslite_resources[]; | 58 | extern struct resource non_dvr_cronuslite_resources[]; |
59 | extern struct resource non_dvr_gaia_resources[]; | ||
56 | extern struct resource non_dvr_vz_calliope_resources[]; | 60 | extern struct resource non_dvr_vz_calliope_resources[]; |
57 | extern struct resource non_dvr_vze_calliope_resources[]; | 61 | extern struct resource non_dvr_vze_calliope_resources[]; |
58 | extern struct resource non_dvr_vzf_calliope_resources[]; | 62 | extern struct resource non_dvr_vzf_calliope_resources[]; |
diff --git a/arch/mips/include/asm/mach-powertv/asic_regs.h b/arch/mips/include/asm/mach-powertv/asic_regs.h index 1e11236c6dbc..2657ae6a7ec7 100644 --- a/arch/mips/include/asm/mach-powertv/asic_regs.h +++ b/arch/mips/include/asm/mach-powertv/asic_regs.h | |||
@@ -27,7 +27,8 @@ enum asic_type { | |||
27 | ASIC_CALLIOPE, | 27 | ASIC_CALLIOPE, |
28 | ASIC_CRONUS, | 28 | ASIC_CRONUS, |
29 | ASIC_CRONUSLITE, | 29 | ASIC_CRONUSLITE, |
30 | ASICS | 30 | ASIC_GAIA, |
31 | ASICS /* Number of supported ASICs */ | ||
31 | }; | 32 | }; |
32 | 33 | ||
33 | /* hardcoded values read from Chip Version registers */ | 34 | /* hardcoded values read from Chip Version registers */ |
@@ -37,6 +38,7 @@ enum asic_type { | |||
37 | 38 | ||
38 | #define NAND_FLASH_BASE 0x03000000 | 39 | #define NAND_FLASH_BASE 0x03000000 |
39 | #define CALLIOPE_IO_BASE 0x08000000 | 40 | #define CALLIOPE_IO_BASE 0x08000000 |
41 | #define GAIA_IO_BASE 0x09000000 | ||
40 | #define CRONUS_IO_BASE 0x09000000 | 42 | #define CRONUS_IO_BASE 0x09000000 |
41 | #define ZEUS_IO_BASE 0x09000000 | 43 | #define ZEUS_IO_BASE 0x09000000 |
42 | 44 | ||
diff --git a/arch/mips/powertv/asic/Makefile b/arch/mips/powertv/asic/Makefile index bebfdcff0443..f0e95dc0ac97 100644 --- a/arch/mips/powertv/asic/Makefile +++ b/arch/mips/powertv/asic/Makefile | |||
@@ -16,8 +16,8 @@ | |||
16 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 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 \ | 19 | obj-y += asic-calliope.o asic-cronus.o asic-gaia.o asic-zeus.o \ |
20 | irq_asic.o prealloc-calliope.o prealloc-cronus.o \ | 20 | asic_devices.o asic_int.o irq_asic.o prealloc-calliope.o \ |
21 | prealloc-cronuslite.o prealloc-zeus.o | 21 | prealloc-cronus.o prealloc-cronuslite.o prealloc-gaia.o prealloc-zeus.o |
22 | 22 | ||
23 | EXTRA_CFLAGS += -Wall -Werror | 23 | EXTRA_CFLAGS += -Wall -Werror |
diff --git a/arch/mips/powertv/asic/asic-gaia.c b/arch/mips/powertv/asic/asic-gaia.c new file mode 100644 index 000000000000..91dda682752c --- /dev/null +++ b/arch/mips/powertv/asic/asic-gaia.c | |||
@@ -0,0 +1,96 @@ | |||
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 | }; | ||
diff --git a/arch/mips/powertv/asic/asic_devices.c b/arch/mips/powertv/asic/asic_devices.c index 006285c30648..095a887df39c 100644 --- a/arch/mips/powertv/asic/asic_devices.c +++ b/arch/mips/powertv/asic/asic_devices.c | |||
@@ -1,7 +1,6 @@ | |||
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 | * Copyright (C) 2005-2009 Scientific-Atlanta, Inc. | 5 | * Copyright (C) 2005-2009 Scientific-Atlanta, Inc. |
7 | * | 6 | * |
@@ -19,11 +18,6 @@ | |||
19 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
20 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 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 | * NOTE: The bootloader allocates persistent memory at an address which is | 21 | * NOTE: The bootloader allocates persistent memory at an address which is |
28 | * 16 MiB below the end of the highest address in KSEG0. All fixed | 22 | * 16 MiB below the end of the highest address in KSEG0. All fixed |
29 | * address memory reservations must avoid this region. | 23 | * address memory reservations must avoid this region. |
@@ -289,6 +283,9 @@ static __init noinline void platform_set_family(void) | |||
289 | case BOOTLDRFAMILY('F', '1'): | 283 | case BOOTLDRFAMILY('F', '1'): |
290 | platform_family = FAMILY_1500VZF; | 284 | platform_family = FAMILY_1500VZF; |
291 | break; | 285 | break; |
286 | case BOOTLDRFAMILY('8', '7'): | ||
287 | platform_family = FAMILY_8700; | ||
288 | break; | ||
292 | default: | 289 | default: |
293 | platform_family = -1; | 290 | platform_family = -1; |
294 | } | 291 | } |
@@ -526,6 +523,15 @@ void __init configure_platform(void) | |||
526 | "DVR_CAPABLE\n"); | 523 | "DVR_CAPABLE\n"); |
527 | break; | 524 | break; |
528 | 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"); | ||
533 | break; | ||
534 | |||
529 | default: | 535 | default: |
530 | pr_crit("Platform: UNKNOWN PLATFORM\n"); | 536 | pr_crit("Platform: UNKNOWN PLATFORM\n"); |
531 | break; | 537 | break; |
diff --git a/arch/mips/powertv/asic/prealloc-gaia.c b/arch/mips/powertv/asic/prealloc-gaia.c new file mode 100644 index 000000000000..8ac8c7aeb986 --- /dev/null +++ b/arch/mips/powertv/asic/prealloc-gaia.c | |||
@@ -0,0 +1,589 @@ | |||
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 | }; | ||