aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7312.dts4
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7320.dts4
-rw-r--r--target/linux/lantiq/image/Makefile35
-rw-r--r--target/linux/lantiq/image/ar9.mk6
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 \