diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-01-22 12:30:52 +0100 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-02-15 18:45:55 +0100 |
commit | 999159a5381bff3bd6f688c5d20fbec9d8789e53 (patch) | |
tree | d54af343e2fa905b3d97d9dd87d763a43b256067 /arch/arc/kernel/setup.c | |
parent | ARC: [plat-arcfpga] Static platform device for CONFIG_SERIAL_ARC (diff) | |
download | linux-999159a5381bff3bd6f688c5d20fbec9d8789e53.tar.xz linux-999159a5381bff3bd6f688c5d20fbec9d8789e53.zip |
ARC: [DeviceTree] Basic support
This is minimal infrastructure needed for devicetree work.
It uses an a sample "skeleton" devicetree - embedded in kernel image -
to print the board, manufacturer by parsing the top-level "compatible"
string.
As of now we don't need any additional "board" specific "machine_desc".
TODO: support interpreting the command line as boot-loader passed dtb
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: James Hogan <james.hogan@imgtec.com>
Reviewed-by: Rob Herring <rob.herring@calxeda.com>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Diffstat (limited to 'arch/arc/kernel/setup.c')
-rw-r--r-- | arch/arc/kernel/setup.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c index 82ac20603398..27aebd6d9513 100644 --- a/arch/arc/kernel/setup.c +++ b/arch/arc/kernel/setup.c @@ -13,6 +13,8 @@ #include <linux/console.h> #include <linux/module.h> #include <linux/cpu.h> +#include <linux/of_fdt.h> +#include <asm/sections.h> #include <asm/arcregs.h> #include <asm/tlb.h> #include <asm/cache.h> @@ -20,6 +22,7 @@ #include <asm/page.h> #include <asm/irq.h> #include <asm/arcregs.h> +#include <asm/prom.h> #define FIX_PTR(x) __asm__ __volatile__(";" : "+r"(x)) @@ -57,6 +60,8 @@ void __init __attribute__((weak)) arc_platform_early_init(void) void __init setup_arch(char **cmdline_p) { + int rc; + #ifdef CONFIG_CMDLINE_UBOOT /* Make sure that a whitespace is inserted before */ strlcat(command_line, " ", sizeof(command_line)); @@ -71,6 +76,8 @@ void __init setup_arch(char **cmdline_p) strlcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); *cmdline_p = command_line; + rc = setup_machine_fdt(__dtb_start); + /* To force early parsing of things like mem=xxx */ parse_early_param(); @@ -81,6 +88,8 @@ void __init setup_arch(char **cmdline_p) setup_arch_memory(); + unflatten_device_tree(); + /* Can be issue if someone passes cmd line arg "ro" * But that is unlikely so keeping it as it is */ |