summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2014-08-18 21:00:55 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2014-08-18 21:00:55 +0000
commit09739f8ba5f4f6e4d7a4c3312a8471c06e99a8f1 (patch)
tree525873a2b8995977bbc9e69f05c3d613c6903bc2 /target
parent32b3f9cdc66f2a89ecd4556725acb57d39c3a54d (diff)
downloadmtk-20170518-09739f8ba5f4f6e4d7a4c3312a8471c06e99a8f1.zip
mtk-20170518-09739f8ba5f4f6e4d7a4c3312a8471c06e99a8f1.tar.gz
mtk-20170518-09739f8ba5f4f6e4d7a4c3312a8471c06e99a8f1.tar.bz2
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> SVN-Revision: 42205
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 584bb6c..d19a13e 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))