summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-01-06 03:29:53 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2011-01-06 03:29:53 +0100
commit2ab8ae9946dd47a88089844e42140a83a0061758 (patch)
tree4450d2488254d3bb89b881e4bec726f8d0b472b5 /target
parentf6897b395f6340132ab47a46fe587e8e6ced647a (diff)
Revert "Add experimental code to self-relocate vmlinuz on e.g. brcm"
This reverts commit f6897b395f6340132ab47a46fe587e8e6ced647a.
Diffstat (limited to 'target')
-rw-r--r--target/linux/patches/2.6.36/zboot-brcm-reloc.patch297
1 files changed, 0 insertions, 297 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 62de01b36..000000000
--- a/target/linux/patches/2.6.36/zboot-brcm-reloc.patch
+++ /dev/null
@@ -1,297 +0,0 @@
---- /dev/null Thu Jan 6 02:10:11 2011
-+++ linux-2.6.36/arch/mips/boot/compressed/invcache.S Thu Jan 6 01:32:57 2011
-@@ -0,0 +1,132 @@
-+/*-
-+ * written 2011 by Thorsten Glaser <tg@mirbsd.org> based on
-+ * code from LZMA-Loader with the following copyright note:
-+ * Copyright 2005 Oleg I. Vdovikin <oleg@cs.msu.su>
-+ * cache manipulation adapted from Broadcom code
-+ * idea taken from original bunzip2 decompressor code
-+ * Copyright 2004 Manuel Novoa III <mjn3@codepoet.org>
-+ */
-+
-+/*
-+ * This file is supposed to be #include’d where it’s
-+ * needed; we will not trash s0, s1, s2, s3.
-+ */
-+
-+#define KSEG0 0x80000000
-+
-+#define C0_CONFIG $16
-+#define C0_TAGLO $28
-+#define C0_TAGHI $29
-+
-+#define CONF1_DA_SHIFT 7 /* D$ associativity */
-+#define CONF1_DA_MASK 0x00000380
-+#define CONF1_DA_BASE 1
-+#define CONF1_DL_SHIFT 10 /* D$ line size */
-+#define CONF1_DL_MASK 0x00001c00
-+#define CONF1_DL_BASE 2
-+#define CONF1_DS_SHIFT 13 /* D$ sets/way */
-+#define CONF1_DS_MASK 0x0000e000
-+#define CONF1_DS_BASE 64
-+#define CONF1_IA_SHIFT 16 /* I$ associativity */
-+#define CONF1_IA_MASK 0x00070000
-+#define CONF1_IA_BASE 1
-+#define CONF1_IL_SHIFT 19 /* I$ line size */
-+#define CONF1_IL_MASK 0x00380000
-+#define CONF1_IL_BASE 2
-+#define CONF1_IS_SHIFT 22 /* Instruction cache sets/way */
-+#define CONF1_IS_MASK 0x01c00000
-+#define CONF1_IS_BASE 64
-+
-+#define Index_Invalidate_I 0x00
-+#define Index_Writeback_Inv_D 0x01
-+
-+ /* Get cache sizes */
-+ .set mips32
-+ mfc0 s4,C0_CONFIG,1
-+ .set mips0
-+
-+ li s5,CONF1_DL_MASK
-+ and s5,s4
-+ beq s5,zero,2f
-+ nop
-+
-+ srl s5,CONF1_DL_SHIFT
-+ li t0,CONF1_DL_BASE
-+ sll s5,t0,s5 /* s5 has D$ cache line size */
-+
-+ li s6,CONF1_DA_MASK
-+ and s6,s4
-+ srl s6,CONF1_DA_SHIFT
-+ addiu s6,CONF1_DA_BASE /* s6 now has D$ associativity */
-+
-+ li t0,CONF1_DS_MASK
-+ and t0,s4
-+ srl t0,CONF1_DS_SHIFT
-+ li s7,CONF1_DS_BASE
-+ sll s7,s7,t0 /* s7 has D$ sets per way */
-+
-+ multu s6,s7 /* sets/way * associativity */
-+ mflo t0 /* total cache lines */
-+
-+ multu s5,t0 /* D$ linesize * lines */
-+ mflo s6 /* s6 is now D$ size in bytes */
-+
-+ /* Initilize the D$: */
-+ mtc0 zero,C0_TAGLO
-+ mtc0 zero,C0_TAGHI
-+
-+ li t0,KSEG0 /* Just an address for the first $ line */
-+ addu t1,t0,s6 /* + size of cache == end */
-+
-+ .set mips3
-+1: cache Index_Writeback_Inv_D,0(t0)
-+ .set mips0
-+ bne t0,t1,1b
-+ addu t0,s5
-+
-+2:
-+ /* Now we get to do it all again for the I$ */
-+
-+ move s7,zero /* just in case there is no icache */
-+ move t8,zero
-+
-+ li t0,CONF1_IL_MASK
-+ and t0,s4
-+ beq t0,zero,3f
-+ nop
-+
-+ srl t0,CONF1_IL_SHIFT
-+ li s7,CONF1_IL_BASE
-+ sll s7,t0 /* s7 has I$ cache line size */
-+
-+ li t0,CONF1_IA_MASK
-+ and t0,s4
-+ srl t0,CONF1_IA_SHIFT
-+ addiu t8,t0,CONF1_IA_BASE /* t8 now has I$ associativity */
-+
-+ li t0,CONF1_IS_MASK
-+ and t0,s4
-+ srl t0,CONF1_IS_SHIFT
-+ li t9,CONF1_IS_BASE
-+ sll t9,t0 /* t9 has I$ sets per way */
-+
-+ multu t8,t9 /* sets/way * associativity */
-+ mflo t0 /* t8 is now total cache lines */
-+
-+ multu s7,t0 /* I$ linesize * lines */
-+ mflo t8 /* t8 is cache size in bytes */
-+
-+ /* Initilize the I$: */
-+ mtc0 zero,C0_TAGLO
-+ mtc0 zero,C0_TAGHI
-+
-+ li t0,KSEG0 /* Just an address for the first $ line */
-+ addu t1,t0,t8 /* + size of cache == end */
-+
-+ .set mips3
-+1: cache Index_Invalidate_I,0(t0)
-+ .set mips0
-+ bne t0,t1,1b
-+ addu t0,s7
-+
-+3:
---- /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 02:10:14 2011
-+++ linux-2.6.36/arch/mips/boot/compressed/selfreloc.S Thu Jan 6 01:21:44 2011
-@@ -0,0 +1,60 @@
-+/*-
-+ * written 2011 by Thorsten Glaser <tg@freewrt.org> based on
-+ * arch/mips/boot/compressed/head.S and code from LZMA-Loader
-+ */
-+
-+#include <asm/asm.h>
-+#include <asm/regdef.h>
-+
-+ .set noreorder
-+ .cprestore
-+
-+ .text
-+ LEAF(selfreloc_start)
-+selfreloc_start:
-+ /* Save boot rom start args */
-+ move s0, a0
-+ move s1, a1
-+ move s2, a2
-+ move s3, a3
-+
-+ /* Copy code to the correct place */
-+ PTR_LI a0, VMLINUZ_LOAD_ADDRESS
-+ PTR_LA a1, imgbeg
-+ PTR_LA a2, imgend
-+1: lw t0, 0(a1)
-+ sw t0, 0(a0)
-+ add a1, 4
-+ add a0, 4
-+ blt a1, a2, 1b
-+ nop
-+
-+ /*
-+ * At this point we need to invalidate dcache and
-+ * icache before jumping to the new code
-+ */
-+/* #include "invcache.S" // since this may work only on brcm? */
-+
-+ /* Restore boot rom start args */
-+ move a0, s0
-+ move a1, s1
-+ move a2, s2
-+ move a3, s3
-+
-+ /* Jump to the code at its new location */
-+ PTR_LI k0, VMLINUZ_LOAD_ADDRESS
-+ jr k0
-+ nop
-+
-+ /* Just in case we come back… */
-+3:
-+ b 3b
-+ nop
-+ END(selfreloc_start)
-+
-+ .globl imgbeg
-+ .p2align 2
-+imgbeg: .incbin "vmlinuz.bin"
-+ .globl imgend
-+ .p2align 2
-+imgend:
---- 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
-@@ -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/selfreloc.o: arch/mips/boot/compressed/selfreloc.S vmlinuz.bin arch/mips/boot/compressed/invcache.S
-+
-+CPPFLAGS_selfreloc.lds := $(KBUILD_CFLAGS)
-+
-+vmlinub.elf: arch/mips/boot/compressed/selfreloc.oarch/mips/boot/compressed/selfreloc.lds
-+ $(LD) $(LDFLAGS) -T arch/mips/boot/compressed/selfreloc.lds arch/mips/boot/compressed/selfreloc.o -o $@
-+
-+clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec} $(objtree)/vmlinub.elf $(objtree)/arch/mips/boot/compressed/selfreloc.{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
-@@ -62,8 +62,13 @@ $(obj)/piggy.o: $(obj)/dummy.o $(obj)/vm
- # Calculate the load address of the compressed kernel image
- hostprogs-y := calc_vmlinuz_load_addr
-
-+ifdef CONFIG_BCM47XX
-+# XXX just after CFE, just pray the address is static
-+VMLINUZ_LOAD_ADDRESS = 0xffffffff80480000
-+else
- VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \
- $(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS))
-+endif
-
- vmlinuzobjs-y += $(obj)/piggy.o
-
-@@ -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