aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r--arch/arm/kernel/setup.c32
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}
785arch_initcall(customize_machine); 785arch_initcall(customize_machine);
786 786
787#ifdef CONFIG_KEXEC
788
789/* Physical addr of where the boot params should be for this machine */
790extern unsigned long kexec_boot_params_address;
791
792/* Physical addr of the buffer into which the boot params are copied */
793extern unsigned long kexec_boot_params_copy;
794
795/* Pointer to the boot params buffer, for manipulation and display */
796unsigned long kexec_boot_params;
797EXPORT_SYMBOL(kexec_boot_params);
798
799/* The buffer itself - make sure it is sized correctly */
800static unsigned long kexec_boot_params_buf[(KEXEC_BOOT_PARAMS_SIZE + 3) / 4];
801
802#endif
803
804void __init setup_arch(char **cmdline_p) 787void __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