The firmware loading does not depend (solely) on the PHY id. The driver needs to read out the vendor version id of the PHY before it can decide which firmware file needs to be loaded. A split in an RTL8261N and an RTL8264B firmware package is therefore misleading. And it could even be that a product ships an RTL8264B but switches the revision of the chip in the middle of its product lifetime. In this case, the first identification based on the chip ID or the actual chip ID for the OpenWrt porter might fail for another user with a later/earlier produced device. Shipping both files in the same package avoids this problem. Only the "low power" firmware package is slightly misleading because there is only a RTL8261N firmware binary for low power but no corresponding RTL8264B version. It will ship simply the non-low power version for RTL8264B. Suggested-by: Jonas Jelonek <jelonek.jonas@gmail.com> Signed-off-by: Sven Eckelmann <sven@narfation.org> Link: https://github.com/openwrt/openwrt/pull/23947 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
67 lines
1.7 KiB
Makefile
67 lines
1.7 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=rtl826x-firmware
|
|
PKG_SOURCE_DATE:=2026-01-24
|
|
PKG_RELEASE:=4
|
|
|
|
PKG_SOURCE_URL:=https://github.com/balika011/realtek_phy_firmware
|
|
PKG_SOURCE_VERSION:=0cd4abe2b0bf197f75c27088f86a74c7ddb103b4
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_MIRROR_HASH:=f665e9f119cbfddcccae09a17382daa8306772d1e37db7eb69a8771157d06d5f
|
|
|
|
PKG_MAINTAINER:=Balázs Triszka <info@balika011.hu>
|
|
PKG_LICENSE:=GPL-2.0-only
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Build/Compile
|
|
(set -e; cd $(PKG_BUILD_DIR); \
|
|
$(HOSTCC) rtl8261n_rtl8264b.c phy_patch.c -o phy_patch; \
|
|
./phy_patch \
|
|
)
|
|
endef
|
|
|
|
define Package/rtl826x-firmware/Default
|
|
SECTION:=firmware
|
|
CATEGORY:=Firmware
|
|
DEPENDS:=+kmod-phy-realtek
|
|
PKGARCH:=all
|
|
endef
|
|
|
|
define Package/rtl826x-firmware
|
|
$(call Package/rtl826x-firmware/Default)
|
|
TITLE:=Realtek RTL8251L/RTL8261BE/RTL8261N/RTL8254B/RTL8264/RTL8264B firmware
|
|
VERSION:=20221115
|
|
endef
|
|
|
|
define Package/rtl826x-lp-firmware
|
|
$(call Package/rtl826x-firmware/Default)
|
|
TITLE:=Realtek RTL8251L/RTL8261BE/RTL8261N/RTL8254B/RTL8264/RTL8264B low-power firmware
|
|
VERSION:=20240729
|
|
PROVIDES:=rtl826x-firmware
|
|
CONFLICTS:=rtl826x-firmware
|
|
endef
|
|
|
|
define Package/rtl826x-firmware/install
|
|
$(INSTALL_DIR) $(1)/lib/firmware
|
|
$(INSTALL_DATA) \
|
|
$(PKG_BUILD_DIR)/rtl8261n.bin \
|
|
$(PKG_BUILD_DIR)/rtl8264b.bin \
|
|
$(1)/lib/firmware/
|
|
endef
|
|
|
|
define Package/rtl826x-lp-firmware/install
|
|
$(INSTALL_DIR) $(1)/lib/firmware
|
|
$(INSTALL_DATA) \
|
|
$(PKG_BUILD_DIR)/rtl8261n_lp.bin \
|
|
$(1)/lib/firmware/rtl8261n.bin
|
|
$(INSTALL_DATA) \
|
|
$(PKG_BUILD_DIR)/rtl8264b.bin \
|
|
$(1)/lib/firmware/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,rtl826x-firmware))
|
|
$(eval $(call BuildPackage,rtl826x-lp-firmware))
|