diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2021-08-21 10:54:34 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2021-08-21 19:07:07 +0200 |
commit | 8299d1f057439f94c6a4412e2e5c5082b82a30c9 (patch) | |
tree | 1bf678d61f11f7394493be464c7876e496f7faed /target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch | |
parent | 33b6885975ce376ff075362b7f0890326043111b (diff) | |
download | upstream-8299d1f057439f94c6a4412e2e5c5082b82a30c9.tar.gz upstream-8299d1f057439f94c6a4412e2e5c5082b82a30c9.tar.bz2 upstream-8299d1f057439f94c6a4412e2e5c5082b82a30c9.zip |
bcm27xx: add kernel 5.10 support
Rebased RPi foundation patches on linux 5.10.59, removed applied and reverted
patches, wireless patches and defconfig patches.
bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 4B v1.1 4G
bcm2711: boot tested on RPi 4B v1.1 4G
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch new file mode 100644 index 0000000000..5f446dcc2f --- /dev/null +++ b/target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch @@ -0,0 +1,51 @@ +From 5d5a886b8ae7d18e6aeb44acd37fc4bd23ca1952 Mon Sep 17 00:00:00 2001 +From: Phil Elwell <phil@raspberrypi.org> +Date: Fri, 9 Aug 2019 08:51:43 +0100 +Subject: [PATCH] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail + +Some combinations of Pi 4Bs and Ethernet switches don't reliably get a +DCHP-assigned IP address, leaving the unit with a self=assigned 169.254 +address. In the failure case, the Pi is left able to receive packets +but not send them, suggesting that the MAC<->PHY link is getting into +a bad state. + +It has been found empirically that skipping a reset step by the genet +driver prevents the failures. No downsides have been discovered yet, +and unlike the forced renegotiation it doesn't increase the time to +get an IP address, so the workaround is enabled by default; add + + genet.skip_umac_reset=n + +to the command line to disable it. + +See: https://github.com/raspberrypi/linux/issues/3108 + +Signed-off-by: Phil Elwell <phil@raspberrypi.org> +--- + drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c ++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c +@@ -67,6 +67,9 @@ + + /* Forward declarations */ + static void bcmgenet_set_rx_mode(struct net_device *dev); ++static bool skip_umac_reset = true; ++module_param(skip_umac_reset, bool, 0444); ++MODULE_PARM_DESC(skip_umac_reset, "Skip UMAC reset step"); + + static inline void bcmgenet_writel(u32 value, void __iomem *offset) + { +@@ -2426,6 +2429,11 @@ static void reset_umac(struct bcmgenet_p + bcmgenet_rbuf_ctrl_set(priv, 0); + udelay(10); + ++ if (skip_umac_reset) { ++ pr_warn("Skipping UMAC reset\n"); ++ return; ++ } ++ + /* issue soft reset and disable MAC while updating its registers */ + bcmgenet_umac_writel(priv, CMD_SW_RESET, UMAC_CMD); + udelay(2); |