Hi Rafal, just gave it a try on a Huawei E970: it didn't work, unfortunately (see below).
Originally, this device ran into a reboot loop after "Starting program at 0x80001000" with lzma-loader. The device has a hardware watchdog set to about 1 or 2 seconds, so I thought it may as well be the hang you're reporting. When adding support for E970 I had introduced the -gz image variant with gzipped kernel and no lzma-loader. Still it would be nicer to get rid of the extra image variant, additional to the fact that .gz is considerably larger than .lzma image. This is what I get: CFE version 1.0.37 for BCM947XX (32bit,SP,LE) Build Date: <C8><FD> 2<D4><C2> 13 14:50:54 CST 2008 (w114501@localhost.localdomain) Copyright (C) 2000,2001,2002,2003 Broadcom Corporation. [...] Loader:raw Filesys:raw Dev:flash0.os File: Options:(null) Loading: . 0 bytes read Failed. Could not load flash0.os:: Error CFE clear reboot_number: reboot_flag0 = 0x12345678, reboot_flag1 = 0x0,reboot_flag2 = 0xffffffff,reboot_number = 0x0 web info: Waiting for connection on socket 0. CFE> Loading manually gives some more detail but still doesn't work: CFE> load -raw flash0.os: Loader:raw Filesys:raw Dev:flash0.os File: Options:(null) Loading: Failed. Could not load flash0.os:: Invalid boot block on disk *** command status = -31 After reflashing with the -gz image it boots as expected: Loader:raw Filesys:raw Dev:flash0.os File: Options:(null) Loading: .......... 3356676 bytes read Entry at 0x80001000 Closing network. Starting program at 0x80001000 [ 0.000000] Linux version 3.10.12 (fnord@tschunk) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r38170) ) #1 Wed Sep 25 09:54:13 UTC 2013 [ 0.000000] CPU revision is: 00029029 (Broadcom BMIPS3300) I've read that different versions of lzma behave differently, and using stdin is different than using file input. I tried using stdin: $ cat ... | lzma e -si -so -d16 > ... --> surprisingly the .lzma is different, but doesn't work as well I also tried the lzma parameters and dd hack mentioned here, but still no luck: <https://lists.openwrt.org/pipermail/openwrt-devel/2008-May/002290.html> To make it short: do you have an idea worth trying? can I check whether this CFE supports lzma at all? unfortunately the sources I have from Huawei don't contain CFE... Thanks! Mathias Am Mo, 18.08.2014, 21:44 schrieb RafaÅ MiÅecki: > 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 <zaj...@gmail.com> > --- > 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 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)) > -- > 1.8.4.5 > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel > _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel