From: Birger Koblitz Date: Thu, 15 Oct 2020 10:31:05 +0000 (+0200) Subject: rtl838x: Fix firmware handling X-Git-Tag: v21.02.0-rc1~1347 X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=076fdd9fec874581dc3059c34ca72be6aab3d81d;p=openwrt%2Fopenwrt.git rtl838x: Fix firmware handling Fix wrong magic number verification for FW files. Correct handling of external RTL8218B firmware PHY name in firmware. Signed-off-by: Birger Koblitz --- diff --git a/target/linux/rtl838x/files-5.4/drivers/net/dsa/rtl838x_phy.c b/target/linux/rtl838x/files-5.4/drivers/net/dsa/rtl838x_phy.c index aa6ac62c27..e5dfdcaa07 100644 --- a/target/linux/rtl838x/files-5.4/drivers/net/dsa/rtl838x_phy.c +++ b/target/linux/rtl838x/files-5.4/drivers/net/dsa/rtl838x_phy.c @@ -251,8 +251,8 @@ rtl838x_request_fw(struct phy_device *phydev, const struct firmware *fw, h = (struct fw_header *) fw->data; pr_info("Firmware loaded. Size %d, magic: %08x\n", fw->size, h->magic); - if (h->phy != 0x83800000) { - pr_err("Wrong firmware file: PHY mismatch.\n"); + if (h->magic != 0x83808380) { + pr_err("Wrong firmware file: MAGIC mismatch.\n"); goto out; } @@ -415,7 +415,7 @@ static int rtl8380_configure_ext_rtl8218b(struct phy_device *phydev) if (!h) return -1; - if (h->phy != 0x8218b00) { + if (h->phy != 0x8218b000) { phydev_err(phydev, "Wrong firmware file: PHY mismatch.\n"); return -1; } diff --git a/target/linux/rtl838x/files/firmware/rtl838x_phy/rtl838x_8218b.fw b/target/linux/rtl838x/files/firmware/rtl838x_phy/rtl838x_8218b.fw index a907849fb9..66325ef242 100644 Binary files a/target/linux/rtl838x/files/firmware/rtl838x_phy/rtl838x_8218b.fw and b/target/linux/rtl838x/files/firmware/rtl838x_phy/rtl838x_8218b.fw differ