diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/kernel/devtree.c | 7 | ||||
-rw-r--r-- | arch/arm/kernel/setup.c | 13 |
3 files changed, 19 insertions, 2 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 5bfd584929c8..f0f90f06f84b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -1014,7 +1014,6 @@ config ARCH_MULTI_V7 | |||
1014 | bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)" | 1014 | bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)" |
1015 | default y | 1015 | default y |
1016 | select ARCH_MULTI_V6_V7 | 1016 | select ARCH_MULTI_V6_V7 |
1017 | select ARCH_VEXPRESS | ||
1018 | select CPU_V7 | 1017 | select CPU_V7 |
1019 | 1018 | ||
1020 | config ARCH_MULTI_V6_V7 | 1019 | config ARCH_MULTI_V6_V7 |
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c index 70f1bdeb241b..5af04f6daa33 100644 --- a/arch/arm/kernel/devtree.c +++ b/arch/arm/kernel/devtree.c | |||
@@ -180,6 +180,13 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) | |||
180 | unsigned long dt_root; | 180 | unsigned long dt_root; |
181 | const char *model; | 181 | const char *model; |
182 | 182 | ||
183 | #ifdef CONFIG_ARCH_MULTIPLATFORM | ||
184 | DT_MACHINE_START(GENERIC_DT, "Generic DT based system") | ||
185 | MACHINE_END | ||
186 | |||
187 | mdesc_best = (struct machine_desc *)&__mach_desc_GENERIC_DT; | ||
188 | #endif | ||
189 | |||
183 | if (!dt_phys) | 190 | if (!dt_phys) |
184 | return NULL; | 191 | return NULL; |
185 | 192 | ||
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 3f6cbb2e3eda..08a627b61b7d 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/bootmem.h> | 18 | #include <linux/bootmem.h> |
19 | #include <linux/seq_file.h> | 19 | #include <linux/seq_file.h> |
20 | #include <linux/screen_info.h> | 20 | #include <linux/screen_info.h> |
21 | #include <linux/of_platform.h> | ||
21 | #include <linux/init.h> | 22 | #include <linux/init.h> |
22 | #include <linux/kexec.h> | 23 | #include <linux/kexec.h> |
23 | #include <linux/of_fdt.h> | 24 | #include <linux/of_fdt.h> |
@@ -640,9 +641,19 @@ struct screen_info screen_info = { | |||
640 | 641 | ||
641 | static int __init customize_machine(void) | 642 | static int __init customize_machine(void) |
642 | { | 643 | { |
643 | /* customizes platform devices, or adds new ones */ | 644 | /* |
645 | * customizes platform devices, or adds new ones | ||
646 | * On DT based machines, we fall back to populating the | ||
647 | * machine from the device tree, if no callback is provided, | ||
648 | * otherwise we would always need an init_machine callback. | ||
649 | */ | ||
644 | if (machine_desc->init_machine) | 650 | if (machine_desc->init_machine) |
645 | machine_desc->init_machine(); | 651 | machine_desc->init_machine(); |
652 | #ifdef CONFIG_OF | ||
653 | else | ||
654 | of_platform_populate(NULL, of_default_bus_match_table, | ||
655 | NULL, NULL); | ||
656 | #endif | ||
646 | return 0; | 657 | return 0; |
647 | } | 658 | } |
648 | arch_initcall(customize_machine); | 659 | arch_initcall(customize_machine); |