Skip to content
Snippets Groups Projects
Commit 9764968b authored by Mathias Kresin's avatar Mathias Kresin
Browse files

lantiq: ar7: use okli loader for FRITZ!Box


With Kernel 5.10 the ar7 FRITZ!Box are not booting the initramfs nor the
sysupgrade image any more. Presumably due to the grown kernel.

Use the okli preloader to workaround the bootloader issue. No solution
so far for the initramfs.

Signed-off-by: default avatarMathias Kresin <dev@kresin.me>
parent a328b683
No related branches found
No related tags found
No related merge requests found
#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 {
......
#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 {
......
......@@ -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
......
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 \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment