diff options
author | Steven J. Hill <sjhill@mips.com> | 2013-01-17 11:37:03 -0600 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2013-02-01 10:00:21 +0100 |
commit | 9b73100911ac6886e1bbf54a4626d545f9ba6ddf (patch) | |
tree | e2c1ceef05fe279eba70153908a7df75b18d401d /arch/mips/mti-sead3/sead3-setup.c | |
parent | 8fba1e588b7ed124bef42548924a6f4f95de9dba (diff) |
MIPS: SEAD3: Implement OF support.
Activate USE_OF for SEAD-3 platform. Add basic DTS file and convert memory
detection and reservations to use OF.
[ralf@linux-mips.org: Remove unnecessary #ifdef wrapper in generic.h. Make
<asm/mips-boards/generic.h> inclusion work even without prior
<linux/of_fdt.h> inclusion.]
Signed-off-by: Steven J. Hill <sjhill@mips.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/4809/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/mti-sead3/sead3-setup.c')
-rw-r--r-- | arch/mips/mti-sead3/sead3-setup.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/mips/mti-sead3/sead3-setup.c b/arch/mips/mti-sead3/sead3-setup.c index 8ad46ad31b49..f012fd164cee 100644 --- a/arch/mips/mti-sead3/sead3-setup.c +++ b/arch/mips/mti-sead3/sead3-setup.c @@ -6,6 +6,12 @@ * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved. */ #include <linux/init.h> +#include <linux/of_platform.h> +#include <linux/of_fdt.h> +#include <linux/bootmem.h> + +#include <asm/mips-boards/generic.h> +#include <asm/prom.h> int coherentio; /* 0 => no DMA cache coherency (may be set by user) */ int hw_coherentio; /* 0 => no HW DMA cache coherency (reflects real HW) */ @@ -17,4 +23,25 @@ const char *get_system_type(void) void __init plat_mem_setup(void) { + /* + * Load the builtin devicetree. This causes the chosen node to be + * parsed resulting in our memory appearing + */ + __dt_setup_arch(&__dtb_start); +} + +void __init device_tree_init(void) +{ + unsigned long base, size; + + if (!initial_boot_params) + return; + + base = virt_to_phys((void *)initial_boot_params); + size = be32_to_cpu(initial_boot_params->totalsize); + + /* Before we do anything, lets reserve the dt blob */ + reserve_bootmem(base, size, BOOTMEM_DEFAULT); + + unflatten_device_tree(); } |