Path: blob/master/arch/mips/powertv/asic/prealloc-gaia.c
10818 views
/*1* Memory pre-allocations for Gaia boxes.2*3* Copyright (C) 2005-2009 Scientific-Atlanta, Inc.4*5* This program is free software; you can redistribute it and/or modify6* it under the terms of the GNU General Public License as published by7* the Free Software Foundation; either version 2 of the License, or8* (at your option) any later version.9*10* This program is distributed in the hope that it will be useful,11* but WITHOUT ANY WARRANTY; without even the implied warranty of12* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the13* GNU General Public License for more details.14*15* You should have received a copy of the GNU General Public License16* along with this program; if not, write to the Free Software17* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA18*19* Author: David VomLehn20*/2122#include <linux/init.h>23#include <asm/mach-powertv/asic.h>2425/*26* DVR_CAPABLE GAIA RESOURCES27*/28struct resource dvr_gaia_resources[] __initdata = {29/*30*31* VIDEO1 / LX132*33*/34{35.name = "ST231aImage", /* Delta-Mu 1 image and ram */36.start = 0x24000000,37.end = 0x241FFFFF, /* 2MiB */38.flags = IORESOURCE_MEM,39},40{41.name = "ST231aMonitor", /* 8KiB block ST231a monitor */42.start = 0x24200000,43.end = 0x24201FFF,44.flags = IORESOURCE_MEM,45},46{47.name = "MediaMemory1",48.start = 0x24202000,49.end = 0x25FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */50.flags = IORESOURCE_MEM,51},52/*53*54* VIDEO2 / LX255*56*/57{58.name = "ST231bImage", /* Delta-Mu 2 image and ram */59.start = 0x60000000,60.end = 0x601FFFFF, /* 2MiB */61.flags = IORESOURCE_IO,62},63{64.name = "ST231bMonitor", /* 8KiB block ST231b monitor */65.start = 0x60200000,66.end = 0x60201FFF,67.flags = IORESOURCE_IO,68},69{70.name = "MediaMemory2",71.start = 0x60202000,72.end = 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */73.flags = IORESOURCE_IO,74},75/*76*77* Sysaudio Driver78*79* This driver requires:80*81* Arbitrary Based Buffers:82* DSP_Image_Buff - DSP code and data images (1MB)83* ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)84* ADSC_AUX_Buff - ADSC AUX buffer (16KB)85* ADSC_Main_Buff - ADSC Main buffer (16KB)86*87*/88{89.name = "DSP_Image_Buff",90.start = 0x00000000,91.end = 0x000FFFFF,92.flags = IORESOURCE_MEM,93},94{95.name = "ADSC_CPU_PCM_Buff",96.start = 0x00000000,97.end = 0x00009FFF,98.flags = IORESOURCE_MEM,99},100{101.name = "ADSC_AUX_Buff",102.start = 0x00000000,103.end = 0x00003FFF,104.flags = IORESOURCE_MEM,105},106{107.name = "ADSC_Main_Buff",108.start = 0x00000000,109.end = 0x00003FFF,110.flags = IORESOURCE_MEM,111},112/*113*114* STAVEM driver/STAPI115*116* This driver requires:117*118* Arbitrary Based Buffers:119* This memory area is used for allocating buffers for Video decoding120* purposes. Allocation/De-allocation within this buffer is managed121* by the STAVMEM driver of the STAPI. They could be Decimated122* Picture Buffers, Intermediate Buffers, as deemed necessary for123* video decoding purposes, for any video decoders on Zeus.124*125*/126{127.name = "AVMEMPartition0",128.start = 0x63580000,129.end = 0x64180000 - 1, /* 12 MB total */130.flags = IORESOURCE_IO,131},132/*133*134* DOCSIS Subsystem135*136* This driver requires:137*138* Arbitrary Based Buffers:139* Docsis -140*141*/142{143.name = "Docsis",144.start = 0x62000000,145.end = 0x62700000 - 1, /* 7 MB total */146.flags = IORESOURCE_IO,147},148/*149*150* GHW HAL Driver151*152* This driver requires:153*154* Arbitrary Based Buffers:155* GraphicsHeap - PowerTV Graphics Heap156*157*/158{159.name = "GraphicsHeap",160.start = 0x62700000,161.end = 0x63500000 - 1, /* 14 MB total */162.flags = IORESOURCE_IO,163},164/*165*166* multi com buffer area167*168* This driver requires:169*170* Arbitrary Based Buffers:171* Docsis -172*173*/174{175.name = "MulticomSHM",176.start = 0x26000000,177.end = 0x26020000 - 1,178.flags = IORESOURCE_MEM,179},180/*181*182* DMA Ring buffer183*184* This driver requires:185*186* Arbitrary Based Buffers:187* Docsis -188*189*/190{191.name = "BMM_Buffer",192.start = 0x00000000,193.end = 0x00280000 - 1,194.flags = IORESOURCE_MEM,195},196/*197*198* Display bins buffer for unit0199*200* This driver requires:201*202* Arbitrary Based Buffers:203* Display Bins for unit0204*205*/206{207.name = "DisplayBins0",208.start = 0x00000000,209.end = 0x00000FFF, /* 4 KB total */210.flags = IORESOURCE_MEM,211},212/*213*214* Display bins buffer215*216* This driver requires:217*218* Arbitrary Based Buffers:219* Display Bins for unit1220*221*/222{223.name = "DisplayBins1",224.start = 0x64AD4000,225.end = 0x64AD5000 - 1, /* 4 KB total */226.flags = IORESOURCE_IO,227},228/*229*230* ITFS231*232* This driver requires:233*234* Arbitrary Based Buffers:235* Docsis -236*237*/238{239.name = "ITFS",240.start = 0x64180000,241/* 815,104 bytes each for 2 ITFS partitions. */242.end = 0x6430DFFF,243.flags = IORESOURCE_IO,244},245/*246*247* AVFS248*249* This driver requires:250*251* Arbitrary Based Buffers:252* Docsis -253*254*/255{256.name = "AvfsDmaMem",257.start = 0x6430E000,258/* (945K * 8) = (128K *3) 5 playbacks / 3 server */259.end = 0x64AD0000 - 1,260.flags = IORESOURCE_IO,261},262{263.name = "AvfsFileSys",264.start = 0x64AD0000,265.end = 0x64AD1000 - 1, /* 4K */266.flags = IORESOURCE_IO,267},268/*269*270* Smartcard271*272* This driver requires:273*274* Arbitrary Based Buffers:275* Read and write buffers for Internal/External cards276*277*/278{279.name = "SmartCardInfo",280.start = 0x64AD1000,281.end = 0x64AD3800 - 1,282.flags = IORESOURCE_IO,283},284/*285*286* KAVNET287* NP Reset Vector - must be of the form xxCxxxxx288* NP Image - must be video bank 1289* NP IPC - must be video bank 2290*/291{292.name = "NP_Reset_Vector",293.start = 0x27c00000,294.end = 0x27c01000 - 1,295.flags = IORESOURCE_MEM,296},297{298.name = "NP_Image",299.start = 0x27020000,300.end = 0x27060000 - 1,301.flags = IORESOURCE_MEM,302},303{304.name = "NP_IPC",305.start = 0x63500000,306.end = 0x63580000 - 1,307.flags = IORESOURCE_IO,308},309/*310* Add other resources here311*/312{ },313};314315/*316* NON_DVR_CAPABLE GAIA RESOURCES317*/318struct resource non_dvr_gaia_resources[] __initdata = {319/*320*321* VIDEO1 / LX1322*323*/324{325.name = "ST231aImage", /* Delta-Mu 1 image and ram */326.start = 0x24000000,327.end = 0x241FFFFF, /* 2MiB */328.flags = IORESOURCE_MEM,329},330{331.name = "ST231aMonitor", /* 8KiB block ST231a monitor */332.start = 0x24200000,333.end = 0x24201FFF,334.flags = IORESOURCE_MEM,335},336{337.name = "MediaMemory1",338.start = 0x24202000,339.end = 0x25FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */340.flags = IORESOURCE_MEM,341},342/*343*344* VIDEO2 / LX2345*346*/347{348.name = "ST231bImage", /* Delta-Mu 2 image and ram */349.start = 0x60000000,350.end = 0x601FFFFF, /* 2MiB */351.flags = IORESOURCE_IO,352},353{354.name = "ST231bMonitor", /* 8KiB block ST231b monitor */355.start = 0x60200000,356.end = 0x60201FFF,357.flags = IORESOURCE_IO,358},359{360.name = "MediaMemory2",361.start = 0x60202000,362.end = 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */363.flags = IORESOURCE_IO,364},365/*366*367* Sysaudio Driver368*369* This driver requires:370*371* Arbitrary Based Buffers:372* DSP_Image_Buff - DSP code and data images (1MB)373* ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)374* ADSC_AUX_Buff - ADSC AUX buffer (16KB)375* ADSC_Main_Buff - ADSC Main buffer (16KB)376*377*/378{379.name = "DSP_Image_Buff",380.start = 0x00000000,381.end = 0x000FFFFF,382.flags = IORESOURCE_MEM,383},384{385.name = "ADSC_CPU_PCM_Buff",386.start = 0x00000000,387.end = 0x00009FFF,388.flags = IORESOURCE_MEM,389},390{391.name = "ADSC_AUX_Buff",392.start = 0x00000000,393.end = 0x00003FFF,394.flags = IORESOURCE_MEM,395},396{397.name = "ADSC_Main_Buff",398.start = 0x00000000,399.end = 0x00003FFF,400.flags = IORESOURCE_MEM,401},402/*403*404* STAVEM driver/STAPI405*406* This driver requires:407*408* Arbitrary Based Buffers:409* This memory area is used for allocating buffers for Video decoding410* purposes. Allocation/De-allocation within this buffer is managed411* by the STAVMEM driver of the STAPI. They could be Decimated412* Picture Buffers, Intermediate Buffers, as deemed necessary for413* video decoding purposes, for any video decoders on Zeus.414*415*/416{417.name = "AVMEMPartition0",418.start = 0x63580000,419.end = 0x64180000 - 1, /* 12 MB total */420.flags = IORESOURCE_IO,421},422/*423*424* DOCSIS Subsystem425*426* This driver requires:427*428* Arbitrary Based Buffers:429* Docsis -430*431*/432{433.name = "Docsis",434.start = 0x62000000,435.end = 0x62700000 - 1, /* 7 MB total */436.flags = IORESOURCE_IO,437},438/*439*440* GHW HAL Driver441*442* This driver requires:443*444* Arbitrary Based Buffers:445* GraphicsHeap - PowerTV Graphics Heap446*447*/448{449.name = "GraphicsHeap",450.start = 0x62700000,451.end = 0x63500000 - 1, /* 14 MB total */452.flags = IORESOURCE_IO,453},454/*455*456* multi com buffer area457*458* This driver requires:459*460* Arbitrary Based Buffers:461* Docsis -462*463*/464{465.name = "MulticomSHM",466.start = 0x26000000,467.end = 0x26020000 - 1,468.flags = IORESOURCE_MEM,469},470/*471*472* DMA Ring buffer473*474* This driver requires:475*476* Arbitrary Based Buffers:477* Docsis -478*479*/480{481.name = "BMM_Buffer",482.start = 0x00000000,483.end = 0x000AA000 - 1,484.flags = IORESOURCE_MEM,485},486/*487*488* Display bins buffer for unit0489*490* This driver requires:491*492* Arbitrary Based Buffers:493* Display Bins for unit0494*495*/496{497.name = "DisplayBins0",498.start = 0x00000000,499.end = 0x00000FFF, /* 4 KB total */500.flags = IORESOURCE_MEM,501},502/*503*504* Display bins buffer505*506* This driver requires:507*508* Arbitrary Based Buffers:509* Display Bins for unit1510*511*/512{513.name = "DisplayBins1",514.start = 0x64AD4000,515.end = 0x64AD5000 - 1, /* 4 KB total */516.flags = IORESOURCE_IO,517},518/*519*520* AVFS: player HAL memory521*522*523*/524{525.name = "AvfsDmaMem",526.start = 0x6430E000,527.end = 0x645D2C00 - 1, /* 945K * 3 for playback */528.flags = IORESOURCE_IO,529},530/*531*532* PMEM533*534* This driver requires:535*536* Arbitrary Based Buffers:537* Persistent memory for diagnostics.538*539*/540{541.name = "DiagPersistentMemory",542.start = 0x00000000,543.end = 0x10000 - 1,544.flags = IORESOURCE_MEM,545},546/*547*548* Smartcard549*550* This driver requires:551*552* Arbitrary Based Buffers:553* Read and write buffers for Internal/External cards554*555*/556{557.name = "SmartCardInfo",558.start = 0x64AD1000,559.end = 0x64AD3800 - 1,560.flags = IORESOURCE_IO,561},562/*563*564* KAVNET565* NP Reset Vector - must be of the form xxCxxxxx566* NP Image - must be video bank 1567* NP IPC - must be video bank 2568*/569{570.name = "NP_Reset_Vector",571.start = 0x27c00000,572.end = 0x27c01000 - 1,573.flags = IORESOURCE_MEM,574},575{576.name = "NP_Image",577.start = 0x27020000,578.end = 0x27060000 - 1,579.flags = IORESOURCE_MEM,580},581{582.name = "NP_IPC",583.start = 0x63500000,584.end = 0x63580000 - 1,585.flags = IORESOURCE_IO,586},587{ },588};589590591