Эх сурвалжийг харах

fix parallel build, readd squashfs/cf fs targets for mips

Waldemar Brodkorb 14 жил өмнө
parent
commit
3cbe6e058f

+ 91 - 91
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"

+ 55 - 2
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
+