diff options
author | Jonas Gorski <jogo@openwrt.org> | 2014-08-01 21:56:31 +0000 |
---|---|---|
committer | Jonas Gorski <jogo@openwrt.org> | 2014-08-01 21:56:31 +0000 |
commit | 9762c605fe5fe106010f441c9daf42b08c1fcad8 (patch) | |
tree | 0a6166911934c4b2de5baa7f8ef5185da00ca06f /target/linux/brcm63xx/image/Makefile | |
parent | a3ea08a8254c2d653bd9440441e59a9bfdc1394b (diff) | |
download | master-187ad058-9762c605fe5fe106010f441c9daf42b08c1fcad8.tar.gz master-187ad058-9762c605fe5fe106010f441c9daf42b08c1fcad8.tar.bz2 master-187ad058-9762c605fe5fe106010f441c9daf42b08c1fcad8.zip |
brcm63xx: add working lzma-loader and use it for initramfs
Add a working lzma loader and use it for generating initramfs kernels
to allow easily netbooting elf kernels on devices with a 4 MiB CFE
size limit.
Based on ar71xx's lzma-loader.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41940 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm63xx/image/Makefile')
-rwxr-xr-x | target/linux/brcm63xx/image/Makefile | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile index 781425f9d9..807eebf3e3 100755 --- a/target/linux/brcm63xx/image/Makefile +++ b/target/linux/brcm63xx/image/Makefile @@ -143,9 +143,25 @@ define Build/Clean $(MAKE) -C lzma-loader clean endef -define Image/Prepare +define Image/PrepareLoader # Standard LZMA kernel - cat $(KDIR)/vmlinux | $(STAGING_DIR_HOST)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux.lzma + $(STAGING_DIR_HOST)/bin/lzma e -d22 -fb64 -a1 $(KDIR)/vmlinux$(1) $(KDIR)/vmlinux$(1).lzma + + # Build the LZMA loader + rm -rf $(KDIR)/lzma-loader + $(MAKE) -C lzma-loader \ + $(LOADER_MAKEOPTS) \ + BUILD_DIR="$(KDIR)" \ + TARGET_DIR="$(BIN_DIR)" \ + LOADER_DATA="$(KDIR)/vmlinux$(1).lzma" \ + LOADER=$(IMG_PREFIX)-loader$(1).elf \ + LZMA_TEXT_START=0x80a00000 \ + compile loader.elf + + rm -f $(KDIR)/vmlinux$(1).lzma +endef + +define Image/Prepare # CFE is a LZMA nazi! It took me hours to find out the parameters! # Also I think lzma has a bug cause it generates different output depending on @@ -158,14 +174,9 @@ define Image/Prepare dd if=$(KDIR)/vmlinux.lzma.tmp of=$(KDIR)/vmlinux.lzma.cfe ibs=13 obs=5 skip=1 seek=1 conv=notrunc rm -f $(KDIR)/vmlinux.lzma.tmp - # Build the LZMA loader - rm -f $(KDIR)/loader.gz - $(MAKE) -C lzma-loader \ - BUILD_DIR="$(KDIR)" \ - TARGET="$(KDIR)" \ - clean install - - echo -ne "\\x00" >> $(KDIR)/loader.gz + ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) + $(call Image/PrepareLoader,-initramfs) + endif rm -f $(KDIR)/fs_mark touch $(KDIR)/fs_mark $(call prepare_generic_squashfs,$(KDIR)/fs_mark) |