[oe-commits] org.oe.angstrom-2007.12-stable simpad: add linux 2.6.24 support

koen commit openembedded-commits at lists.openembedded.org
Thu Mar 6 01:57:11 UTC 2008


simpad: add linux 2.6.24 support

Author: koen at openembedded.org
Branch: org.openembedded.angstrom-2007.12-stable
Revision: 3697358d571b7656a2eb6e547c00f33db654a54a
ViewMTN: http://monotone.openembedded.org/revision/info/3697358d571b7656a2eb6e547c00f33db654a54a
Files:
1
packages/linux/linux-2.6.24
packages/linux/linux-2.6.24/cm-x270
packages/linux/linux-2.6.24/gesbc-9302
packages/linux/linux-2.6.24/mpc8313e-rdb
packages/linux/linux-2.6.24/simpad
packages/linux/linux-rt-2.6.24
packages/linux/linux-rt-2.6.24/mpc8313e-rdb
packages/linux/linux/simpad/collie-kexec.patch
packages/linux/linux/simpad/export_atags-r2.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-GPIO-MMC-mod.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-battery-old-way-but-also-with-sysfs.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-cs3-simpad.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-hostap_cs-shared-irq.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-mq200.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-orinoco_cs-shared-irq.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-pcmcia.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-serial-gpio_keys-and-cs3-ro.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-switches.patch
packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-ts-supend-and-accuracy.patch
packages/linux/linux-2.6.24/cm-x270/0001-cm-x270-match-type.patch
packages/linux/linux-2.6.24/cm-x270/0002-ramdisk_load.patch
packages/linux/linux-2.6.24/cm-x270/0003-mmcsd_large_cards-r0.patch
packages/linux/linux-2.6.24/cm-x270/0004-cm-x270-nand-simplify-name.patch
packages/linux/linux-2.6.24/cm-x270/0005-add-display-set-default-16bpp.patch
packages/linux/linux-2.6.24/cm-x270/0006-updated-defconfig.patch
packages/linux/linux-2.6.24/cm-x270/defconfig
packages/linux/linux-2.6.24/gesbc-9302/0001-gesbc-nand.patch
packages/linux/linux-2.6.24/gesbc-9302/0002-gesbc-eth-platform.patch
packages/linux/linux-2.6.24/gesbc-9302/0003-gesbc9302-defconfig.patch
packages/linux/linux-2.6.24/gesbc-9302/0005-ep93xx-reboot.patch
packages/linux/linux-2.6.24/gesbc-9302/defconfig
packages/linux/linux-2.6.24/mpc8313e-rdb/defconfig
packages/linux/linux-2.6.24/mpc8313e-rdb/mpc8313e-rdb-leds.patch
packages/linux/linux-2.6.24/mpc8313e-rdb/mpc8313e-rdb-rtc.patch
packages/linux/linux-2.6.24/mpc8313e-rdb/mpc831x-nand.patch
packages/linux/linux-2.6.24/powerpc-clockres.patch
packages/linux/linux-2.6.24/simpad/defconfig
packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch
packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch
packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig
packages/linux/linux-rt-2.6.24/mpc8313e-rdb/mpc8313e-rdb-leds.patch
packages/linux/linux-rt-2.6.24/powerpc-clockres.patch
packages/linux/linux-rt-2.6.24/sysctl_missing_include.patch
packages/linux/linux_2.6.24.bb
BACKPORTS.txt
conf/machine/simpad.conf
Diffs:

