diff options
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r-- | arch/arm/kernel/setup.c | 32 |
1 files changed, 2 insertions, 30 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index bf56eb337df1..ae3712d39ab7 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/smp.h> | 25 | #include <linux/smp.h> |
26 | #include <linux/fs.h> | 26 | #include <linux/fs.h> |
27 | #include <linux/kexec.h> | ||
28 | 27 | ||
29 | #include <asm/cpu.h> | 28 | #include <asm/cpu.h> |
30 | #include <asm/elf.h> | 29 | #include <asm/elf.h> |
@@ -39,6 +38,7 @@ | |||
39 | #include <asm/mach/time.h> | 38 | #include <asm/mach/time.h> |
40 | 39 | ||
41 | #include "compat.h" | 40 | #include "compat.h" |
41 | #include "atags.h" | ||
42 | 42 | ||
43 | #ifndef MEM_SIZE | 43 | #ifndef MEM_SIZE |
44 | #define MEM_SIZE (16*1024*1024) | 44 | #define MEM_SIZE (16*1024*1024) |
@@ -784,23 +784,6 @@ static int __init customize_machine(void) | |||
784 | } | 784 | } |
785 | arch_initcall(customize_machine); | 785 | arch_initcall(customize_machine); |
786 | 786 | ||
787 | #ifdef CONFIG_KEXEC | ||
788 | |||
789 | /* Physical addr of where the boot params should be for this machine */ | ||
790 | extern unsigned long kexec_boot_params_address; | ||
791 | |||
792 | /* Physical addr of the buffer into which the boot params are copied */ | ||
793 | extern unsigned long kexec_boot_params_copy; | ||
794 | |||
795 | /* Pointer to the boot params buffer, for manipulation and display */ | ||
796 | unsigned long kexec_boot_params; | ||
797 | EXPORT_SYMBOL(kexec_boot_params); | ||
798 | |||
799 | /* The buffer itself - make sure it is sized correctly */ | ||
800 | static unsigned long kexec_boot_params_buf[(KEXEC_BOOT_PARAMS_SIZE + 3) / 4]; | ||
801 | |||
802 | #endif | ||
803 | |||
804 | void __init setup_arch(char **cmdline_p) | 787 | void __init setup_arch(char **cmdline_p) |
805 | { | 788 | { |
806 | struct tag *tags = (struct tag *)&init_tags; | 789 | struct tag *tags = (struct tag *)&init_tags; |
@@ -819,18 +802,6 @@ void __init setup_arch(char **cmdline_p) | |||
819 | else if (mdesc->boot_params) | 802 | else if (mdesc->boot_params) |
820 | tags = phys_to_virt(mdesc->boot_params); | 803 | tags = phys_to_virt(mdesc->boot_params); |
821 | 804 | ||
822 | #ifdef CONFIG_KEXEC | ||
823 | kexec_boot_params_copy = virt_to_phys(kexec_boot_params_buf); | ||
824 | kexec_boot_params = (unsigned long)kexec_boot_params_buf; | ||
825 | if (__atags_pointer) { | ||
826 | kexec_boot_params_address = __atags_pointer; | ||
827 | memcpy((void *)kexec_boot_params, tags, KEXEC_BOOT_PARAMS_SIZE); | ||
828 | } else if (mdesc->boot_params) { | ||
829 | kexec_boot_params_address = mdesc->boot_params; | ||
830 | memcpy((void *)kexec_boot_params, tags, KEXEC_BOOT_PARAMS_SIZE); | ||
831 | } | ||
832 | #endif | ||
833 | |||
834 | /* | 805 | /* |
835 | * If we have the old style parameters, convert them to | 806 | * If we have the old style parameters, convert them to |
836 | * a tag list. | 807 | * a tag list. |
@@ -846,6 +817,7 @@ void __init setup_arch(char **cmdline_p) | |||
846 | if (tags->hdr.tag == ATAG_CORE) { | 817 | if (tags->hdr.tag == ATAG_CORE) { |
847 | if (meminfo.nr_banks != 0) | 818 | if (meminfo.nr_banks != 0) |
848 | squash_mem_tags(tags); | 819 | squash_mem_tags(tags); |
820 | save_atags(tags); | ||
849 | parse_tags(tags); | 821 | parse_tags(tags); |
850 | } | 822 | } |
851 | 823 | ||