void __init init_arch(bp_tag_t *bp_start) { /* Parse boot parameters */ if (bp_start) parse_bootparam(bp_start); #ifdef CONFIG_OF early_init_devtree(dtb_start); #endif if (sysmem.nr_banks == 0) { add_sysmem_bank(PLATFORM_DEFAULT_MEM_START, PLATFORM_DEFAULT_MEM_START + PLATFORM_DEFAULT_MEM_SIZE); } #ifdef CONFIG_CMDLINE_BOOL if (!command_line[0]) strlcpy(command_line, default_command_line, COMMAND_LINE_SIZE); #endif /* Early hook for platforms */ platform_init(bp_start); /* Initialize MMU. */ init_mmu(); }
void __init early_init_dt_add_memory_arch(u64 base, u64 size) { if (!dt_memory_scan) return; size &= PAGE_MASK; add_sysmem_bank(base, base + size); }
static int __init parse_tag_mem(const bp_tag_t *tag) { meminfo_t *mi = (meminfo_t *)(tag->data); if (mi->type != MEMORY_TYPE_CONVENTIONAL) return -1; return add_sysmem_bank(mi->type, mi->start, mi->end); }
void __init early_init_dt_add_memory_arch(u64 base, u64 size) { size &= PAGE_MASK; add_sysmem_bank(MEMORY_TYPE_CONVENTIONAL, base, base + size); }