162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 362306a36Sopenharmony_ci * License. See the file "COPYING" in the main directory of this archive 462306a36Sopenharmony_ci * for more details. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * PROM library functions for acquiring/using memory descriptors given to 762306a36Sopenharmony_ci * us from the YAMON. 862306a36Sopenharmony_ci * 962306a36Sopenharmony_ci * Copyright (C) 1999,2000,2012 MIPS Technologies, Inc. 1062306a36Sopenharmony_ci * All rights reserved. 1162306a36Sopenharmony_ci * Authors: Carsten Langgaard <carstenl@mips.com> 1262306a36Sopenharmony_ci * Steven J. Hill <sjhill@mips.com> 1362306a36Sopenharmony_ci */ 1462306a36Sopenharmony_ci#include <linux/init.h> 1562306a36Sopenharmony_ci#include <linux/memblock.h> 1662306a36Sopenharmony_ci#include <linux/string.h> 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#include <asm/bootinfo.h> 1962306a36Sopenharmony_ci#include <asm/cdmm.h> 2062306a36Sopenharmony_ci#include <asm/maar.h> 2162306a36Sopenharmony_ci#include <asm/sections.h> 2262306a36Sopenharmony_ci#include <asm/fw/fw.h> 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci/* determined physical memory size, not overridden by command line args */ 2562306a36Sopenharmony_ciunsigned long physical_memsize = 0L; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_cistatic void free_init_pages_eva_malta(void *begin, void *end) 2862306a36Sopenharmony_ci{ 2962306a36Sopenharmony_ci free_init_pages("unused kernel", __pa_symbol((unsigned long *)begin), 3062306a36Sopenharmony_ci __pa_symbol((unsigned long *)end)); 3162306a36Sopenharmony_ci} 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_civoid __init fw_meminit(void) 3462306a36Sopenharmony_ci{ 3562306a36Sopenharmony_ci bool eva = IS_ENABLED(CONFIG_EVA); 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci free_init_pages_eva = eva ? free_init_pages_eva_malta : NULL; 3862306a36Sopenharmony_ci} 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciphys_addr_t mips_cdmm_phys_base(void) 4162306a36Sopenharmony_ci{ 4262306a36Sopenharmony_ci /* This address is "typically unused" */ 4362306a36Sopenharmony_ci return 0x1fc10000; 4462306a36Sopenharmony_ci} 45