LZMA compress the kernel without dictionary, otherwise brnboot fails to
uncompress the kernel.
The filesystem parameter of mkbrncmdline was dropped since the used
filesystem isn't exported in the kernel build step and at least in my
tests everything works without the parameter. If the parameter is
required for some reason, the static keyword "squashfs" can be used.
Signed-off-by: Mathias Kresin <openwrt@kresin.me>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49241
3c298f89-4303-0410-b956-
a3cf2f4a3e73
$(call CompressLzma,$(KDIR)/vmlinux$(2)-$(1).tmp,$(KDIR)/vmlinux$(2)-$(1).lzma)
endef
$(call CompressLzma,$(KDIR)/vmlinux$(2)-$(1).tmp,$(KDIR)/vmlinux$(2)-$(1).lzma)
endef
-define MkBrnImage
- mkbrncmdline -i $(KDIR)/vmlinux-$(5) -o $(KDIR)/vmlinux-$(5)-brn BRN-BOOT $(7)
- $(call CompressLzma,$(KDIR)/vmlinux-$(5)-brn,$(KDIR)/vmlinux-$(5)-brn.lzma)
- mkbrnimg -s $(1) -m $(2) -p $(3) -o $(4) $(KDIR)/vmlinux-$(5)-brn.lzma $(KDIR)/root.$(6)
-endef
-
define MkImageLzma
mkimage -A mips -O linux -T kernel -a 0x80002000 -C lzma \
-e 0x80002000 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
define MkImageLzma
mkimage -A mips -O linux -T kernel -a 0x80002000 -C lzma \
-e 0x80002000 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
define Image/Build/squashfs
cat $(KDIR)/uImage-$(2) $(KDIR)/root.$(1) > $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image
$(call prepare_generic_squashfs,$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image)
define Image/Build/squashfs
cat $(KDIR)/uImage-$(2) $(KDIR)/root.$(1) > $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image
$(call prepare_generic_squashfs,$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image)
- $(if $(3),$(call MkBrnImage,$(3),$(4),$(5),$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(3)-brnImage,$(2),$(1),$(6)))
endef
define Image/BuildNAND/squashfs
endef
define Image/BuildNAND/squashfs
+define Build/mkbrncmdline
+ mkbrncmdline -i $@ -o $@.new BRN-BOOT
+ mv $@.new $@
+endef
+
+define Build/mkbrnimg
+ mkbrnimg -s $(SIGNATURE) -m $(MAGIC) -p $(CRC32_POLY) -o $@ $(word 1,$^) $(word 2,$^)
+endef
# Shared device definition: applies to every defined device
define Device/Default
# Shared device definition: applies to every defined device
define Device/Default
IMAGE/tplink := mktplinkfw2
endef
IMAGE/tplink := mktplinkfw2
endef
+define Device/lantiqBrnImage
+ KERNEL := kernel-bin | append-dtb | mkbrncmdline | lzma-no-dict
+ IMAGES := factory.bin
+ IMAGE/factory.bin := mkbrnimg
+endef
+DEVICE_VARS += SIGNATURE MAGIC CRC32_POLY
+
define lantiqTpLink
define Device/$(1)
$$(Device/lantiqTpLink)
define lantiqTpLink
define Device/$(1)
$$(Device/lantiqTpLink)
TARGET_DEVICES += $(1)
endef
TARGET_DEVICES += $(1)
endef
+define lantiqBrnImage
+ define Device/$(1)
+ $$(Device/lantiqBrnImage)
+ DEVICE_PROFILE := $(1)
+ DEVICE_DTS := $(1)
+ SIGNATURE := $(2)
+ MAGIC := $(3)
+ CRC32_POLY := $(4)
+ endef
+ TARGET_DEVICES += $(1)
+endef
ifeq ($(CONFIG_TARGET_lantiq_falcon),y)
ifeq ($(CONFIG_TARGET_lantiq_falcon),y)
$(eval $(call lantiqTpLink,TDW8980,TD-W8980v1))
$(eval $(call lantiqTpLink,VR200v,ArcherVR200V))
$(eval $(call lantiqImage,VGV7510KW22NOR))
$(eval $(call lantiqTpLink,TDW8980,TD-W8980v1))
$(eval $(call lantiqTpLink,VR200v,ArcherVR200V))
$(eval $(call lantiqImage,VGV7510KW22NOR))
-
-Image/BuildKernel/Profile/VGV7510KW22BRN=$(call Image/BuildKernel/Template,VGV7510KW22BRN,$(1))
-Image/Build/Profile/VGV7510KW22BRN=$(call Image/Build/$(1),$(1),VGV7510KW22BRN,BRNDA6431,0x12345678,0x04c11db7,$(1))
-
+$(eval $(call lantiqBrnImage,VGV7510KW22BRN,BRNDA6431,0x12345678,0x04c11db7))
$(eval $(call lantiqImage,VGV7519NOR))
$(eval $(call lantiqImage,VGV7519NOR))
-
-Image/BuildKernel/Profile/VGV7519BRN=$(call Image/BuildKernel/Template,VGV7519BRN,$(1))
-Image/Build/Profile/VGV7519BRN=$(call Image/Build/$(1),$(1),VGV7519BRN,5D00008000,0x12345678,0x2083b8ed,$(1))
+$(eval $(call lantiqBrnImage,VGV7519BRN,5D00008000,0x12345678,0x2083b8ed))
define Image/Prepare
$(call Image/Prepare/Profile,$(PROFILE))
define Image/Prepare
$(call Image/Prepare/Profile,$(PROFILE))