diff options
| author | David VomLehn <dvomlehn@cisco.com> | 2010-08-02 14:44:00 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2010-08-05 08:26:31 -0400 |
| commit | 51f1336d4dbd0935d873761f7f267c3f5abc9bd6 (patch) | |
| tree | 69a3e28b32624280e84527588c49242c67b54554 | |
| parent | 47a348614492987ef307aad299c09163344e4eaf (diff) | |
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>
| -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 | }; | ||
