14f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn/* 24f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * Definitions for memory preallocations 34f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * 44f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * Copyright (C) 2005-2009 Scientific-Atlanta, Inc. 54f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * 64f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * This program is free software; you can redistribute it and/or modify 74f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * it under the terms of the GNU General Public License as published by 84f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * the Free Software Foundation; either version 2 of the License, or 94f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * (at your option) any later version. 104f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * 114f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * This program is distributed in the hope that it will be useful, 124f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * but WITHOUT ANY WARRANTY; without even the implied warranty of 134f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 144f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * GNU General Public License for more details. 154f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * 164f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * You should have received a copy of the GNU General Public License 174f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * along with this program; if not, write to the Free Software 184f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 194f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn */ 204f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn 214f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#ifndef _ARCH_MIPS_POWERTV_ASIC_PREALLOC_H 224f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define _ARCH_MIPS_POWERTV_ASIC_PREALLOC_H 234f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn 244f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define KIBIBYTE(n) ((n) * 1024) /* Number of kibibytes */ 254f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define MEBIBYTE(n) ((n) * KIBIBYTE(1024)) /* Number of mebibytes */ 264f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn 274f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn/* "struct resource" array element definition */ 284f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC(NAME, START, END, FLAGS) { \ 294f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn .name = (NAME), \ 304f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn .start = (START), \ 314f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn .end = (END), \ 324f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn .flags = (FLAGS) \ 334f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn }, 344f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn 354f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn/* Individual resources in the preallocated resource arrays are defined using 364f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * macros. These macros are conditionally defined based on their 374f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * corresponding kernel configuration flag: 384f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * - CONFIG_PREALLOC_NORMAL: preallocate resources for a normal settop box 394f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * - CONFIG_PREALLOC_TFTP: preallocate the TFTP download resource 404f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * - CONFIG_PREALLOC_DOCSIS: preallocate the DOCSIS resource 414f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn * - CONFIG_PREALLOC_PMEM: reserve space for persistent memory 424f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn */ 434f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#ifdef CONFIG_PREALLOC_NORMAL 444f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC_NORMAL(name, start, end, flags) \ 454f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn PREALLOC(name, start, end, flags) 464f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#else 474f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC_NORMAL(name, start, end, flags) 484f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#endif 494f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn 504f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#ifdef CONFIG_PREALLOC_TFTP 514f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC_TFTP(name, start, end, flags) \ 524f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn PREALLOC(name, start, end, flags) 534f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#else 544f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC_TFTP(name, start, end, flags) 554f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#endif 564f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn 574f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#ifdef CONFIG_PREALLOC_DOCSIS 584f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC_DOCSIS(name, start, end, flags) \ 594f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn PREALLOC(name, start, end, flags) 604f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#else 614f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC_DOCSIS(name, start, end, flags) 624f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#endif 634f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn 644f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#ifdef CONFIG_PREALLOC_PMEM 654f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC_PMEM(name, start, end, flags) \ 664f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn PREALLOC(name, start, end, flags) 674f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#else 684f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#define PREALLOC_PMEM(name, start, end, flags) 694f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#endif 704f1e099582c119cf73d6a873b53e8edaa773d065David VomLehn#endif 71