1 /* 2 * Memory pre-allocations for Zeus 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: Ken Eppinett 21 * David Schleef <ds@schleef.org> 22 */ 23 24 #include <linux/init.h> 25 #include <linux/ioport.h> 26 #include <asm/mach-powertv/asic.h> 27 #include "prealloc.h" 28 29 /* 30 * DVR_CAPABLE RESOURCES 31 */ 32 struct resource dvr_zeus_resources[] __initdata = 33 { 34 /* 35 * VIDEO1 / LX1 36 */ 37 /* Delta-Mu 1 image (2MiB) */ 38 PREALLOC_NORMAL("ST231aImage", 0x20000000, 0x20200000-1, 39 IORESOURCE_MEM) 40 /* Delta-Mu 1 monitor (8KiB) */ 41 PREALLOC_NORMAL("ST231aMonitor", 0x20200000, 0x20202000-1, 42 IORESOURCE_MEM) 43 /* Delta-Mu 1 RAM (~29.9MiB (32MiB - (2MiB + 8KiB))) */ 44 PREALLOC_NORMAL("MediaMemory1", 0x20202000, 0x22000000-1, 45 IORESOURCE_MEM) 46 47 /* 48 * VIDEO2 / LX2 49 */ 50 /* Delta-Mu 2 image (2MiB) */ 51 PREALLOC_NORMAL("ST231bImage", 0x30000000, 0x30200000-1, 52 IORESOURCE_MEM) 53 /* Delta-Mu 2 monitor (8KiB) */ 54 PREALLOC_NORMAL("ST231bMonitor", 0x30200000, 0x30202000-1, 55 IORESOURCE_MEM) 56 /* Delta-Mu 2 RAM (~29.9MiB (32MiB - (2MiB + 8KiB))) */ 57 PREALLOC_NORMAL("MediaMemory2", 0x30202000, 0x32000000-1, 58 IORESOURCE_MEM) 59 60 /* 61 * Sysaudio Driver 62 */ 63 /* DSP code and data images (1MiB) */ 64 PREALLOC_NORMAL("DSP_Image_Buff", 0x00000000, 0x00100000-1, 65 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 66 /* ADSC CPU PCM buffer (40KiB) */ 67 PREALLOC_NORMAL("ADSC_CPU_PCM_Buff", 0x00000000, 0x0000A000-1, 68 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 69 /* ADSC AUX buffer (16KiB) */ 70 PREALLOC_NORMAL("ADSC_AUX_Buff", 0x00000000, 0x00004000-1, 71 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 72 /* ADSC Main buffer (16KiB) */ 73 PREALLOC_NORMAL("ADSC_Main_Buff", 0x00000000, 0x00004000-1, 74 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 75 76 /* 77 * STAVEM driver/STAPI 78 * 79 * This memory area is used for allocating buffers for Video decoding 80 * purposes. Allocation/De-allocation within this buffer is managed 81 * by the STAVMEM driver of the STAPI. They could be Decimated 82 * Picture Buffers, Intermediate Buffers, as deemed necessary for 83 * video decoding purposes, for any video decoders on Zeus. 84 */ 85 /* 12MiB */ 86 PREALLOC_NORMAL("AVMEMPartition0", 0x00000000, 0x00c00000-1, 87 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 88 89 /* 90 * DOCSIS Subsystem 91 */ 92 /* 7MiB */ 93 PREALLOC_DOCSIS("Docsis", 0x40100000, 0x40800000-1, IORESOURCE_MEM) 94 95 /* 96 * GHW HAL Driver 97 */ 98 /* PowerTV Graphics Heap (14MiB) */ 99 PREALLOC_NORMAL("GraphicsHeap", 0x46900000, 0x47700000-1, 100 IORESOURCE_MEM) 101 102 /* 103 * multi com buffer area 104 */ 105 /* 128KiB */ 106 PREALLOC_NORMAL("MulticomSHM", 0x47900000, 0x47920000-1, 107 IORESOURCE_MEM) 108 109 /* 110 * DMA Ring buffer 111 */ 112 /* 2.5MiB */ 113 PREALLOC_NORMAL("BMM_Buffer", 0x00000000, 0x00280000-1, 114 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 115 116 /* 117 * Display bins buffer for unit0 118 */ 119 /* 4KiB */ 120 PREALLOC_NORMAL("DisplayBins0", 0x00000000, 0x00001000-1, 121 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 122 123 /* 124 * Display bins buffer for unit1 125 */ 126 /* 4KiB */ 127 PREALLOC_NORMAL("DisplayBins1", 0x00000000, 0x00001000-1, 128 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 129 130 /* 131 * ITFS 132 */ 133 /* 815,104 bytes each for 2 ITFS partitions. */ 134 PREALLOC_NORMAL("ITFS", 0x00000000, 0x0018E000-1, 135 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 136 137 /* 138 * AVFS 139 */ 140 /* (945K * 8) = (128K * 3) 5 playbacks / 3 server */ 141 PREALLOC_NORMAL("AvfsDmaMem", 0x00000000, 0x007c2000-1, 142 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 143 /* 4KiB */ 144 PREALLOC_NORMAL("AvfsFileSys", 0x00000000, 0x00001000-1, 145 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 146 147 /* 148 * PMEM 149 */ 150 /* Persistent memory for diagnostics (64KiB) */ 151 PREALLOC_PMEM("DiagPersistentMemory", 0x00000000, 0x10000-1, 152 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 153 154 /* 155 * Smartcard 156 */ 157 /* Read and write buffers for Internal/External cards (10KiB) */ 158 PREALLOC_NORMAL("SmartCardInfo", 0x00000000, 0x2800-1, 159 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 160 161 /* 162 * TFTPBuffer 163 * 164 * This buffer is used in some minimal configurations (e.g. two-way 165 * loader) for storing software images 166 */ 167 PREALLOC_TFTP("TFTPBuffer", 0x00000000, MEBIBYTE(80)-1, 168 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 169 170 /* 171 * Add other resources here 172 */ 173 174 /* 175 * End of Resource marker 176 */ 177 { 178 .flags = 0, 179 }, 180 }; 181 182 /* 183 * NON_DVR_CAPABLE ZEUS RESOURCES 184 */ 185 struct resource non_dvr_zeus_resources[] __initdata = 186 { 187 /* 188 * VIDEO1 / LX1 189 */ 190 /* Delta-Mu 1 image (2MiB) */ 191 PREALLOC_NORMAL("ST231aImage", 0x20000000, 0x20200000-1, 192 IORESOURCE_MEM) 193 /* Delta-Mu 1 monitor (8KiB) */ 194 PREALLOC_NORMAL("ST231aMonitor", 0x20200000, 0x20202000-1, 195 IORESOURCE_MEM) 196 /* Delta-Mu 1 RAM (~29.9MiB (32MiB - (2MiB + 8KiB))) */ 197 PREALLOC_NORMAL("MediaMemory1", 0x20202000, 0x22000000-1, 198 IORESOURCE_MEM) 199 200 /* 201 * Sysaudio Driver 202 */ 203 /* DSP code and data images (1MiB) */ 204 PREALLOC_NORMAL("DSP_Image_Buff", 0x00000000, 0x00100000-1, 205 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 206 /* ADSC CPU PCM buffer (40KiB) */ 207 PREALLOC_NORMAL("ADSC_CPU_PCM_Buff", 0x00000000, 0x0000A000-1, 208 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 209 /* ADSC AUX buffer (16KiB) */ 210 PREALLOC_NORMAL("ADSC_AUX_Buff", 0x00000000, 0x00004000-1, 211 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 212 /* ADSC Main buffer (16KiB) */ 213 PREALLOC_NORMAL("ADSC_Main_Buff", 0x00000000, 0x00004000-1, 214 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 215 216 /* 217 * STAVEM driver/STAPI 218 */ 219 /* 6MiB */ 220 PREALLOC_NORMAL("AVMEMPartition0", 0x00000000, 0x00600000-1, 221 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 222 223 /* 224 * DOCSIS Subsystem 225 */ 226 /* 7MiB */ 227 PREALLOC_DOCSIS("Docsis", 0x40100000, 0x40800000-1, IORESOURCE_MEM) 228 229 /* 230 * GHW HAL Driver 231 */ 232 /* PowerTV Graphics Heap (14MiB) */ 233 PREALLOC_NORMAL("GraphicsHeap", 0x46900000, 0x47700000-1, 234 IORESOURCE_MEM) 235 236 /* 237 * multi com buffer area 238 */ 239 /* 128KiB */ 240 PREALLOC_NORMAL("MulticomSHM", 0x47900000, 0x47920000-1, 241 IORESOURCE_MEM) 242 243 /* 244 * DMA Ring buffer 245 */ 246 /* 2.5MiB */ 247 PREALLOC_NORMAL("BMM_Buffer", 0x00000000, 0x00280000-1, 248 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 249 250 /* 251 * Display bins buffer for unit0 252 */ 253 /* 4KiB */ 254 PREALLOC_NORMAL("DisplayBins0", 0x00000000, 0x00001000-1, 255 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 256 257 /* 258 * AVFS: player HAL memory 259 */ 260 /* 945K * 3 for playback */ 261 PREALLOC_NORMAL("AvfsDmaMem", 0x00000000, 0x002c4c00-1, 262 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 263 264 /* 265 * PMEM 266 */ 267 /* Persistent memory for diagnostics (64KiB) */ 268 PREALLOC_PMEM("DiagPersistentMemory", 0x00000000, 0x10000-1, 269 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 270 271 /* 272 * Smartcard 273 */ 274 /* Read and write buffers for Internal/External cards (10KiB) */ 275 PREALLOC_NORMAL("SmartCardInfo", 0x00000000, 0x2800-1, 276 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 277 278 /* 279 * NAND Flash 280 */ 281 /* 10KiB */ 282 PREALLOC_NORMAL("NandFlash", NAND_FLASH_BASE, NAND_FLASH_BASE+0x400-1, 283 IORESOURCE_MEM) 284 285 /* 286 * TFTPBuffer 287 * 288 * This buffer is used in some minimal configurations (e.g. two-way 289 * loader) for storing software images 290 */ 291 PREALLOC_TFTP("TFTPBuffer", 0x00000000, MEBIBYTE(80)-1, 292 (IORESOURCE_MEM|IORESOURCE_PTV_RES_LOEXT)) 293 294 /* 295 * Add other resources here 296 */ 297 298 /* 299 * End of Resource marker 300 */ 301 { 302 .flags = 0, 303 }, 304 }; 305