diff options
4 files changed, 46 insertions, 3 deletions
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7312.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7312.dts index 8d3d686f46..c8e67537a9 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7312.dts +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7312.dts @@ -1,6 +1,7 @@ #include "ar9.dtsi" #include <dt-bindings/input/input.h> +#include <dt-bindings/mtd/partitions/uimage.h> / { compatible = "avm,fritz7312", "lantiq,xway", "lantiq,ar9"; @@ -131,7 +132,10 @@ partition@20000 { label = "firmware"; + compatible = "openwrt,uimage", "denx,uimage"; reg = <0x20000 0xf60000>; + openwrt,ih-magic = <IH_MAGIC_OKLI>; + openwrt,offset = <0x11000>; }; partition@f80000 { diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7320.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7320.dts index f3b4e5e4f5..44b8a18dae 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7320.dts +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7320.dts @@ -1,6 +1,7 @@ #include "ar9.dtsi" #include <dt-bindings/input/input.h> +#include <dt-bindings/mtd/partitions/uimage.h> / { compatible = "avm,fritz7320", "lantiq,xway", "lantiq,ar9"; @@ -140,8 +141,11 @@ }; partition@20000 { + compatible = "openwrt,uimage", "denx,uimage"; label = "firmware"; reg = <0x20000 0xf60000>; + openwrt,ih-magic = <IH_MAGIC_OKLI>; + openwrt,offset = <0x11000>; }; partition@f80000 { diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile index ec10cd882a..facc3fbe09 100644 --- a/target/linux/lantiq/image/Makefile +++ b/target/linux/lantiq/image/Makefile @@ -49,12 +49,35 @@ define Build/fullimage rm $@.tmp endef -DEVICE_VARS += SIGNATURE MAGIC CRC32_POLY +define Build/loader-okli-compile + rm -rf $@.src + $(MAKE) -C lzma-loader \ + PKG_BUILD_DIR="$@.src" \ + TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \ + PLATFORM="lantiq" \ + LZMA_TEXT_START=0x82000000 \ + LOADADDR=0x80002000 \ + FLASH_START=0x10000000 \ + FLASH_OFFS=$(LOADER_FLASH_OFFS) \ + FLASH_MAX=0x0 \ + $(1) compile loader.bin + mv "$@.bin" "$@" + rm -rf $@.src +endef + +define Build/prepend-loader-okli + cat "$(KDIR)/loader-$(word 1,$(1)).bin" "$@" >> "$@.new" + mv "$@.new" "$@" +endef + +DEVICE_VARS += SIGNATURE MAGIC CRC32_POLY LOADER_FLASH_OFFS + DTS_DIR := $(DTS_DIR)/lantiq # Shared device definition: applies to every defined device define Device/Default PROFILES = Default + COMPILE := KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs KERNEL := kernel-bin | append-dtb | lzma | uImage lzma @@ -105,6 +128,16 @@ define Device/AVM append-rootfs | pad-rootfs | check-size | append-metadata endef +define Device/AVM_preloader + DEVICE_VENDOR := AVM + COMPILE := loader-$(1).bin + COMPILE/loader-$(1).bin := loader-okli-compile | lzma | eva-image | \ + pad-to 64k | append-avm-fakeroot | pad-to 4k + KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | \ + prepend-loader-okli $(1) + KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | eva-image +endef + ifeq ($(SUBTARGET),ase) DEFAULT_SOC := amazonse include amazonse.mk diff --git a/target/linux/lantiq/image/ar9.mk b/target/linux/lantiq/image/ar9.mk index a68868f0d9..5a17395f82 100644 --- a/target/linux/lantiq/image/ar9.mk +++ b/target/linux/lantiq/image/ar9.mk @@ -1,8 +1,9 @@ define Device/avm_fritz7312 - $(Device/AVM) + $(Device/AVM_preloader) DEVICE_MODEL := FRITZ!Box 7312 SOC := ar9 IMAGE_SIZE := 15744k + LOADER_FLASH_OFFS := 0x31000 DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ @@ -12,12 +13,13 @@ endef TARGET_DEVICES += avm_fritz7312 define Device/avm_fritz7320 - $(Device/AVM) + $(Device/AVM_preloader) DEVICE_MODEL := FRITZ!Box 7320 DEVICE_ALT0_VENDOR := 1&1 DEVICE_ALT0_MODEL := HomeServer SOC := ar9 IMAGE_SIZE := 15744k + LOADER_FLASH_OFFS := 0x31000 DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ |