From 076fdd9fec874581dc3059c34ca72be6aab3d81d Mon Sep 17 00:00:00 2001 From: Birger Koblitz Date: Thu, 15 Oct 2020 12:31:05 +0200 Subject: [PATCH] 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 --- .../files-5.4/drivers/net/dsa/rtl838x_phy.c | 6 +++--- .../firmware/rtl838x_phy/rtl838x_8218b.fw | Bin 1168 -> 1168 bytes 2 files changed, 3 insertions(+), 3 deletions(-) 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 aa6ac62c278..e5dfdcaa074 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 a907849fb93124bacdb6bb76d7a2feb731978126..66325ef242a809cffb92bb5297b87e2c6bf3dafd 100644 GIT binary patch delta 21 ccmbQhIf0X>xuLnCNn!)Tv)7vH8+lq-09RWF^#A|> delta 21 ccmbQhIf0X>xuLnCN#qYhQD}nqMxGWH090!SjsO4v