summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-01-06 03:24:52 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2011-01-06 03:24:52 +0100
commitc4eef4c58ae81bc4b6b2a24842c6a45b79b0665f (patch)
tree4450d2488254d3bb89b881e4bec726f8d0b472b5 /target
parent5bd743ad60b85f005235aac2435563b168e012e3 (diff)
Revert "Add experimental code to self-relocate vmlinuz on e.g. brcm"
This reverts commit 5bd743ad60b85f005235aac2435563b168e012e3.
Diffstat (limited to 'target')
-rw-r--r--target/linux/patches/2.6.36/zboot-brcm-reloc.patch196
1 files changed, 0 insertions, 196 deletions
diff --git a/target/linux/patches/2.6.36/zboot-brcm-reloc.patch b/target/linux/patches/2.6.36/zboot-brcm-reloc.patch
deleted file mode 100644
index bec8c27d6..000000000
--- a/target/linux/patches/2.6.36/zboot-brcm-reloc.patch
+++ /dev/null
@@ -1,196 +0,0 @@
---- /dev/null Thu Jan 6 00:14:18 2011
-+++ linux-2.6.36/arch/mips/boot/compressed/selfreloc.lds.S Wed Jan 5 23:52:43 2011
-@@ -0,0 +1,39 @@
-+/*-
-+ * written 2010 by Thorsten Glaser <tg@debian.org> based on
-+ * arch/mips/kernel/vmlinux.lds and arch/mips/boot/compressed/ld.script
-+ */
-+
-+#include <asm/asm-offsets.h>
-+#include <asm/page.h>
-+#include <asm-generic/vmlinux.lds.h>
-+
-+#undef mips
-+#define mips mips
-+OUTPUT_ARCH(mips)
-+ENTRY(selfreloc_start)
-+PHDRS {
-+ text PT_LOAD FLAGS(7); /* RWX */
-+}
-+SECTIONS
-+{
-+ . = VMLINUX_LOAD_ADDRESS;
-+ .text : {
-+ *(.text)
-+ *(.text.*)
-+ *(.rodata)
-+ *(.rodata.*)
-+ *(.data)
-+ *(.data.*)
-+ *(.bss)
-+ *(.bss.*)
-+ } :text
-+ /DISCARD/ : {
-+ *(.MIPS.options)
-+ *(.options)
-+ *(.pdr)
-+ *(.reginfo)
-+ *(.comment)
-+ *(.note)
-+ *(.gnu.attributes)
-+ }
-+}
---- /dev/null Thu Jan 6 00:14:22 2011
-+++ linux-2.6.36/arch/mips/boot/compressed/selfreloc1.S Wed Jan 5 23:22:30 2011
-@@ -0,0 +1,48 @@
-+/*-
-+ * written 2011 by Thorsten Glaser <tg@freewrt.org> based on
-+ * arch/mips/boot/compressed/head.S
-+ */
-+
-+#include <asm/asm.h>
-+#include <asm/regdef.h>
-+
-+ .set noreorder
-+ .cprestore
-+
-+ .globl selfreloc_move
-+
-+ .text
-+ LEAF(selfreloc_start)
-+selfreloc_start:
-+ /* Save boot rom start args */
-+ move s0, a0
-+ move s1, a1
-+ move s2, a2
-+ move s3, a3
-+
-+ PTR_LI a0, VMLINUZ_LOAD_ADDRESS
-+ PTR_LA sp, (.stack + 2048) /* stack address */
-+
-+ PTR_LA ra, 2f
-+ PTR_LA k0, selfreloc_move
-+ jr k0
-+ nop
-+2:
-+ move a0, s0
-+ move a1, s1
-+ move a2, s2
-+ move a3, s3
-+ PTR_LI k0, VMLINUZ_LOAD_ADDRESS
-+ jr k0
-+ nop
-+3:
-+ b 3b
-+ nop
-+ END(selfreloc_start)
-+
-+ .globl imgbeg
-+imgbeg: .incbin "vmlinuz.bin"
-+ .globl imgend
-+imgend:
-+
-+ .comm .stack,2048,4
---- /dev/null Thu Jan 6 00:14:26 2011
-+++ linux-2.6.36/arch/mips/boot/compressed/selfreloc2.c Wed Jan 5 23:34:00 2011
-@@ -0,0 +1,39 @@
-+/* written 2011 by Thorsten Glaser <tg@mirbsd.org> */
-+
-+extern unsigned char imgbeg, imgend;
-+
-+/* debug interfaces */
-+extern void puts(const char *);
-+extern void puthex(unsigned long long);
-+
-+void selfreloc_move(unsigned char *);
-+
-+/*
-+ * Note: we assume we are loaded to VMLINUX_LOAD_ADDRESS,
-+ * the range between it and our end-of-file doesn't over-
-+ * lap VMLINUZ_LOAD_ADDRESS, we need to relocate the code
-+ * there and jump to its first byte.
-+ */
-+
-+void
-+selfreloc_move(unsigned char *dst /* VMLINUZ_LOAD_ADDRESS */)
-+{
-+ unsigned char *src;
-+ unsigned long len;
-+
-+ puts("in selfreloc_move from ");
-+ puthex((unsigned long)&imgbeg);
-+ puts(":");
-+ puthex((unsigned long)&imgend);
-+ puts(" to ");
-+ puthex((unsigned long)dst);
-+ puts(" ...");
-+
-+ src = &imgbeg;
-+ len = (unsigned long)(&imgend) - (unsigned long)(&imgbeg);
-+
-+ while (len--)
-+ *dst++ = *src++;
-+
-+ puts("done\n");
-+}
---- linux-2.6.36/arch/mips/boot/compressed/Makefile~ Wed Jan 5 21:26:40 2011
-+++ linux-2.6.36/arch/mips/boot/compressed/Makefile Wed Jan 5 23:35:58 2011
-@@ -28,12 +28,14 @@ KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUIL
- targets := head.o decompress.o dbg.o uart-16550.o uart-alchemy.o
-
- # decompressor objects (linked with vmlinuz)
--vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/dbg.o
-+vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o
-+vmlinuz-dbg-objs-y := $(obj)/dbg.o
-
- ifdef CONFIG_DEBUG_ZBOOT
--vmlinuzobjs-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART16550) += $(obj)/uart-16550.o
--vmlinuzobjs-$(CONFIG_MIPS_ALCHEMY) += $(obj)/uart-alchemy.o
-+vmlinuz-dbg-objs-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART16550) += $(obj)/uart-16550.o
-+vmlinuz-dbg-objs-$(CONFIG_MIPS_ALCHEMY) += $(obj)/uart-alchemy.o
- endif
-+vmlinuzobjs-y += $(vmlinuz-dbg-objs-y)
-
- targets += vmlinux.bin
- OBJCOPYFLAGS_vmlinux.bin := $(OBJCOPYFLAGS) -O binary -R .comment -S
-@@ -106,4 +107,12 @@ OBJCOPYFLAGS_vmlinuz.srec := $(OBJCOPYFL
- vmlinuz.srec: vmlinuz
- $(call cmd,objcopy)
-
--clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec}
-+AFLAGS_selfreloc1.o := -DVMLINUZ_LOAD_ADDRESS=$(VMLINUZ_LOAD_ADDRESS)
-+arch/mips/boot/compressed/selfreloc1.o: arch/mips/boot/compressed/selfreloc1.S vmlinuz.bin
-+
-+CPPFLAGS_selfreloc.lds := $(KBUILD_CFLAGS)
-+
-+vmlinub.elf: arch/mips/boot/compressed/selfreloc1.o arch/mips/boot/compressed/selfreloc2.o arch/mips/boot/compressed/selfreloc.lds $(vmlinuz-dbg-objs-y)
-+ $(LD) $(LDFLAGS) -T arch/mips/boot/compressed/selfreloc.lds arch/mips/boot/compressed/selfreloc1.o arch/mips/boot/compressed/selfreloc2.o $(vmlinuz-dbg-objs-y) -o $@
-+
-+clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec} $(objtree)/vmlinub.elf $(objtree)/arch/mips/boot/compressed/selfreloc{{1,2}.o,.lds}
---- linux-2.6.36/arch/mips/Makefile~ Wed Jan 5 20:26:12 2011
-+++ linux-2.6.36/arch/mips/Makefile Wed Jan 5 22:41:38 2011
-@@ -79,6 +79,7 @@ endif
- all-$(CONFIG_BOOT_ELF32) := $(vmlinux-32)
- all-$(CONFIG_BOOT_ELF64) := $(vmlinux-64)
- all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
-+all-$(CONFIG_BCM47XX) += vmlinub.elf
-
- #
- # GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel
-@@ -285,7 +286,7 @@ vmlinux.bin vmlinux.ecoff vmlinux.srec:
- $(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) arch/mips/boot/$@
-
- # boot/compressed
--vmlinuz vmlinuz.bin vmlinuz.ecoff vmlinuz.srec: $(vmlinux-32) FORCE
-+vmlinuz vmlinuz.bin vmlinuz.ecoff vmlinuz.srec vmlinub.elf: $(vmlinux-32) FORCE
- $(Q)$(MAKE) $(build)=arch/mips/boot/compressed \
- VMLINUX_LOAD_ADDRESS=$(load-y) 32bit-bfd=$(32bit-bfd) $@
-
-@@ -322,6 +323,7 @@ define archhelp
- echo ' vmlinuz.ecoff - ECOFF zboot image'
- echo ' vmlinuz.bin - Raw binary zboot image'
- echo ' vmlinuz.srec - SREC zboot image'
-+ echo ' vmlinub.elf - ELF self-relocating zboot image'
- echo
- echo ' These will be default as apropriate for a configured platform.'
- endef