summaryrefslogtreecommitdiff
path: root/arch/mips/mti-malta/malta-memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/mti-malta/malta-memory.c')
-rw-r--r--arch/mips/mti-malta/malta-memory.c92
1 files changed, 0 insertions, 92 deletions
diff --git a/arch/mips/mti-malta/malta-memory.c b/arch/mips/mti-malta/malta-memory.c
index 93ace96a1aa8..d5f8dae6a797 100644
--- a/arch/mips/mti-malta/malta-memory.c
+++ b/arch/mips/mti-malta/malta-memory.c
@@ -32,101 +32,9 @@ static void free_init_pages_eva_malta(void *begin, void *end)
void __init fw_meminit(void)
{
- char *memsize_str, *ememsize_str = NULL, *ptr;
- unsigned long memsize = 0, ememsize = 0;
- unsigned long kernel_start_phys, kernel_end_phys;
- static char cmdline[COMMAND_LINE_SIZE] __initdata;
bool eva = config_enabled(CONFIG_EVA);
- int tmp;
free_init_pages_eva = eva ? free_init_pages_eva_malta : NULL;
-
- memsize_str = fw_getenv("memsize");
- if (memsize_str) {
- tmp = kstrtoul(memsize_str, 0, &memsize);
- if (tmp)
- pr_warn("Failed to read the 'memsize' env variable.\n");
- }
- if (eva) {
- /* Look for ememsize for EVA */
- ememsize_str = fw_getenv("ememsize");
- if (ememsize_str) {
- tmp = kstrtoul(ememsize_str, 0, &ememsize);
- if (tmp)
- pr_warn("Failed to read the 'ememsize' env variable.\n");
- }
- }
- if (!memsize && !ememsize) {
- pr_warn("memsize not set in YAMON, set to default (32Mb)\n");
- physical_memsize = 0x02000000;
- } else {
- if (memsize > (256 << 20)) { /* memsize should be capped to 256M */
- pr_warn("Unsupported memsize value (0x%lx) detected! "
- "Using 0x10000000 (256M) instead\n",
- memsize);
- memsize = 256 << 20;
- }
- /* If ememsize is set, then set physical_memsize to that */
- physical_memsize = ememsize ? : memsize;
- }
-
-#ifdef CONFIG_CPU_BIG_ENDIAN
- /* SOC-it swaps, or perhaps doesn't swap, when DMA'ing the last
- word of physical memory */
- physical_memsize -= PAGE_SIZE;
-#endif
-
- /* Check the command line for a memsize directive that overrides
- the physical/default amount */
- strcpy(cmdline, arcs_cmdline);
- ptr = strstr(cmdline, "memsize=");
- if (ptr && (ptr != cmdline) && (*(ptr - 1) != ' '))
- ptr = strstr(ptr, " memsize=");
- /* And now look for ememsize */
- if (eva) {
- ptr = strstr(cmdline, "ememsize=");
- if (ptr && (ptr != cmdline) && (*(ptr - 1) != ' '))
- ptr = strstr(ptr, " ememsize=");
- }
-
- if (ptr)
- memsize = memparse(ptr + 8 + (eva ? 1 : 0), &ptr);
- else
- memsize = physical_memsize;
-
- /* Last 64K for HIGHMEM arithmetics */
- if (memsize > 0x7fff0000)
- memsize = 0x7fff0000;
-
- add_memory_region(PHYS_OFFSET, 0x00001000, BOOT_MEM_RESERVED);
-
- /*
- * YAMON may still be using the region of memory from 0x1000 to 0xfffff
- * if it has started secondary CPUs.
- */
- add_memory_region(PHYS_OFFSET + 0x00001000, 0x000ef000,
- BOOT_MEM_ROM_DATA);
-
- /*
- * The area 0x000f0000-0x000fffff is allocated for BIOS memory by the
- * south bridge and PCI access always forwarded to the ISA Bus and
- * BIOSCS# is always generated.
- * This mean that this area can't be used as DMA memory for PCI
- * devices.
- */
- add_memory_region(PHYS_OFFSET + 0x000f0000, 0x00010000,
- BOOT_MEM_RESERVED);
-
- /*
- * Reserve the memory used by kernel code, and allow the rest of RAM to
- * be used.
- */
- kernel_start_phys = PHYS_OFFSET + 0x00100000;
- kernel_end_phys = PHYS_OFFSET + CPHYSADDR(PFN_ALIGN(&_end));
- add_memory_region(kernel_start_phys, kernel_end_phys,
- BOOT_MEM_RESERVED);
- add_memory_region(kernel_end_phys, memsize - kernel_end_phys,
- BOOT_MEM_RAM);
}
void __init prom_free_prom_memory(void)