openwrt/package/firmware/lantiq/dsl-vrx200-firmware-xdsl/Makefile
Andrew MacIntyre e63326e26a lantiq/xrx200: move 8M flash devices to a small flash subtarget
Images for xrx200 8M flash are either not building due to image
size (TD-W8970, TD-W8980) or building such that the available
free space in the overlayfs is too little to be useful.

To keep images for these devices buildable, move them into a
small flash variant of the xrx200 subtarget.  As these devices
are NOR flash only, remove NAND and UBI references from the
kernel config to gain some additional image size reduction.

The apparent 8M flash devices Arcadyan VGV7510KW22-brn,
Arcadyan VGV7519-brn and Lantiq Easy80920-nor seem to exist in
order to create special "factory" installation images for these
devices (which actually have larger flash: 16MB for the
Arcardyan devices; 64MB for the Lantiq device).  As a
considerable amount of surgery would appear to be required to
the uboot-lantiq package structure to separate the "factory"
from the "sysupgrade" device recipes for these devices they
remain in the xrx200 target - if factory images aren't now
created, 23.05.x factory images should suffice for initial
installation.

Tested on: Netgear DM200, TP-Link TD-W8980,
           AVM Fritz7490 (xrx200 subtarget: image build only)

Fixes: https://github.com/openwrt/openwrt/issues/16761
Signed-off-by: Andrew MacIntyre <andymac@pcug.org.au>
Link: https://github.com/openwrt/openwrt/pull/17113
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-12-16 00:59:55 +01:00

134 lines
4.6 KiB
Makefile

# Copyright (C) 2015 OpenWrt.org
# Copyright (C) 2015-2016 Lantiq Beteiligungs GmbH & Co KG.
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=dsl_vr9_firmware_xdsl
PKG_VERSION:=05.08.01.08.01.06.05.08.00.11.01.01
PKG_SOURCE_VERSION:=05.08.01.08.01.06_05.08.00.0B.01.01_osc
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_URL:=@OPENWRT
PKG_HASH:=44cd94130571fe42dfa8f0f9d44597d104e9e77962617fe38646b7a0b4184a2b
PKG_BUILD_DEPENDS:=bsdiff/host
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
PKG_B_VERSION:=05.07.09.09.00.06.05.07.04.04.00.02
PKG_B_SOURCE_VERSION:=05.07.09.09.00.06_05.07.04.04.00.02_osc
PKG_B_SOURCE:=$(PKG_NAME)-$(PKG_B_SOURCE_VERSION).tar.gz
ANNEX_A_VER:=581816_580B11
ANNEX_B_VER:=579906_574402
define Download/dsl_vr9_firmware_xdsl_b
FILE:=$(PKG_B_SOURCE)
URL:=$(PKG_SOURCE_URL)
HASH:=275c55e870205a5a75510d3ef3d3fb6b60010effebf4b2d1fbc72ffd46e855c0
endef
$(eval $(call Download,dsl_vr9_firmware_xdsl_b))
define Package/dsl-vrx200-firmware-xdsl-a
SECTION:=firmware
CATEGORY:=Firmware
TITLE:=VRX200 / VR9 CPE xDSL Annex A firmware
URL:=http://www.lantiq.com/
DEPENDS:=@(TARGET_lantiq_xrx200||TARGET_lantiq_xrx200_legacy)
endef
define Package/dsl-vrx200-firmware-xdsl-a/description
VRX200 / VR9 CPE VDSL and ADSL Annex A firmware
endef
define Package/dsl-vrx200-firmware-xdsl-b
SECTION:=firmware
CATEGORY:=Firmware
TITLE:=VRX200 / VR9 CPE xDSL Annex B firmware
URL:=http://www.lantiq.com/
DEPENDS:=@(TARGET_lantiq_xrx200||TARGET_lantiq_xrx200_legacy)
endef
define Package/dsl-vrx200-firmware-xdsl-b/description
VRX200 / VR9 CPE VDSL and ADSL Annex B firmware
endef
define Package/dsl-vrx200-firmware-xdsl-a-patch
SECTION:=firmware
CATEGORY:=Firmware
TITLE:=VRX200 / VR9 CPE xDSL Annex B to Annex A firmware patch
URL:=http://www.lantiq.com/
DEPENDS:=@(TARGET_lantiq_xrx200||TARGET_lantiq_xrx200_legacy) +dsl-vrx200-firmware-xdsl-b +bspatch
endef
define Package/dsl-vrx200-firmware-xdsl-a-patch/description
Patch which between the Annex A and Annex B firmware to create the Annex A firmware.
endef
define Package/dsl-vrx200-firmware-xdsl-b-patch
SECTION:=firmware
CATEGORY:=Firmware
TITLE:=VRX200 / VR9 CPE xDSL Annex A to Annex B firmware patch
URL:=http://www.lantiq.com/
DEPENDS:=@(TARGET_lantiq_xrx200||TARGET_lantiq_xrx200_legacy) +dsl-vrx200-firmware-xdsl-a +bspatch
endef
define Package/dsl-vrx200-firmware-xdsl-b-patch/description
Patch which between the Annex A and Annex B firmware to create the Annex B firmware.
endef
define Build/Prepare
rm -rf $(PKG_BUILD_DIR)
mkdir -p $(PKG_BUILD_DIR)
$(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_SOURCE)
$(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_B_SOURCE)
endef
define Build/Compile
bsdiff \
$(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER).bin \
$(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER).bin \
$(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER)_to_$(ANNEX_B_VER).bspatch
bsdiff \
$(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER).bin \
$(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER).bin \
$(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER)_to_$(ANNEX_A_VER).bspatch
endef
define Package/dsl-vrx200-firmware-xdsl-a/install
$(INSTALL_DIR) $(1)/lib/firmware/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE $(1)/lib/firmware/xcpe_$(ANNEX_A_VER).LICENSE
$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER).bin $(1)/lib/firmware/
ln -s xcpe_$(ANNEX_A_VER).bin $(1)/lib/firmware/lantiq-vrx200-a.bin
endef
define Package/dsl-vrx200-firmware-xdsl-b/install
$(INSTALL_DIR) $(1)/lib/firmware/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE $(1)/lib/firmware/xcpe_$(ANNEX_B_VER).LICENSE
$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER).bin $(1)/lib/firmware/
ln -s xcpe_$(ANNEX_B_VER).bin $(1)/lib/firmware/lantiq-vrx200-b.bin
endef
define Package/dsl-vrx200-firmware-xdsl-a-patch/install
$(INSTALL_DIR) $(1)/lib/firmware/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER)_to_$(ANNEX_A_VER).bspatch $(1)/lib/firmware/
ln -s xcpe_$(ANNEX_B_VER)_to_$(ANNEX_A_VER).bspatch $(1)/lib/firmware/lantiq-vrx200-b-to-a.bspatch
endef
define Package/dsl-vrx200-firmware-xdsl-b-patch/install
$(INSTALL_DIR) $(1)/lib/firmware/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER)_to_$(ANNEX_B_VER).bspatch $(1)/lib/firmware/
ln -s xcpe_$(ANNEX_A_VER)_to_$(ANNEX_B_VER).bspatch $(1)/lib/firmware/lantiq-vrx200-a-to-b.bspatch
endef
$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-a))
$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-b))
$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-a-patch))
$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-b-patch))