diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2012-01-07 16:29:16 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2012-01-07 16:29:16 +0000 |
commit | 6c74274c8d2eec1e92e338ef197ffe210cc5b52d (patch) | |
tree | 32eae6f867dc07acf9c3eae6c4546975cd58d7a5 /target/linux/generic/patches-3.1/334-mips-fix-compiling-failure-of-relocate_kernel.patch | |
parent | f638c6207bde72a7795f44afefbbca76ac901e0a (diff) | |
download | upstream-6c74274c8d2eec1e92e338ef197ffe210cc5b52d.tar.gz upstream-6c74274c8d2eec1e92e338ef197ffe210cc5b52d.tar.bz2 upstream-6c74274c8d2eec1e92e338ef197ffe210cc5b52d.zip |
generic: improve MIPS kexec support
It is based on patches from the linux-longsoon-community git tree:
http://dev.lemote.com/cgit/linux-loongson-community.git/
Now the kernel can use the command line parameter from kexec-tools.
Runtime tested on ar71xx with 2.6.39.4 (the wathdog must be stopped
before executing the new kernel). Compile tested with lantiq (3.1.4)
and brcm47xx (3.0.12).
SVN-Revision: 29674
Diffstat (limited to 'target/linux/generic/patches-3.1/334-mips-fix-compiling-failure-of-relocate_kernel.patch')
-rw-r--r-- | target/linux/generic/patches-3.1/334-mips-fix-compiling-failure-of-relocate_kernel.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.1/334-mips-fix-compiling-failure-of-relocate_kernel.patch b/target/linux/generic/patches-3.1/334-mips-fix-compiling-failure-of-relocate_kernel.patch new file mode 100644 index 0000000000..46a7395d5d --- /dev/null +++ b/target/linux/generic/patches-3.1/334-mips-fix-compiling-failure-of-relocate_kernel.patch @@ -0,0 +1,83 @@ +From 4aded085fa0057a9a1e1dcec631f950307360c1f Mon Sep 17 00:00:00 2001 +From: Wu Zhangjin <wuzhangjin@gmail.com> +Date: Tue, 11 Jan 2011 13:46:19 +0000 +Subject: MIPS: Fix compiling failure of relocate_kernel.S + +The following errors is fixed with the help of <asm/asm_nosec.h>. for +this file need to put different symbols in the same section, the +original LEAF, NESTED and EXPORT (without explicit section indication) +must be used, <asm/asm_nosec.h> does it. + +arch/mips/kernel/relocate_kernel.S: Assembler messages: +arch/mips/kernel/relocate_kernel.S:162: Error: operation combines symbols in different segments + +Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com> +--- +(limited to 'arch/mips/kernel') + +--- a/arch/mips/kernel/relocate_kernel.S ++++ b/arch/mips/kernel/relocate_kernel.S +@@ -7,6 +7,7 @@ + */ + + #include <asm/asm.h> ++#include <asm/asm_nosec.h> + #include <asm/asmmacro.h> + #include <asm/regdef.h> + #include <asm/page.h> +--- /dev/null ++++ b/arch/mips/include/asm/asm_nosec.h +@@ -0,0 +1,53 @@ ++/* ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file "COPYING" in the main directory of this archive ++ * for more details. ++ * ++ * Copyright (C) 1995, 1996, 1997, 1999, 2001 by Ralf Baechle ++ * Copyright (C) 1999 by Silicon Graphics, Inc. ++ * Copyright (C) 2001 MIPS Technologies, Inc. ++ * Copyright (C) 2002 Maciej W. Rozycki ++ * Copyright (C) 2010 Wu Zhangjin <wuzhangjin@gmail.com> ++ * ++ * Derive from <asm/asm.h> ++ * ++ * Override the macros without -ffunction-sections and -fdata-sections support. ++ * If several functions or data must be put in the same section, please include ++ * this header file after the <asm/asm.h> to override the generic definition. ++ */ ++ ++#ifndef __ASM_ASM_NOSEC_H ++#define __ASM_ASM_NOSEC_H ++ ++#undef LEAF ++#undef NESTED ++#undef EXPORT ++ ++/* ++ * LEAF - declare leaf routine ++ */ ++#define LEAF(symbol) \ ++ .globl symbol; \ ++ .align 2; \ ++ .type symbol, @function; \ ++ .ent symbol, 0; \ ++symbol: .frame sp, 0, ra ++ ++/* ++ * NESTED - declare nested routine entry point ++ */ ++#define NESTED(symbol, framesize, rpc) \ ++ .globl symbol; \ ++ .align 2; \ ++ .type symbol, @function; \ ++ .ent symbol, 0; \ ++symbol: .frame sp, framesize, rpc ++ ++/* ++ * EXPORT - export definition of symbol ++ */ ++#define EXPORT(symbol) \ ++ .globl symbol; \ ++symbol: ++ ++#endif /* __ASM_ASM_NOSEC_H */ |