diff options
author | Tom Rini <trini@konsulko.com> | 2020-06-12 14:58:12 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2020-06-12 14:58:12 -0400 |
commit | 8a1292ce3e21205645a155b23ac083a3fc6b64c1 (patch) | |
tree | 48fcd8954ca5d99a1b0e834d24031fbc353bf762 /drivers/net/rtl8169.c | |
parent | d16b38f42704fe3cc94fbee1601be96045013151 (diff) | |
parent | f1d925d9c39628d346b3809408695cd5c8b8faa2 (diff) |
Merge branch '2020-06-12-next-net' into next
- Merge tbs2910 distro boot support and associated clean-ups and size
reduction.
- Assorted networking corrections / bugfixes.
- Drop smc911x standalone API example as it was likely non-functional for a
long time.
- Enhanced support for TI PHYs
- rtl8139 DM conversion
Diffstat (limited to 'drivers/net/rtl8169.c')
-rw-r--r-- | drivers/net/rtl8169.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c index 75058fdadc0..fb4fae20e53 100644 --- a/drivers/net/rtl8169.c +++ b/drivers/net/rtl8169.c @@ -240,6 +240,9 @@ enum RTL8169_register_content { /*_TBICSRBit*/ TBILinkOK = 0x02000000, + + /* FuncEvent/Misc */ + RxDv_Gated_En = 0x80000, }; static struct { @@ -1210,6 +1213,19 @@ static int rtl8169_eth_probe(struct udevice *dev) return ret; } + /* + * WAR for DHCP failure after rebooting from kernel. + * Clear RxDv_Gated_En bit which was set by kernel driver. + * Without this, U-Boot can't get an IP via DHCP. + * Register (FuncEvent, aka MISC) and RXDV_GATED_EN bit are from + * the r8169.c kernel driver. + */ + + u32 val = RTL_R32(FuncEvent); + debug("%s: FuncEvent/Misc (0xF0) = 0x%08X\n", __func__, val); + val &= ~RxDv_Gated_En; + RTL_W32(FuncEvent, val); + return 0; } |