void __init msm_8974_reserve(void) { #ifdef CONFIG_KEXEC_HARDBOOT int ret; phys_addr_t start; struct membank* bank; #endif #if defined(CONFIG_RAMDUMP_TAGS) || defined(CONFIG_CRASH_LAST_LOGS) reserve_debug_memory(); #endif #ifdef CONFIG_ANDROID_PERSISTENT_RAM reserve_persistent_ram(); #endif reserve_info = &msm8974_reserve_info; of_scan_flat_dt(dt_scan_for_memory_reserve, msm8974_reserve_table); #ifdef CONFIG_KEXEC_HARDBOOT // Reserve space for hardboot page - just after ram_console, // at the start of second memory bank if (meminfo.nr_banks < 2) { pr_err("%s: not enough membank\n", __func__); return; } bank = &meminfo.bank[1]; start = bank->start + bank->size - SZ_1M + KEXEC_HB_OFFSET; ret = memblock_remove(start, SZ_1M); if(!ret) pr_info("Hardboot page reserved at 0x%X\n", start); else pr_err("Failed to reserve space for hardboot page at 0x%X!\n", start); #endif msm_reserve(); }
void __init msm_8974_reserve(void) { #if defined(CONFIG_RAMDUMP_TAGS) || defined(CONFIG_CRASH_LAST_LOGS) reserve_debug_memory(); #endif reserve_info = &msm8974_reserve_info; of_scan_flat_dt(dt_scan_for_memory_reserve, msm8974_reserve_table); msm_reserve(); }
void __init msm_8974_reserve(void) { #if defined(CONFIG_RAMDUMP_TAGS) || defined(CONFIG_CRASH_LAST_LOGS) reserve_debug_memory(); #endif #ifdef CONFIG_ANDROID_PERSISTENT_RAM reserve_persistent_ram(); #endif reserve_info = &msm8974_reserve_info; of_scan_flat_dt(dt_scan_for_memory_reserve, msm8974_reserve_table); msm_reserve(); }