aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2014-09-01 13:21:42 +0000
committerJohn Crispin <blogic@openwrt.org>2014-09-01 13:21:42 +0000
commitd72a6f145efd8c7a43f24a26e14d17353f5ee4da (patch)
tree423260e3e92cc2d41bf82c28212e50671a3f9697 /target
parent565ad00d54d82c87f7db7b5ef6dbc55573b27720 (diff)
downloadupstream-d72a6f145efd8c7a43f24a26e14d17353f5ee4da.tar.gz
upstream-d72a6f145efd8c7a43f24a26e14d17353f5ee4da.tar.bz2
upstream-d72a6f145efd8c7a43f24a26e14d17353f5ee4da.zip
brcm47xx: image: build alternative TRX using less optimized LZMA
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 <zajec5@gmail.com> Backport of r42205 git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42371 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r--target/linux/brcm47xx/image/Makefile8
1 files changed, 8 insertions, 0 deletions
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))