#
# mt diff -r1453346f58372e38eab4937c9962fbd59a1d11dd -r3697358d571b7656a2eb6e547c00f33db654a54a
#
# 
# 
# add_dir "packages/linux/linux-2.6.24"
# 
# add_dir "packages/linux/linux-2.6.24/cm-x270"
# 
# add_dir "packages/linux/linux-2.6.24/gesbc-9302"
# 
# add_dir "packages/linux/linux-2.6.24/mpc8313e-rdb"
# 
# add_dir "packages/linux/linux-2.6.24/simpad"
# 
# add_dir "packages/linux/linux-rt-2.6.24"
# 
# add_dir "packages/linux/linux-rt-2.6.24/mpc8313e-rdb"
# 
# add_file "packages/linux/linux/simpad/collie-kexec.patch"
#  content [c67efe796341434a3d54b69c1798c5c9b0498dc2]
# 
# add_file "packages/linux/linux/simpad/export_atags-r2.patch"
#  content [b0f73eae81dc3e31c14544bd417f49ff2efda4f9]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-GPIO-MMC-mod.patch"
#  content [efa74548e397b35e650cb26e685bf4f6b6594131]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-battery-old-way-but-also-with-sysfs.patch"
#  content [4d340c8b79023bc74ebbac6734a6020e89d519df]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-cs3-simpad.patch"
#  content [50de327784ee48f4843e84410498faa6b5aab89f]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-hostap_cs-shared-irq.patch"
#  content [708d98a13bcbf81e7fc31aa4cbc7b576d98eb078]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-mq200.patch"
#  content [4b84c4877435ac2ca8bf4d0e7eec298ac1c4bdac]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-orinoco_cs-shared-irq.patch"
#  content [6168ddd694dd2b5fb5b1f0386c7246d389a99936]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-pcmcia.patch"
#  content [259a7a1007ce76951b7a85cdebd3f3eb5cd527e4]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-serial-gpio_keys-and-cs3-ro.patch"
#  content [4bf3a4b1f86cb89b386f61c6efccf4f10f5bfc6f]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-switches.patch"
#  content [112ad8e58246d6bfb98453315cf96a2f3c98c6b2]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-ts-supend-and-accuracy.patch"
#  content [3d4f8a4c22898fa88796e86167e3a3089691a653]
# 
# add_file "packages/linux/linux-2.6.24/cm-x270/0001-cm-x270-match-type.patch"
#  content [ce421f7708d6cf607dac08b8b4d125819b4cf2c3]
# 
# add_file "packages/linux/linux-2.6.24/cm-x270/0002-ramdisk_load.patch"
#  content [596b212fef6751dfd8b8aeaa142c6bea4a4f9019]
# 
# add_file "packages/linux/linux-2.6.24/cm-x270/0003-mmcsd_large_cards-r0.patch"
#  content [d58e03a7c3887c838bf2aaada4caa2737df21d27]
# 
# add_file "packages/linux/linux-2.6.24/cm-x270/0004-cm-x270-nand-simplify-name.patch"
#  content [f66cdf667785145ab1bbf4d78b4777223a6174a9]
# 
# add_file "packages/linux/linux-2.6.24/cm-x270/0005-add-display-set-default-16bpp.patch"
#  content [f59150eeed8a7bd698bba59ac238a2d34ef3f8e6]
# 
# add_file "packages/linux/linux-2.6.24/cm-x270/0006-updated-defconfig.patch"
#  content [c8772dd094db3fe615d92b8b0893422c079a5f05]
# 
# add_file "packages/linux/linux-2.6.24/cm-x270/defconfig"
#  content [c155ca1a3bfc3d4352fc0219d180b888af20f71f]
# 
# add_file "packages/linux/linux-2.6.24/gesbc-9302/0001-gesbc-nand.patch"
#  content [1242f1ca564ca57ab2c38691084648285b71aa1c]
# 
# add_file "packages/linux/linux-2.6.24/gesbc-9302/0002-gesbc-eth-platform.patch"
#  content [ce8aa5463ca9479caae1e6e2757edf14695f5573]
# 
# add_file "packages/linux/linux-2.6.24/gesbc-9302/0003-gesbc9302-defconfig.patch"
#  content [cc54a43f1d464e5059470cabc7741a3e0c64dd78]
# 
# add_file "packages/linux/linux-2.6.24/gesbc-9302/0005-ep93xx-reboot.patch"
#  content [95686a2fa77ac0df8feb8b2419d592358f6d7f92]
# 
# add_file "packages/linux/linux-2.6.24/gesbc-9302/defconfig"
#  content [245c13cc582809d082a41dda84a13bdad7442216]
# 
# add_file "packages/linux/linux-2.6.24/mpc8313e-rdb/defconfig"
#  content [b1d251def3d0ffe97b8aa186ac96c852061db329]
# 
# add_file "packages/linux/linux-2.6.24/mpc8313e-rdb/mpc8313e-rdb-leds.patch"
#  content [2cc4266da3bf010bf63de74fc5b9e2e9b195ba4a]
# 
# add_file "packages/linux/linux-2.6.24/mpc8313e-rdb/mpc8313e-rdb-rtc.patch"
#  content [4978804f67a8e4bbe5d9320b58f68773a3788b4b]
# 
# add_file "packages/linux/linux-2.6.24/mpc8313e-rdb/mpc831x-nand.patch"
#  content [84ca7646072efff95ac1ba21996214de0887506e]
# 
# add_file "packages/linux/linux-2.6.24/powerpc-clockres.patch"
#  content [ee29ef78ae4fc2768bf8eed018f777ecfb1a72d6]
# 
# add_file "packages/linux/linux-2.6.24/simpad/defconfig"
#  content [cb2083980b6438099d36911388b2c7e8acfb655f]
# 
# add_file "packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch"
#  content [fd7e70b17a09e17b40a8f4ae230b0e9a2b13f83f]
# 
# add_file "packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch"
#  content [38deec6ca144203d2bec5f6271900e91c6c2dbaa]
# 
# add_file "packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig"
#  content [563f526c657d4db018fbb58a6373134adb43a7b1]
# 
# add_file "packages/linux/linux-rt-2.6.24/mpc8313e-rdb/mpc8313e-rdb-leds.patch"
#  content [2cc4266da3bf010bf63de74fc5b9e2e9b195ba4a]
# 
# add_file "packages/linux/linux-rt-2.6.24/powerpc-clockres.patch"
#  content [ee29ef78ae4fc2768bf8eed018f777ecfb1a72d6]
# 
# add_file "packages/linux/linux-rt-2.6.24/sysctl_missing_include.patch"
#  content [564b0841b246892cb814b7e5c100787eb152fa4d]
# 
# add_file "packages/linux/linux_2.6.24.bb"
#  content [ebdf3b65ce833b6b8ae51c147cd74ca5fa21143e]
# 
# patch "BACKPORTS.txt"
#  from [33dbd5b46b23d24c47bbda7f1b502051a81b71bf]
#    to [ee879df4debbf05337ae4910e2894a9a8121b9ca]
# 
# patch "conf/machine/simpad.conf"
#  from [9987d298771d159fd85308e85bdb5a82fd16832d]
#    to [d44a49dfc7770b54feace9c942c543459a4702c9]
# 
============================================================
--- packages/linux/linux/simpad/collie-kexec.patch	c67efe796341434a3d54b69c1798c5c9b0498dc2
+++ packages/linux/linux/simpad/collie-kexec.patch	c67efe796341434a3d54b69c1798c5c9b0498dc2
@@ -0,0 +1,13 @@
+--- linux-2.6.20.4.orig/include/asm-arm/kexec.h	2007-04-10 19:16:39.000000000 +0200
++++ linux-2.6.20.4/include/asm-arm/kexec.h	2007-04-03 05:01:09.000000000 +0200
+@@ -8,8 +8,8 @@
+ /* Maximum address we can reach in physical address mode */
+ #define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL)
+ /* Maximum address we can use for the control code buffer */
+-#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE
+-
++//#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE
++#define KEXEC_CONTROL_MEMORY_LIMIT (-1UL)
+ #define KEXEC_CONTROL_CODE_SIZE	4096
+ 
+ #define KEXEC_ARCH KEXEC_ARCH_ARM
============================================================
--- packages/linux/linux/simpad/export_atags-r2.patch	b0f73eae81dc3e31c14544bd417f49ff2efda4f9
+++ packages/linux/linux/simpad/export_atags-r2.patch	b0f73eae81dc3e31c14544bd417f49ff2efda4f9
@@ -0,0 +1,320 @@
+[PATCH] Export atags to userspace and allow kexec to use customised atags
+
+Currently, the atags used by kexec are fixed to the ones originally used
+to boot the kernel. This is less than ideal as changing the commandline, 
+initrd and other options would be a useful feature.
+
+This patch exports the atags used for the current kernel to userspace 
+through an "atags" file in procfs. The presence of the file is 
+controlled by its own Kconfig option and cleans up several ifdef blocks
+into a separate file. The tags for the new kernel are assumed to be at
+a fixed location before the kernel image itself. The location of the 
+tags used to boot the original kernel is unimportant and no longer 
+saved.
+
+Based on a patch from Uli Luckas <u.luckas at road.de>
+
+Signed-off-by: Richard Purdie <rpurdie at rpsys.net>
+
+---
+ arch/arm/Kconfig                  |    7 +++
+ arch/arm/kernel/Makefile          |    1 
+ arch/arm/kernel/atags.c           |   86 ++++++++++++++++++++++++++++++++++++++
+ arch/arm/kernel/atags.h           |    5 ++
+ arch/arm/kernel/machine_kexec.c   |    2 
+ arch/arm/kernel/relocate_kernel.S |   30 +------------
+ arch/arm/kernel/setup.c           |   32 --------------
+ include/asm-arm/kexec.h           |    3 +
+ 8 files changed, 110 insertions(+), 56 deletions(-)
+
+Index: linux-2.6.23/arch/arm/kernel/atags.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.23/arch/arm/kernel/atags.c	2008-01-20 15:56:02.000000000 +0000
+@@ -0,0 +1,86 @@
++#include <linux/slab.h>
++#include <linux/kexec.h>
++#include <linux/proc_fs.h>
++#include <asm/setup.h>
++#include <asm/types.h>
++#include <asm/page.h>
++
++struct buffer {
++	size_t size;
++	char *data;
++};
++static struct buffer tags_buffer;
++
++static int
++read_buffer(char* page, char** start, off_t off, int count,
++	int* eof, void* data)
++{
++	struct buffer *buffer = (struct buffer *)data;
++
++	if (off >= buffer->size) {
++		*eof = 1;
++		return 0;
++	}
++
++	count = min((int) (buffer->size - off), count);
++
++	memcpy(page, &buffer->data[off], count);
++
++	return count;
++}
++
++
++static int
++create_proc_entries(void)
++{
++	struct proc_dir_entry* tags_entry;
++
++	tags_entry = create_proc_read_entry("atags", 0400, &proc_root, read_buffer, &tags_buffer);
++	if (!tags_entry)
++		return -ENOMEM;
++
++	return 0;
++}
++
++
++static char __initdata atags_copy_buf[KEXEC_BOOT_PARAMS_SIZE];
++static char __initdata *atags_copy;
++
++void __init save_atags(const struct tag *tags)
++{
++	atags_copy = atags_copy_buf;
++	memcpy(atags_copy, tags, KEXEC_BOOT_PARAMS_SIZE);
++}
++
++
++static int __init init_atags_procfs(void)
++{
++	struct tag *tag;
++	int error;
++
++	if (!atags_copy) {
++		printk(KERN_WARNING "Exporting ATAGs: No saved tags found\n");
++		return -EIO;
++	}
++
++	for (tag = (struct tag *) atags_copy; tag->hdr.size; tag = tag_next(tag))
++		;
++
++	tags_buffer.size = ((char *) tag - atags_copy) + sizeof(tag->hdr);
++	tags_buffer.data = kmalloc(tags_buffer.size, GFP_KERNEL);
++	if (tags_buffer.data == NULL)
++		return -ENOMEM;
++	memcpy(tags_buffer.data, atags_copy, tags_buffer.size);
++
++	error = create_proc_entries();
++	if (error) {
++		printk(KERN_ERR "Exporting ATAGs: not enough memory\n");
++		kfree(tags_buffer.data);
++		tags_buffer.size = 0;
++		tags_buffer.data = NULL;
++	}
++
++	return error;
++}
++
++arch_initcall(init_atags_procfs);
+Index: linux-2.6.23/arch/arm/kernel/atags.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.23/arch/arm/kernel/atags.h	2008-01-20 15:56:02.000000000 +0000
+@@ -0,0 +1,5 @@
++#ifdef CONFIG_ATAGS_PROC
++extern void save_atags(struct tag *tags);
++#else
++static inline void save_atags(struct tag *tags) { }
++#endif
+Index: linux-2.6.23/arch/arm/kernel/Makefile
+===================================================================
+--- linux-2.6.23.orig/arch/arm/kernel/Makefile	2007-10-09 21:31:38.000000000 +0100
++++ linux-2.6.23/arch/arm/kernel/Makefile	2008-01-20 15:56:02.000000000 +0000
+@@ -19,6 +19,7 @@ obj-$(CONFIG_ISA_DMA)		+= dma-isa.o
+ obj-$(CONFIG_PCI)		+= bios32.o isa.o
+ obj-$(CONFIG_SMP)		+= smp.o
+ obj-$(CONFIG_KEXEC)		+= machine_kexec.o relocate_kernel.o
++obj-$(CONFIG_ATAGS_PROC)	+= atags.o
+ obj-$(CONFIG_OABI_COMPAT)	+= sys_oabi-compat.o
+ 
+ obj-$(CONFIG_CRUNCH)		+= crunch.o crunch-bits.o
+Index: linux-2.6.23/arch/arm/kernel/setup.c
+===================================================================
+--- linux-2.6.23.orig/arch/arm/kernel/setup.c	2008-01-20 15:55:43.000000000 +0000
++++ linux-2.6.23/arch/arm/kernel/setup.c	2008-01-20 15:56:02.000000000 +0000
+@@ -24,7 +24,6 @@
+ #include <linux/interrupt.h>
+ #include <linux/smp.h>
+ #include <linux/fs.h>
+-#include <linux/kexec.h>
+ 
+ #include <asm/cpu.h>
+ #include <asm/elf.h>
+@@ -39,6 +38,7 @@
+ #include <asm/mach/time.h>
+ 
+ #include "compat.h"
++#include "atags.h"
+ 
+ #ifndef MEM_SIZE
+ #define MEM_SIZE	(16*1024*1024)
+@@ -784,23 +784,6 @@ static int __init customize_machine(void
+ }
+ arch_initcall(customize_machine);
+ 
+-#ifdef CONFIG_KEXEC
+-
+-/* Physical addr of where the boot params should be for this machine */
+-extern unsigned long kexec_boot_params_address;
+-
+-/* Physical addr of the buffer into which the boot params are copied */
+-extern unsigned long kexec_boot_params_copy;
+-
+-/* Pointer to the boot params buffer, for manipulation and display */
+-unsigned long kexec_boot_params;
+-EXPORT_SYMBOL(kexec_boot_params);
+-
+-/* The buffer itself - make sure it is sized correctly */
+-static unsigned long kexec_boot_params_buf[(KEXEC_BOOT_PARAMS_SIZE + 3) / 4];
+-
+-#endif
+-
+ void __init setup_arch(char **cmdline_p)
+ {
+ 	struct tag *tags = (struct tag *)&init_tags;
+@@ -819,18 +802,6 @@ void __init setup_arch(char **cmdline_p)
+ 	else if (mdesc->boot_params)
+ 		tags = phys_to_virt(mdesc->boot_params);
+ 
+-#ifdef CONFIG_KEXEC
+-	kexec_boot_params_copy = virt_to_phys(kexec_boot_params_buf);
+-	kexec_boot_params = (unsigned long)kexec_boot_params_buf;
+-	if (__atags_pointer) {
+-		kexec_boot_params_address = __atags_pointer;
+-		memcpy((void *)kexec_boot_params, tags, KEXEC_BOOT_PARAMS_SIZE);
+-	} else if (mdesc->boot_params) {
+-		kexec_boot_params_address = mdesc->boot_params;
+-		memcpy((void *)kexec_boot_params, tags, KEXEC_BOOT_PARAMS_SIZE);
+-	}
+-#endif
+-
+ 	/*
+ 	 * If we have the old style parameters, convert them to
+ 	 * a tag list.
+@@ -846,6 +817,7 @@ void __init setup_arch(char **cmdline_p)
+ 	if (tags->hdr.tag == ATAG_CORE) {
+ 		if (meminfo.nr_banks != 0)
+ 			squash_mem_tags(tags);
++		save_atags(tags);
+ 		parse_tags(tags);
+ 	}
+ 
+Index: linux-2.6.23/arch/arm/Kconfig
+===================================================================
+--- linux-2.6.23.orig/arch/arm/Kconfig	2008-01-20 15:55:43.000000000 +0000
++++ linux-2.6.23/arch/arm/Kconfig	2008-01-20 15:58:52.000000000 +0000
+@@ -865,6 +865,13 @@ config KEXEC
+ 	  initially work for you.  It may help to enable device hotplugging
+ 	  support.
+ 
++config ATAGS_PROC
++	bool "Export atags in procfs"
++	default n
++	help
++	  Should the atags used to boot the kernel be exported in an "atags"
++	  file in procfs. Useful with kexec.
++
+ endmenu
+ 
+ if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX )
+Index: linux-2.6.23/arch/arm/kernel/machine_kexec.c
+===================================================================
+--- linux-2.6.23.orig/arch/arm/kernel/machine_kexec.c	2007-10-09 21:31:38.000000000 +0100
++++ linux-2.6.23/arch/arm/kernel/machine_kexec.c	2008-01-20 15:56:03.000000000 +0000
+@@ -21,6 +21,7 @@ extern void setup_mm_for_reboot(char mod
+ extern unsigned long kexec_start_address;
+ extern unsigned long kexec_indirection_page;
+ extern unsigned long kexec_mach_type;
++extern unsigned long kexec_boot_atags;
+ 
+ /*
+  * Provide a dummy crash_notes definition while crash dump arrives to arm.
+@@ -62,6 +63,7 @@ void machine_kexec(struct kimage *image)
+ 	kexec_start_address = image->start;
+ 	kexec_indirection_page = page_list;
+ 	kexec_mach_type = machine_arch_type;
++	kexec_boot_atags = image->start - KEXEC_ARM_ZIMAGE_OFFSET + KEXEC_ARM_ATAGS_OFFSET;
+ 
+ 	/* copy our kernel relocation code to the control code page */
+ 	memcpy(reboot_code_buffer,
+Index: linux-2.6.23/arch/arm/kernel/relocate_kernel.S
+===================================================================
+--- linux-2.6.23.orig/arch/arm/kernel/relocate_kernel.S	2008-01-20 15:55:43.000000000 +0000
++++ linux-2.6.23/arch/arm/kernel/relocate_kernel.S	2008-01-20 15:56:03.000000000 +0000
+@@ -7,23 +7,6 @@
+ 	.globl relocate_new_kernel
+ relocate_new_kernel:
+ 
+-	/* Move boot params back to where the kernel expects them */
+-
+-	ldr	r0,kexec_boot_params_address
+-	teq	r0,#0
+-	beq	8f
+-
+-	ldr	r1,kexec_boot_params_copy
+-	mov	r6,#KEXEC_BOOT_PARAMS_SIZE/4
+-7:
+-	ldr	r5,[r1],#4
+-	str	r5,[r0],#4
+-	subs	r6,r6,#1
+-	bne	7b
+-
+-8:
+-	/* Boot params moved, now go on with the kernel */
+-
+ 	ldr	r0,kexec_indirection_page
+ 	ldr	r1,kexec_start_address
+ 
+@@ -67,7 +50,7 @@ relocate_new_kernel:
+ 	mov lr,r1
+ 	mov r0,#0
+ 	ldr r1,kexec_mach_type
+-	ldr r2,kexec_boot_params_address
++	ldr r2,kexec_boot_atags
+ 	mov pc,lr
+ 
+ 	.globl kexec_start_address
+@@ -82,14 +65,9 @@ kexec_indirection_page:
+ kexec_mach_type:
+ 	.long	0x0
+ 
+-	/* phy addr where new kernel will expect to find boot params */
+-	.globl kexec_boot_params_address
+-kexec_boot_params_address:
+-	.long	0x0
+-
+-	/* phy addr where old kernel put a copy of orig boot params */
+-	.globl kexec_boot_params_copy
+-kexec_boot_params_copy:
++	/* phy addr of the atags for the%s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list