of: create default early_init_dt_add_memory_arch
Create a weak version of early_init_dt_add_memory_arch which uses memblock. This will unify all architectures except ones with custom memory bank structs. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Michal Simek <monstr@monstr.eu> Cc: Jonas Bonn <jonas@southpole.se> Acked-by: Grant Likely <grant.likely@linaro.org> Cc: linux-arm-kernel@lists.infradead.org Cc: microblaze-uclinux@itee.uq.edu.au Cc: linux@lists.openrisc.net Cc: devicetree@vger.kernel.org
This commit is contained in:
Родитель
7745fc1fec
Коммит
068f6310b9
|
@ -147,24 +147,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
|
|||
pr_info("Machine: %s\n", machine_name);
|
||||
}
|
||||
|
||||
void __init early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||
{
|
||||
base &= PAGE_MASK;
|
||||
size &= PAGE_MASK;
|
||||
if (base + size < PHYS_OFFSET) {
|
||||
pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
|
||||
base, base + size);
|
||||
return;
|
||||
}
|
||||
if (base < PHYS_OFFSET) {
|
||||
pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
|
||||
base, PHYS_OFFSET);
|
||||
size -= PHYS_OFFSET - base;
|
||||
base = PHYS_OFFSET;
|
||||
}
|
||||
memblock_add(base, size);
|
||||
}
|
||||
|
||||
/*
|
||||
* Limit the memory size that was specified via FDT.
|
||||
*/
|
||||
|
|
|
@ -41,11 +41,6 @@
|
|||
#include <asm/sections.h>
|
||||
#include <asm/pci-bridge.h>
|
||||
|
||||
void __init early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||
{
|
||||
memblock_add(base, size);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_EARLY_PRINTK
|
||||
static char *stdout;
|
||||
|
||||
|
|
|
@ -47,12 +47,6 @@
|
|||
#include <asm/sections.h>
|
||||
#include <asm/setup.h>
|
||||
|
||||
void __init early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||
{
|
||||
size &= PAGE_MASK;
|
||||
memblock_add(base, size);
|
||||
}
|
||||
|
||||
void __init early_init_devtree(void *params)
|
||||
{
|
||||
early_init_dt_scan(params);
|
||||
|
|
|
@ -775,6 +775,25 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
|
|||
}
|
||||
|
||||
#ifdef CONFIG_HAVE_MEMBLOCK
|
||||
void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||
{
|
||||
const u64 phys_offset = __pa(PAGE_OFFSET);
|
||||
base &= PAGE_MASK;
|
||||
size &= PAGE_MASK;
|
||||
if (base + size < phys_offset) {
|
||||
pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
|
||||
base, base + size);
|
||||
return;
|
||||
}
|
||||
if (base < phys_offset) {
|
||||
pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
|
||||
base, phys_offset);
|
||||
size -= phys_offset - base;
|
||||
base = phys_offset;
|
||||
}
|
||||
memblock_add(base, size);
|
||||
}
|
||||
|
||||
/*
|
||||
* called from unflatten_device_tree() to bootstrap devicetree itself
|
||||
* Architectures can override this definition if memblock isn't used
|
||||
|
|
Загрузка…
Ссылка в новой задаче