summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/linux/patches/2.6.37/brcm.patch182
-rw-r--r--target/mips/Makefile57
2 files changed, 146 insertions, 93 deletions
diff --git a/target/linux/patches/2.6.37/brcm.patch b/target/linux/patches/2.6.37/brcm.patch
index 6ce7fc3c8..0dfcf4b06 100644
--- a/target/linux/patches/2.6.37/brcm.patch
+++ b/target/linux/patches/2.6.37/brcm.patch
@@ -1,45 +1,6 @@
-diff -Nur linux-2.6.37.orig/arch/mips/Kconfig linux-2.6.37/arch/mips/Kconfig
---- linux-2.6.37.orig/arch/mips/Kconfig 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/Kconfig 2011-01-19 22:45:48.000000000 +0100
-@@ -84,6 +84,7 @@
- select GENERIC_GPIO
- select SYS_HAS_EARLY_PRINTK
- select CFE
-+ select SYS_SUPPORTS_ZBOOT_UART16550
- help
- Support for BCM47XX based boards
-
-diff -Nur linux-2.6.37.orig/arch/mips/Makefile linux-2.6.37/arch/mips/Makefile
---- linux-2.6.37.orig/arch/mips/Makefile 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/Makefile 2011-01-19 22:48:04.000000000 +0100
-@@ -76,6 +76,7 @@
- all-$(CONFIG_BOOT_ELF32) := $(vmlinux-32)
- all-$(CONFIG_BOOT_ELF64) := $(vmlinux-64)
- all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
-+all-$(CONFIG_BCM47XX) += vmlinuz.elf
-
- #
- # GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel
-@@ -276,7 +277,7 @@
- $(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 vmlinuz.elf: $(vmlinux-32) FORCE
- $(Q)$(MAKE) $(build)=arch/mips/boot/compressed \
- VMLINUX_LOAD_ADDRESS=$(load-y) 32bit-bfd=$(32bit-bfd) $@
-
-@@ -313,6 +314,7 @@
- echo ' vmlinuz.ecoff - ECOFF zboot image'
- echo ' vmlinuz.bin - Raw binary zboot image'
- echo ' vmlinuz.srec - SREC zboot image'
-+ echo ' vmlinuz.elf - ELF self-relocating zboot image'
- echo
- echo ' These will be default as apropriate for a configured platform.'
- endef
diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/Makefile linux-2.6.37/arch/mips/bcm47xx/Makefile
--- linux-2.6.37.orig/arch/mips/bcm47xx/Makefile 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/bcm47xx/Makefile 2011-01-19 22:45:43.000000000 +0100
++++ linux-2.6.37/arch/mips/bcm47xx/Makefile 2011-04-26 20:26:19.777672932 +0200
@@ -3,4 +3,4 @@
# under Linux.
#
@@ -48,7 +9,7 @@ diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/Makefile linux-2.6.37/arch/mips/bc
+obj-y := gpio.o irq.o nvram.o prom.o serial.o setup.o time.o platform.o
diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/platform.c linux-2.6.37/arch/mips/bcm47xx/platform.c
--- linux-2.6.37.orig/arch/mips/bcm47xx/platform.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.37/arch/mips/bcm47xx/platform.c 2011-01-19 22:45:57.000000000 +0100
++++ linux-2.6.37/arch/mips/bcm47xx/platform.c 2011-04-26 20:26:19.917673199 +0200
@@ -0,0 +1,139 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
@@ -191,7 +152,7 @@ diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/platform.c linux-2.6.37/arch/mips/
+device_initcall(bcm47xx_register_devices);
diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/Makefile linux-2.6.37/arch/mips/boot/compressed/Makefile
--- linux-2.6.37.orig/arch/mips/boot/compressed/Makefile 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/boot/compressed/Makefile 2011-01-19 23:21:26.000000000 +0100
++++ linux-2.6.37/arch/mips/boot/compressed/Makefile 2011-04-26 20:44:04.607661119 +0200
@@ -58,8 +58,13 @@
# Calculate the load address of the compressed kernel image
hostprogs-y := calc_vmlinuz_load_addr
@@ -214,15 +175,58 @@ diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/Makefile linux-2.6.37/arch
+AFLAGS_selfreloc.o := -DVMLINUZ_LOAD_ADDRESS=$(VMLINUZ_LOAD_ADDRESS)
+CPPFLAGS_selfreloc.lds := $(KBUILD_CFLAGS)
+
-+arch/mips/boot/compressed/selfreloc.o: arch/mips/boot/compressed/selfreloc.S vmlinuz.bin
++arch/mips/boot/compressed/selfreloc.o: arch/mips/boot/compressed/selfreloc.S vmlinuz.bin FORCE
+
-+vmlinuz.elf: arch/mips/boot/compressed/selfreloc.o arch/mips/boot/compressed/selfreloc.lds
++vmlinuz.elf: arch/mips/boot/compressed/selfreloc.o arch/mips/boot/compressed/selfreloc.lds FORCE
+ $(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,elf} $(objtree)/arch/mips/boot/compressed/selfreloc.{o,lds}
+diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.lds.S linux-2.6.37/arch/mips/boot/compressed/selfreloc.lds.S
+--- linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.lds.S 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37/arch/mips/boot/compressed/selfreloc.lds.S 2011-04-26 20:26:20.347764678 +0200
+@@ -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)
++ }
++}
diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.S linux-2.6.37/arch/mips/boot/compressed/selfreloc.S
--- linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.37/arch/mips/boot/compressed/selfreloc.S 2011-01-19 22:45:57.000000000 +0100
++++ linux-2.6.37/arch/mips/boot/compressed/selfreloc.S 2011-04-26 20:26:20.197673829 +0200
@@ -0,0 +1,54 @@
+/*-
+ * written 2011 by Thorsten Glaser <tg@freewrt.org> based on
@@ -278,52 +282,9 @@ diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.S linux-2.6.37/a
+ .globl imgend
+ .p2align 2
+imgend:
-diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.lds.S linux-2.6.37/arch/mips/boot/compressed/selfreloc.lds.S
---- linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.lds.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.37/arch/mips/boot/compressed/selfreloc.lds.S 2011-01-19 22:45:48.000000000 +0100
-@@ -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)
-+ }
-+}
diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/uart-16550.c linux-2.6.37/arch/mips/boot/compressed/uart-16550.c
--- linux-2.6.37.orig/arch/mips/boot/compressed/uart-16550.c 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/boot/compressed/uart-16550.c 2011-01-19 22:45:48.000000000 +0100
++++ linux-2.6.37/arch/mips/boot/compressed/uart-16550.c 2011-04-26 20:26:20.467673519 +0200
@@ -18,6 +18,11 @@
#define PORT(offset) (CKSEG1ADDR(AR7_REGS_UART0) + (4 * offset))
#endif
@@ -336,9 +297,48 @@ diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/uart-16550.c linux-2.6.37/
#ifndef PORT
#error please define the serial port address for your own machine
#endif
+diff -Nur linux-2.6.37.orig/arch/mips/Kconfig linux-2.6.37/arch/mips/Kconfig
+--- linux-2.6.37.orig/arch/mips/Kconfig 2011-01-05 01:50:19.000000000 +0100
++++ linux-2.6.37/arch/mips/Kconfig 2011-04-26 20:26:19.637668480 +0200
+@@ -84,6 +84,7 @@
+ select GENERIC_GPIO
+ select SYS_HAS_EARLY_PRINTK
+ select CFE
++ select SYS_SUPPORTS_ZBOOT_UART16550
+ help
+ Support for BCM47XX based boards
+
+diff -Nur linux-2.6.37.orig/arch/mips/Makefile linux-2.6.37/arch/mips/Makefile
+--- linux-2.6.37.orig/arch/mips/Makefile 2011-01-05 01:50:19.000000000 +0100
++++ linux-2.6.37/arch/mips/Makefile 2011-04-26 20:26:19.647661042 +0200
+@@ -76,6 +76,7 @@
+ all-$(CONFIG_BOOT_ELF32) := $(vmlinux-32)
+ all-$(CONFIG_BOOT_ELF64) := $(vmlinux-64)
+ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
++all-$(CONFIG_BCM47XX) += vmlinuz.elf
+
+ #
+ # GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel
+@@ -276,7 +277,7 @@
+ $(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 vmlinuz.elf: $(vmlinux-32) FORCE
+ $(Q)$(MAKE) $(build)=arch/mips/boot/compressed \
+ VMLINUX_LOAD_ADDRESS=$(load-y) 32bit-bfd=$(32bit-bfd) $@
+
+@@ -313,6 +314,7 @@
+ echo ' vmlinuz.ecoff - ECOFF zboot image'
+ echo ' vmlinuz.bin - Raw binary zboot image'
+ echo ' vmlinuz.srec - SREC zboot image'
++ echo ' vmlinuz.elf - ELF self-relocating zboot image'
+ echo
+ echo ' These will be default as apropriate for a configured platform.'
+ endef
diff -Nur linux-2.6.37.orig/drivers/ssb/driver_mipscore.c linux-2.6.37/drivers/ssb/driver_mipscore.c
--- linux-2.6.37.orig/drivers/ssb/driver_mipscore.c 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/drivers/ssb/driver_mipscore.c 2011-01-19 22:45:57.000000000 +0100
++++ linux-2.6.37/drivers/ssb/driver_mipscore.c 2011-04-26 20:26:20.597672444 +0200
@@ -190,10 +190,11 @@
{
struct ssb_bus *bus = mcore->dev->bus;
@@ -354,7 +354,7 @@ diff -Nur linux-2.6.37.orig/drivers/ssb/driver_mipscore.c linux-2.6.37/drivers/s
mcore->flash_buswidth = 1;
diff -Nur linux-2.6.37.orig/init/Kconfig linux-2.6.37/init/Kconfig
--- linux-2.6.37.orig/init/Kconfig 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/init/Kconfig 2011-01-19 22:45:48.000000000 +0100
++++ linux-2.6.37/init/Kconfig 2011-04-26 20:26:20.727673059 +0200
@@ -158,6 +158,7 @@
config KERNEL_GZIP
bool "Gzip"
diff --git a/target/mips/Makefile b/target/mips/Makefile
index 02eced887..66ac4af98 100644
--- a/target/mips/Makefile
+++ b/target/mips/Makefile
@@ -15,9 +15,40 @@ endif
OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
+tools-compile:
+ $(MAKE) -C ../tools/trx all
+ $(MAKE) -C ../tools/addpattern all
+ $(MAKE) -C ../tools/srec2bin all
+ $(MAKE) -C ../tools/squashfs all
+
+ifeq ($(ADK_KERNEL_BCM47XX),y)
+kernel-install: tools-compile
+ ${TARGET_CROSS}objcopy ${OSTRIP} -S ${LINUX_DIR}/vmlinuz.elf \
+ ${BUILD_DIR}/${TARGET_KERNEL}
+
+${BUILD_DIR}/${ROOTFSSQUASHFS}: ${BUILD_DIR}/root.squashfs
+ ${TARGET_CROSS}objcopy -O binary ${BUILD_DIR}/${TARGET_KERNEL} \
+ ${BUILD_DIR}/${TARGET_KERNEL}.bin
+ gzip -n9 <${BUILD_DIR}/${TARGET_KERNEL}.bin \
+ >${BUILD_DIR}/${TARGET_KERNEL}.bin.gz
+ printf '\0' >>${BUILD_DIR}/${TARGET_KERNEL}.bin.gz
+ PATH='${TARGET_PATH}' trx -o $@~ -f ${BUILD_DIR}/${TARGET_KERNEL}.bin.gz -a 1024 -f ${BUILD_DIR}/root.squashfs
+ PATH='${TARGET_PATH}' addpattern -4 ${ADK_TOOLS_ADDPATTERN_ARGS} -g -i $@~ -o $@
+endif
+
+ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_AG241),y)
+kernel-install: tools-compile
+ ${TARGET_CROSS}objcopy -S -O srec $(KERNEL) $(LINUX_DIR)/vmlinux.srec
+ PATH='${TARGET_PATH}' srec2bin $(LINUX_DIR)/vmlinux.srec $(LINUX_DIR)/vmlinux.bin
+ (dd if=/dev/zero bs=16 count=1; cat $(LINUX_DIR)/vmlinux.bin) > $(LINUX_DIR)/vmlinux.tmp
+ PATH='${TARGET_PATH}' addpattern -p AG3B -b -r 2.0 -i $(LINUX_DIR)/vmlinux.tmp \
+ -o $(BUILD_DIR)/$(TARGET_KERNEL) 2>/dev/null
+endif
+
+ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB532),y)
kernel-install:
- $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) \
- $(TARGET_DIR)/boot/kernel
+ $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+endif
ifeq ($(ADK_TARGET_FS),nfsroot)
imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSUSERTARBALL)
@@ -65,3 +96,25 @@ ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
@echo "PMON> g console=tty no_auto_cmd"
endif
endif
+ifeq ($(ADK_TARGET_FS),cf)
+imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSUSERTARBALL)
+ @cp $(BUILD_DIR)/$(TARGET_KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+ @echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSUSERTARBALL)"
+ @echo "Boot the board via network (tftp+nfsroot) and use adkinstall."
+ @echo "If you just want to update, use adkupdate."
+endif
+ifeq ($(ADK_TARGET_FS),squashfs)
+imageinstall: kernel-install ${BUILD_DIR}/${ROOTFSSQUASHFS}
+ @if [ $$($(STATCMD) ${BUILD_DIR}/${ROOTFSSQUASHFS}) -gt 3801088 ];then \
+ echo 'Image is too big!'; \
+ else \
+ ${CP} ${BUILD_DIR}/${ROOTFSSQUASHFS} ${BIN_DIR}/${ROOTFSSQUASHFS}; \
+ echo The image file is $(ROOTFSSQUASHFS); \
+ echo 'You can flash the image via tftp:'; \
+ echo 'tftp 192.168.1.1'; \
+ echo 'tftp> binary'; \
+ echo "tftp> put $(ROOTFSSQUASHFS) upgrade_code.bin"; \
+ fi
+endif
+