public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: twarren at nvidia.com <twarren@nvidia.com>
To: u-boot@lists.denx.de
Subject: [PATCH 1/2] net: rt8169: WAR for DHCP not getting IP after kernel boot/reboot
Date: Tue, 17 Mar 2020 13:07:15 -0700	[thread overview]
Message-ID: <1584475636-24521-2-git-send-email-twarren@nvidia.com> (raw)
In-Reply-To: <1584475636-24521-1-git-send-email-twarren@nvidia.com>

From: Tom Warren <twarren@nvidia.com>

This is a WAR for DHCP failure after rebooting from the L4T kernel. The
r8169.c kernel driver is setting bit 19 of the rt816x HW register 0xF0,
which goes by FuncEvent and MISC in various driver source/datasheets.
That bit is called RxDv_Gated_En in the r8169.c kernel driver. Clear it
here at the end of probe to ensure that U-Boot can get an IP assigned
via DHCP.

Signed-off-by: Tom Warren <twarren@nvidia.com>
---
 drivers/net/rtl8169.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c
index 5ccdfdd..ff89e28 100644
--- a/drivers/net/rtl8169.c
+++ b/drivers/net/rtl8169.c
@@ -237,6 +237,9 @@ enum RTL8169_register_content {
 
 	/*_TBICSRBit*/
 	TBILinkOK = 0x02000000,
+
+	/* FuncEvent/Misc */
+	RxDv_Gated_En = 0x80000,
 };
 
 static struct {
@@ -1207,6 +1210,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;
 }
 
-- 
1.8.2.1.610.g562af5b


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

  reply	other threads:[~2020-03-17 20:07 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-17 20:07 [PATCH 0/2] net: tegra: Misc network fixes twarren at nvidia.com
2020-03-17 20:07 ` twarren at nvidia.com [this message]
2020-03-18 23:29   ` [PATCH 1/2] net: rt8169: WAR for DHCP not getting IP after kernel boot/reboot Stephen Warren
2020-03-18 23:51     ` Tom Warren
2020-03-19  8:03   ` Thierry Reding
2020-03-19 15:42     ` Tom Warren
2020-03-17 20:07 ` [PATCH 2/2] tegra: Enable CONFIG_BOOTP_PREFER_SERVERIP for all boards twarren at nvidia.com
2020-03-18 23:31   ` Stephen Warren
2020-03-18 23:52     ` Tom Warren
2020-03-19  2:54       ` Stephen Warren
  -- strict thread matches above, loose matches on Subject: below --
2020-03-26 22:59 [PATCH 0/2] net: tegra: Misc network fixes tomcwarren3959 at gmail.com
2020-03-26 22:59 ` [PATCH 1/2] net: rt8169: WAR for DHCP not getting IP after kernel boot/reboot tomcwarren3959 at gmail.com
2020-06-12 21:15   ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1584475636-24521-2-git-send-email-twarren@nvidia.com \
    --to=twarren@nvidia.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox