From 709aa589d4718dd7a816a0aac412412c9fb6d832 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Mon, 18 Aug 2014 21:00:55 +0000 Subject: [PATCH] brcm47xx: image: build alternative TRX using less optimized LZMA MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit There is a group of devices that lzma-loader doesn't work with. They simply hang at "Starting program at 0x80001000" which is really hard to debug and we didn't find any solution for this for years. Broadcom doesn't use lzma-loader on these devices anyway. They decided to drop lzma-loader and use less optimal LZMA compression that can be handled by CFE itself (it doesn't use dictionary). So support these devices we will need kernel compressed with different parameters and trx without a loader. Signed-off-by: Rafał Miłecki git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42205 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/brcm47xx/image/Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/linux/brcm47xx/image/Makefile b/target/linux/brcm47xx/image/Makefile index 584bb6cac6..d19a13ee60 100644 --- a/target/linux/brcm47xx/image/Makefile +++ b/target/linux/brcm47xx/image/Makefile @@ -12,7 +12,12 @@ define Build/Clean endef define Image/Prepare + # Optimized LZMA compression (with dictionary), handled by lzma-loader. cat $(KDIR)/vmlinux | $(STAGING_DIR_HOST)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux.lzma + + # Less optimal LZMA compression (no dictionary), handled by CFE. + $(STAGING_DIR_HOST)/bin/lzma e -so -d16 $(KDIR)/vmlinux > $(KDIR)/vmlinux-nodictionary.lzma + gzip -nc9 $(KDIR)/vmlinux > $(KDIR)/vmlinux.gz ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) cat $(KDIR)/vmlinux-initramfs | $(STAGING_DIR_HOST)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux-initramfs.lzma @@ -230,6 +235,9 @@ define Image/Build $(STAGING_DIR_HOST)/bin/trx -o $(BIN_DIR)/$(IMG_PREFIX)-$(1).trx \ -f $(KDIR)/loader.gz -f $(KDIR)/vmlinux.lzma \ $(call trxalign/$(1),$(1)) + $(STAGING_DIR_HOST)/bin/trx -o $(BIN_DIR)/$(IMG_PREFIX)-$(1)-noloader-nodictionary.trx \ + -f $(KDIR)/vmlinux-nodictionary.lzma \ + $(call trxalign/$(1),$(1)) $(STAGING_DIR_HOST)/bin/trx -o $(BIN_DIR)/$(IMG_PREFIX)-$(1)-gz.trx \ -f $(KDIR)/vmlinux.gz \ $(call trxalign/$(1),$(1)) -- 2.11.0