public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
@ 2015-08-28  5:25 Bin Meng
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 2/9] dm: eth: Do not print misleading "Net Initialization Skipped" Bin Meng
                   ` (9 more replies)
  0 siblings, 10 replies; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

Commit 620776d "tftp: adjust settings to be suitable for 100Mbit ethernet"
causes the following error message when trying to load a file using 'tftp'
command via a tftp server.

    TFTP error: 'Unsupported option(s) requested' (8)

This is due to with commit 620776d changes, the tftp option 'timeout'
value is now set to zero which is an invalid value as per RFC2349 [1].
Valid values range between "1" and "255" seconds, inclusive. With some
tftp servers that strictly implement the RFC requirement, it reports
such an error message.

Revert commit 620776d for RFC compliance.

[1] https://www.ietf.org/rfc/rfc2349.txt

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

---

Changes in v3:
- Drop e1000 build warning patch which is already applied

Changes in v2:
- Rewrite the commit message to mention RFC2349

 net/tftp.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/net/tftp.c b/net/tftp.c
index 18ce84c..89be32a 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -19,10 +19,10 @@
 /* Well known TFTP port # */
 #define WELL_KNOWN_PORT	69
 /* Millisecs to timeout for lost pkt */
-#define TIMEOUT		100UL
+#define TIMEOUT		5000UL
 #ifndef	CONFIG_NET_RETRY_COUNT
 /* # of timeouts before giving up */
-# define TIMEOUT_COUNT	1000
+# define TIMEOUT_COUNT	10
 #else
 # define TIMEOUT_COUNT  (CONFIG_NET_RETRY_COUNT * 2)
 #endif
@@ -711,10 +711,10 @@ void tftp_start(enum proto_t protocol)
 	if (ep != NULL)
 		timeout_ms = simple_strtol(ep, NULL, 10);
 
-	if (timeout_ms < 10) {
-		printf("TFTP timeout (%ld ms) too low, set min = 10 ms\n",
+	if (timeout_ms < 1000) {
+		printf("TFTP timeout (%ld ms) too low, set min = 1000 ms\n",
 		       timeout_ms);
-		timeout_ms = 10;
+		timeout_ms = 1000;
 	}
 
 	debug("TFTP blocksize = %i, timeout = %ld ms\n",
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 2/9] dm: eth: Do not print misleading "Net Initialization Skipped"
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
@ 2015-08-28  5:25 ` Bin Meng
  2015-09-01  0:32   ` Simon Glass
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 3/9] dm: test: Add a new test case for dm_test_eth_rotate Bin Meng
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

With driver model, board_eth_init() or cpu_eth_init() is not a must.
Thus we don't need print a misleading "Net Initialization Skipped".

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

---

Changes in v3: None
Changes in v2:
- Change to only comment out "Net Initialization Skipped" printf

 net/eth.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/eth.c b/net/eth.c
index d3ec8d6..c46a8c3 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -107,7 +107,9 @@ static void eth_common_init(void)
 		if (cpu_eth_init(gd->bd) < 0)
 			printf("CPU Net Initialization Failed\n");
 	} else {
+#ifndef CONFIG_DM_ETH
 		printf("Net Initialization Skipped\n");
+#endif
 	}
 }
 
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 3/9] dm: test: Add a new test case for dm_test_eth_rotate
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 2/9] dm: eth: Do not print misleading "Net Initialization Skipped" Bin Meng
@ 2015-08-28  5:25 ` Bin Meng
  2015-09-01  0:32   ` Simon Glass
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 4/9] dm: eth: Correctly detect alias in eth_get_dev_by_name() Bin Meng
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

Add one more ethernet device node in the sandbox test device tree,
with name 'sbe5'. This is to support a new test case for testing
network device rotation.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

---

Changes in v3: None
Changes in v2:
- New patch to add a new test case for dm_test_eth_rotate

 arch/sandbox/dts/test.dts | 7 +++++++
 include/configs/sandbox.h | 3 ++-
 test/dm/eth.c             | 5 +++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index c948df8..f5217fb 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -9,6 +9,7 @@
 	aliases {
 		console = &uart0;
 		eth0 = "/eth at 10002000";
+		eth3 = &eth_3;
 		eth5 = &eth_5;
 		i2c0 = "/i2c at 0";
 		pci0 = &pci;
@@ -121,6 +122,12 @@
 		fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x11>;
 	};
 
+	eth_3: sbe5 {
+		compatible = "sandbox,eth";
+		reg = <0x10005000 0x1000>;
+		fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x33>;
+	};
+
 	eth at 10004000 {
 		compatible = "sandbox,eth";
 		reg = <0x10004000 0x1000>;
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 6965d92..32e3a9b 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -187,7 +187,8 @@
 
 #define SANDBOX_ETH_SETTINGS		"ethaddr=00:00:11:22:33:44\0" \
 					"eth1addr=00:00:11:22:33:45\0" \
-					"eth5addr=00:00:11:22:33:46\0" \
+					"eth3addr=00:00:11:22:33:46\0" \
+					"eth5addr=00:00:11:22:33:47\0" \
 					"ipaddr=1.2.3.4\0"
 
 #define MEM_LAYOUT_ENV_SETTINGS \
diff --git a/test/dm/eth.c b/test/dm/eth.c
index 700abdd..fcfb3e1 100644
--- a/test/dm/eth.c
+++ b/test/dm/eth.c
@@ -106,6 +106,11 @@ static int _dm_test_eth_rotate2(struct unit_test_state *uts)
 	ut_assertok(net_loop(PING));
 	ut_asserteq_str("eth at 10004000", getenv("ethact"));
 
+	/* Make sure we can handle device name which is not eth# */
+	setenv("ethact", "sbe5");
+	ut_assertok(net_loop(PING));
+	ut_asserteq_str("sbe5", getenv("ethact"));
+
 	return 0;
 }
 
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 4/9] dm: eth: Correctly detect alias in eth_get_dev_by_name()
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 2/9] dm: eth: Do not print misleading "Net Initialization Skipped" Bin Meng
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 3/9] dm: test: Add a new test case for dm_test_eth_rotate Bin Meng
@ 2015-08-28  5:25 ` Bin Meng
  2015-09-01  0:32   ` Simon Glass
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 5/9] x86: crownbay: Convert to use CONFIG_DM_USB Bin Meng
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

When given a device name string, we should test to see if it is
really an alias like "eth#".

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

---

Changes in v3: None
Changes in v2:
- Change to use strncmp()

 net/eth.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/net/eth.c b/net/eth.c
index c46a8c3..26520d3 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -195,10 +195,11 @@ struct udevice *eth_get_dev_by_name(const char *devname)
 	const char *startp = NULL;
 	struct udevice *it;
 	struct uclass *uc;
+	int len = strlen("eth");
 
 	/* Must be longer than 3 to be an alias */
-	if (strlen(devname) > strlen("eth")) {
-		startp = devname + strlen("eth");
+	if (!strncmp(devname, "eth", len) && strlen(devname) > len) {
+		startp = devname + len;
 		seq = simple_strtoul(startp, &endp, 10);
 	}
 
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 5/9] x86: crownbay: Convert to use CONFIG_DM_USB
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
                   ` (2 preceding siblings ...)
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 4/9] dm: eth: Correctly detect alias in eth_get_dev_by_name() Bin Meng
@ 2015-08-28  5:25 ` Bin Meng
  2015-09-01  0:32   ` Simon Glass
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 6/9] x86: crownbay: Convert to use CONFIG_DM_ETH for E1000 Bin Meng
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

Move to driver model for USB on Intel Crown Bay.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Simon Glass <sjg@chromium.org>
---

Changes in v3: None
Changes in v2: None

 configs/crownbay_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig
index 4fc1827..6edd710 100644
--- a/configs/crownbay_defconfig
+++ b/configs/crownbay_defconfig
@@ -23,6 +23,8 @@ CONFIG_NETDEVICES=y
 CONFIG_E1000=y
 CONFIG_VIDEO_VESA=y
 CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_DM_RTC=y
 CONFIG_USE_PRIVATE_LIBGCC=y
 CONFIG_SYS_VSNPRINTF=y
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 6/9] x86: crownbay: Convert to use CONFIG_DM_ETH for E1000
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
                   ` (3 preceding siblings ...)
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 5/9] x86: crownbay: Convert to use CONFIG_DM_USB Bin Meng
@ 2015-08-28  5:25 ` Bin Meng
  2015-09-01  0:32   ` Simon Glass
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 7/9] net: pch_gbe: Convert to driver model Bin Meng
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

Since E1000 driver has been converted to driver model, enable it
on Intel Crown Bay. But the Intel Topcliff GbE driver has not been
converted to driver model yet, disable it for now.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
---

Changes in v3: None
Changes in v2: None

 board/intel/crownbay/crownbay.c | 6 ------
 configs/crownbay_defconfig      | 2 +-
 include/configs/crownbay.h      | 1 -
 3 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/board/intel/crownbay/crownbay.c b/board/intel/crownbay/crownbay.c
index d6de9fa..3a79e69 100644
--- a/board/intel/crownbay/crownbay.c
+++ b/board/intel/crownbay/crownbay.c
@@ -7,7 +7,6 @@
 #include <common.h>
 #include <asm/ibmpc.h>
 #include <asm/pnp_def.h>
-#include <netdev.h>
 #include <smsc_lpc47m.h>
 
 int board_early_init_f(void)
@@ -24,8 +23,3 @@ void setup_pch_gpios(u16 gpiobase, const struct pch_gpio_map *gpio)
 {
 	return;
 }
-
-int board_eth_init(bd_t *bis)
-{
-	return pci_eth_init(bis);
-}
diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig
index 6edd710..f027faf 100644
--- a/configs/crownbay_defconfig
+++ b/configs/crownbay_defconfig
@@ -19,7 +19,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_CPU=y
 CONFIG_DM_PCI=y
 CONFIG_SPI_FLASH=y
-CONFIG_NETDEVICES=y
+CONFIG_DM_ETH=y
 CONFIG_E1000=y
 CONFIG_VIDEO_VESA=y
 CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
diff --git a/include/configs/crownbay.h b/include/configs/crownbay.h
index 998da78..a344c85 100644
--- a/include/configs/crownbay.h
+++ b/include/configs/crownbay.h
@@ -50,7 +50,6 @@
 #define CONFIG_CMD_MMC
 
 /* Topcliff Gigabit Ethernet */
-#define CONFIG_PCH_GBE
 #define CONFIG_PHYLIB
 
 /* Environment configuration */
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 7/9] net: pch_gbe: Convert to driver model
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
                   ` (4 preceding siblings ...)
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 6/9] x86: crownbay: Convert to use CONFIG_DM_ETH for E1000 Bin Meng
@ 2015-08-28  5:25 ` Bin Meng
  2015-09-01  0:32   ` Simon Glass
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 8/9] net: pch_gbe: Add Kconfig option Bin Meng
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

This commit converts pch_gbe ethernet driver to driver model.

Since this driver is only used by Intel Crown Bay board, the
conversion does not keep the non-dm version.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Simon Glass <sjg@chromium.org>
---

Changes in v3: None
Changes in v2: None

 drivers/net/pch_gbe.c | 133 +++++++++++++++++++++++++++-----------------------
 drivers/net/pch_gbe.h |   2 -
 include/netdev.h      |   4 --
 3 files changed, 73 insertions(+), 66 deletions(-)

diff --git a/drivers/net/pch_gbe.c b/drivers/net/pch_gbe.c
index a03bdc0..004fcf8 100644
--- a/drivers/net/pch_gbe.c
+++ b/drivers/net/pch_gbe.c
@@ -7,10 +7,10 @@
  */
 
 #include <common.h>
+#include <dm.h>
 #include <errno.h>
 #include <asm/io.h>
 #include <pci.h>
-#include <malloc.h>
 #include <miiphy.h>
 #include "pch_gbe.h"
 
@@ -19,7 +19,7 @@
 #endif
 
 static struct pci_device_id supported[] = {
-	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_GBE },
+	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_GBE) },
 	{ }
 };
 
@@ -62,9 +62,10 @@ static int pch_gbe_mac_write(struct pch_gbe_regs *mac_regs, u8 *addr)
 	return -ETIME;
 }
 
-static int pch_gbe_reset(struct eth_device *dev)
+static int pch_gbe_reset(struct udevice *dev)
 {
-	struct pch_gbe_priv *priv = dev->priv;
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
+	struct eth_pdata *plat = dev_get_platdata(dev);
 	struct pch_gbe_regs *mac_regs = priv->mac_regs;
 	ulong start;
 
@@ -97,7 +98,7 @@ static int pch_gbe_reset(struct eth_device *dev)
 			 * so we have to reload MAC address here in order to
 			 * make linux pch_gbe driver happy.
 			 */
-			return pch_gbe_mac_write(mac_regs, dev->enetaddr);
+			return pch_gbe_mac_write(mac_regs, plat->enetaddr);
 		}
 
 		udelay(10);
@@ -107,9 +108,9 @@ static int pch_gbe_reset(struct eth_device *dev)
 	return -ETIME;
 }
 
-static void pch_gbe_rx_descs_init(struct eth_device *dev)
+static void pch_gbe_rx_descs_init(struct udevice *dev)
 {
-	struct pch_gbe_priv *priv = dev->priv;
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
 	struct pch_gbe_regs *mac_regs = priv->mac_regs;
 	struct pch_gbe_rx_desc *rx_desc = &priv->rx_desc[0];
 	int i;
@@ -128,9 +129,9 @@ static void pch_gbe_rx_descs_init(struct eth_device *dev)
 	       &mac_regs->rx_dsc_sw_p);
 }
 
-static void pch_gbe_tx_descs_init(struct eth_device *dev)
+static void pch_gbe_tx_descs_init(struct udevice *dev)
 {
-	struct pch_gbe_priv *priv = dev->priv;
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
 	struct pch_gbe_regs *mac_regs = priv->mac_regs;
 	struct pch_gbe_tx_desc *tx_desc = &priv->tx_desc[0];
 
@@ -183,9 +184,9 @@ static void pch_gbe_adjust_link(struct pch_gbe_regs *mac_regs,
 	return;
 }
 
-static int pch_gbe_init(struct eth_device *dev, bd_t *bis)
+static int pch_gbe_start(struct udevice *dev)
 {
-	struct pch_gbe_priv *priv = dev->priv;
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
 	struct pch_gbe_regs *mac_regs = priv->mac_regs;
 
 	if (pch_gbe_reset(dev))
@@ -226,18 +227,18 @@ static int pch_gbe_init(struct eth_device *dev, bd_t *bis)
 	return 0;
 }
 
-static void pch_gbe_halt(struct eth_device *dev)
+static void pch_gbe_stop(struct udevice *dev)
 {
-	struct pch_gbe_priv *priv = dev->priv;
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
 
 	pch_gbe_reset(dev);
 
 	phy_shutdown(priv->phydev);
 }
 
-static int pch_gbe_send(struct eth_device *dev, void *packet, int length)
+static int pch_gbe_send(struct udevice *dev, void *packet, int length)
 {
-	struct pch_gbe_priv *priv = dev->priv;
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
 	struct pch_gbe_regs *mac_regs = priv->mac_regs;
 	struct pch_gbe_tx_desc *tx_head, *tx_desc;
 	u16 frame_ctrl = 0;
@@ -277,15 +278,13 @@ static int pch_gbe_send(struct eth_device *dev, void *packet, int length)
 	return -ETIME;
 }
 
-static int pch_gbe_recv(struct eth_device *dev)
+static int pch_gbe_recv(struct udevice *dev, int flags, uchar **packetp)
 {
-	struct pch_gbe_priv *priv = dev->priv;
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
 	struct pch_gbe_regs *mac_regs = priv->mac_regs;
-	struct pch_gbe_rx_desc *rx_head, *rx_desc;
+	struct pch_gbe_rx_desc *rx_desc;
 	u32 hw_desc, buffer_addr, length;
-	int rx_swp;
 
-	rx_head = &priv->rx_desc[0];
 	rx_desc = &priv->rx_desc[priv->rx_idx];
 
 	readl(&mac_regs->int_st);
@@ -293,11 +292,21 @@ static int pch_gbe_recv(struct eth_device *dev)
 
 	/* Just return if not receiving any packet */
 	if ((u32)rx_desc == hw_desc)
-		return 0;
+		return -EAGAIN;
 
 	buffer_addr = pci_mem_to_phys(priv->bdf, rx_desc->buffer_addr);
+	*packetp = (uchar *)buffer_addr;
 	length = rx_desc->rx_words_eob - 3 - ETH_FCS_LEN;
-	net_process_received_packet((uchar *)buffer_addr, length);
+
+	return length;
+}
+
+static int pch_gbe_free_pkt(struct udevice *dev, uchar *packet, int length)
+{
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
+	struct pch_gbe_regs *mac_regs = priv->mac_regs;
+	struct pch_gbe_rx_desc *rx_head = &priv->rx_desc[0];
+	int rx_swp;
 
 	/* Test the wrap-around condition */
 	if (++priv->rx_idx >= PCH_GBE_DESC_NUM)
@@ -309,7 +318,7 @@ static int pch_gbe_recv(struct eth_device *dev)
 	writel(pci_phys_to_mem(priv->bdf, (u32)(rx_head + rx_swp)),
 	       &mac_regs->rx_dsc_sw_p);
 
-	return length;
+	return 0;
 }
 
 static int pch_gbe_mdio_ready(struct pch_gbe_regs *mac_regs)
@@ -365,7 +374,7 @@ static int pch_gbe_mdio_write(struct mii_dev *bus, int addr, int devad,
 		return 0;
 }
 
-static int pch_gbe_mdio_init(char *name, struct pch_gbe_regs *mac_regs)
+static int pch_gbe_mdio_init(const char *name, struct pch_gbe_regs *mac_regs)
 {
 	struct mii_dev *bus;
 
@@ -384,13 +393,14 @@ static int pch_gbe_mdio_init(char *name, struct pch_gbe_regs *mac_regs)
 	return mdio_register(bus);
 }
 
-static int pch_gbe_phy_init(struct eth_device *dev)
+static int pch_gbe_phy_init(struct udevice *dev)
 {
-	struct pch_gbe_priv *priv = dev->priv;
+	struct pch_gbe_priv *priv = dev_get_priv(dev);
+	struct eth_pdata *plat = dev_get_platdata(dev);
 	struct phy_device *phydev;
 	int mask = 0xffffffff;
 
-	phydev = phy_find_by_mask(priv->bus, mask, priv->interface);
+	phydev = phy_find_by_mask(priv->bus, mask, plat->phy_interface);
 	if (!phydev) {
 		printf("pch_gbe: cannot find the phy\n");
 		return -1;
@@ -404,63 +414,66 @@ static int pch_gbe_phy_init(struct eth_device *dev)
 	priv->phydev = phydev;
 	phy_config(phydev);
 
-	return 1;
+	return 0;
 }
 
-int pch_gbe_register(bd_t *bis)
+int pch_gbe_probe(struct udevice *dev)
 {
-	struct eth_device *dev;
 	struct pch_gbe_priv *priv;
+	struct eth_pdata *plat = dev_get_platdata(dev);
 	pci_dev_t devno;
 	u32 iobase;
 
-	devno = pci_find_devices(supported, 0);
-	if (devno == -1)
-		return -ENODEV;
-
-	dev = (struct eth_device *)malloc(sizeof(*dev));
-	if (!dev)
-		return -ENOMEM;
-	memset(dev, 0, sizeof(*dev));
+	devno = pci_get_bdf(dev);
 
 	/*
 	 * The priv structure contains the descriptors and frame buffers which
-	 * need a strict buswidth alignment (64 bytes)
+	 * need a strict buswidth alignment (64 bytes). This is guaranteed by
+	 * DM_FLAG_ALLOC_PRIV_DMA flag in the U_BOOT_DRIVER.
 	 */
-	priv = (struct pch_gbe_priv *)memalign(PCH_GBE_ALIGN_SIZE,
-					       sizeof(*priv));
-	if (!priv) {
-		free(dev);
-		return -ENOMEM;
-	}
-	memset(priv, 0, sizeof(*priv));
+	priv = dev_get_priv(dev);
 
-	dev->priv = priv;
-	priv->dev = dev;
 	priv->bdf = devno;
 
 	pci_read_config_dword(devno, PCI_BASE_ADDRESS_1, &iobase);
 	iobase &= PCI_BASE_ADDRESS_MEM_MASK;
 	iobase = pci_mem_to_phys(devno, iobase);
 
-	dev->iobase = iobase;
+	plat->iobase = iobase;
 	priv->mac_regs = (struct pch_gbe_regs *)iobase;
 
-	sprintf(dev->name, "pch_gbe");
-
 	/* Read MAC address from SROM and initialize dev->enetaddr with it */
-	pch_gbe_mac_read(priv->mac_regs, dev->enetaddr);
-
-	dev->init = pch_gbe_init;
-	dev->halt = pch_gbe_halt;
-	dev->send = pch_gbe_send;
-	dev->recv = pch_gbe_recv;
+	pch_gbe_mac_read(priv->mac_regs, plat->enetaddr);
 
-	eth_register(dev);
-
-	priv->interface = PHY_INTERFACE_MODE_RGMII;
+	plat->phy_interface = PHY_INTERFACE_MODE_RGMII;
 	pch_gbe_mdio_init(dev->name, priv->mac_regs);
 	priv->bus = miiphy_get_dev_by_name(dev->name);
 
 	return pch_gbe_phy_init(dev);
 }
+
+static const struct eth_ops pch_gbe_ops = {
+	.start = pch_gbe_start,
+	.send = pch_gbe_send,
+	.recv = pch_gbe_recv,
+	.free_pkt = pch_gbe_free_pkt,
+	.stop = pch_gbe_stop,
+};
+
+static const struct udevice_id pch_gbe_ids[] = {
+	{ .compatible = "intel,pch-gbe" },
+	{ }
+};
+
+U_BOOT_DRIVER(eth_pch_gbe) = {
+	.name = "pch_gbe",
+	.id = UCLASS_ETH,
+	.of_match = pch_gbe_ids,
+	.probe = pch_gbe_probe,
+	.ops = &pch_gbe_ops,
+	.priv_auto_alloc_size = sizeof(struct pch_gbe_priv),
+	.platdata_auto_alloc_size = sizeof(struct eth_pdata),
+	.flags = DM_FLAG_ALLOC_PRIV_DMA,
+};
+
+U_BOOT_PCI_DEVICE(eth_pch_gbe, supported);
diff --git a/drivers/net/pch_gbe.h b/drivers/net/pch_gbe.h
index 11329d4..afcb03d 100644
--- a/drivers/net/pch_gbe.h
+++ b/drivers/net/pch_gbe.h
@@ -287,12 +287,10 @@ struct pch_gbe_priv {
 	struct pch_gbe_rx_desc rx_desc[PCH_GBE_DESC_NUM];
 	struct pch_gbe_tx_desc tx_desc[PCH_GBE_DESC_NUM];
 	char rx_buff[PCH_GBE_DESC_NUM][PCH_GBE_RX_FRAME_LEN];
-	struct eth_device *dev;
 	struct phy_device *phydev;
 	struct mii_dev *bus;
 	struct pch_gbe_regs *mac_regs;
 	pci_dev_t bdf;
-	u32 interface;
 	int rx_idx;
 	int tx_idx;
 };
diff --git a/include/netdev.h b/include/netdev.h
index 662d173..3d5a54f 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -70,7 +70,6 @@ int natsemi_initialize(bd_t *bis);
 int ne2k_register(void);
 int npe_initialize(bd_t *bis);
 int ns8382x_initialize(bd_t *bis);
-int pch_gbe_register(bd_t *bis);
 int pcnet_initialize(bd_t *bis);
 int ppc_4xx_eth_initialize (bd_t *bis);
 int rtl8139_initialize(bd_t *bis);
@@ -123,9 +122,6 @@ static inline int pci_eth_init(bd_t *bis)
 #ifdef CONFIG_E1000
 	num += e1000_initialize(bis);
 #endif
-#ifdef CONFIG_PCH_GBE
-	num += pch_gbe_register(bis);
-#endif
 #ifdef CONFIG_PCNET
 	num += pcnet_initialize(bis);
 #endif
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 8/9] net: pch_gbe: Add Kconfig option
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
                   ` (5 preceding siblings ...)
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 7/9] net: pch_gbe: Convert to driver model Bin Meng
@ 2015-08-28  5:25 ` Bin Meng
  2015-09-01  0:32   ` Simon Glass
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 9/9] x86: crownbay: Enable CONFIG_PCH_GBE Bin Meng
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

Add Kconfig option in preparation for moving board to use Kconfig.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

---

Changes in v3:
- Make PHYLIB chooseable in memuconfig
- Remove 'default n' for PHYLIB and PCH_GBE

Changes in v2:
- Add PHYLIB Kconfig option and let PCH_GBE select PHYLIB

 drivers/net/Kconfig | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 7367d9e..bbec6a6 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -8,6 +8,11 @@ config DM_ETH
 	  This is currently implemented in net/eth.c
 	  Look in include/net.h for details.
 
+config PHYLIB
+	bool "Ethernet PHY (physical media interface) support"
+	help
+	  Enable Ethernet PHY (physical media interface) support.
+
 menuconfig NETDEVICES
 	bool "Network device support"
 	depends on NET
@@ -79,4 +84,12 @@ config ETH_DESIGNWARE
 	  100Mbit and 1 Gbit operation. You must enable CONFIG_PHYLIB to
 	  provide the PHY (physical media interface).
 
+config PCH_GBE
+	bool "Intel Platform Controller Hub EG20T GMAC driver"
+	depends on DM_ETH && DM_PCI
+	select PHYLIB
+	help
+	  This MAC is present in Intel Platform Controller Hub EG20T. It
+	  supports 10/100/1000 Mbps operation.
+
 endif # NETDEVICES
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 9/9] x86: crownbay: Enable CONFIG_PCH_GBE
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
                   ` (6 preceding siblings ...)
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 8/9] net: pch_gbe: Add Kconfig option Bin Meng
@ 2015-08-28  5:25 ` Bin Meng
  2015-09-01  0:32   ` Simon Glass
  2015-08-30 22:45 ` [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Simon Glass
  2015-09-08  9:23 ` Heiko Schocher
  9 siblings, 1 reply; 25+ messages in thread
From: Bin Meng @ 2015-08-28  5:25 UTC (permalink / raw)
  To: u-boot

Now that we have converted the pch_gbe driver to driver moel,
enable it on Intel Crown Bay board.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v3: None
Changes in v2:
- Remove CONFIG_PHYLIB from crownbay.h

 configs/crownbay_defconfig | 1 +
 include/configs/crownbay.h | 3 ---
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig
index f027faf..f328159 100644
--- a/configs/crownbay_defconfig
+++ b/configs/crownbay_defconfig
@@ -21,6 +21,7 @@ CONFIG_DM_PCI=y
 CONFIG_SPI_FLASH=y
 CONFIG_DM_ETH=y
 CONFIG_E1000=y
+CONFIG_PCH_GBE=y
 CONFIG_VIDEO_VESA=y
 CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
 CONFIG_USB=y
diff --git a/include/configs/crownbay.h b/include/configs/crownbay.h
index a344c85..3153a74 100644
--- a/include/configs/crownbay.h
+++ b/include/configs/crownbay.h
@@ -49,9 +49,6 @@
 #define CONFIG_MMC_SDMA
 #define CONFIG_CMD_MMC
 
-/* Topcliff Gigabit Ethernet */
-#define CONFIG_PHYLIB
-
 /* Environment configuration */
 #define CONFIG_ENV_SECT_SIZE		0x1000
 #define CONFIG_ENV_OFFSET		0
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
                   ` (7 preceding siblings ...)
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 9/9] x86: crownbay: Enable CONFIG_PCH_GBE Bin Meng
@ 2015-08-30 22:45 ` Simon Glass
  2015-08-31 14:38   ` Joe Hershberger
  2015-09-08  9:23 ` Heiko Schocher
  9 siblings, 1 reply; 25+ messages in thread
From: Simon Glass @ 2015-08-30 22:45 UTC (permalink / raw)
  To: u-boot

Hi,

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> Commit 620776d "tftp: adjust settings to be suitable for 100Mbit ethernet"
> causes the following error message when trying to load a file using 'tftp'
> command via a tftp server.
>
>     TFTP error: 'Unsupported option(s) requested' (8)
>
> This is due to with commit 620776d changes, the tftp option 'timeout'
> value is now set to zero which is an invalid value as per RFC2349 [1].
> Valid values range between "1" and "255" seconds, inclusive. With some
> tftp servers that strictly implement the RFC requirement, it reports
> such an error message.
>
> Revert commit 620776d for RFC compliance.
>
> [1] https://www.ietf.org/rfc/rfc2349.txt
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>
> ---
>
> Changes in v3:
> - Drop e1000 build warning patch which is already applied
>
> Changes in v2:
> - Rewrite the commit message to mention RFC2349

This series is assigned to me in patchwork. Since the series seems to
consist of bug fixes and driver model conversion of a driver with no
other users, I'm inclined to apply it now.

Please let me know if you disagree.

Regards,
Simon

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
  2015-08-30 22:45 ` [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Simon Glass
@ 2015-08-31 14:38   ` Joe Hershberger
  2015-09-01  0:31     ` Simon Glass
  0 siblings, 1 reply; 25+ messages in thread
From: Joe Hershberger @ 2015-08-31 14:38 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On Sun, Aug 30, 2015 at 5:45 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi,
>
> On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
>> Commit 620776d "tftp: adjust settings to be suitable for 100Mbit ethernet"
>> causes the following error message when trying to load a file using 'tftp'
>> command via a tftp server.
>>
>>     TFTP error: 'Unsupported option(s) requested' (8)
>>
>> This is due to with commit 620776d changes, the tftp option 'timeout'
>> value is now set to zero which is an invalid value as per RFC2349 [1].
>> Valid values range between "1" and "255" seconds, inclusive. With some
>> tftp servers that strictly implement the RFC requirement, it reports
>> such an error message.
>>
>> Revert commit 620776d for RFC compliance.
>>
>> [1] https://www.ietf.org/rfc/rfc2349.txt
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>>
>> ---
>>
>> Changes in v3:
>> - Drop e1000 build warning patch which is already applied
>>
>> Changes in v2:
>> - Rewrite the commit message to mention RFC2349
>
> This series is assigned to me in patchwork. Since the series seems to
> consist of bug fixes and driver model conversion of a driver with no
> other users, I'm inclined to apply it now.
>
> Please let me know if you disagree.

I'm fine with that.

-Joe

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
  2015-08-31 14:38   ` Joe Hershberger
@ 2015-09-01  0:31     ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:31 UTC (permalink / raw)
  To: u-boot

On 31 August 2015 at 08:38, Joe Hershberger <joe.hershberger@gmail.com> wrote:
> Hi Simon,
>
> On Sun, Aug 30, 2015 at 5:45 PM, Simon Glass <sjg@chromium.org> wrote:
>> Hi,
>>
>> On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
>>> Commit 620776d "tftp: adjust settings to be suitable for 100Mbit ethernet"
>>> causes the following error message when trying to load a file using 'tftp'
>>> command via a tftp server.
>>>
>>>     TFTP error: 'Unsupported option(s) requested' (8)
>>>
>>> This is due to with commit 620776d changes, the tftp option 'timeout'
>>> value is now set to zero which is an invalid value as per RFC2349 [1].
>>> Valid values range between "1" and "255" seconds, inclusive. With some
>>> tftp servers that strictly implement the RFC requirement, it reports
>>> such an error message.
>>>
>>> Revert commit 620776d for RFC compliance.
>>>
>>> [1] https://www.ietf.org/rfc/rfc2349.txt
>>>
>>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>>> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>>>
>>> ---
>>>
>>> Changes in v3:
>>> - Drop e1000 build warning patch which is already applied
>>>
>>> Changes in v2:
>>> - Rewrite the commit message to mention RFC2349
>>
>> This series is assigned to me in patchwork. Since the series seems to
>> consist of bug fixes and driver model conversion of a driver with no
>> other users, I'm inclined to apply it now.
>>
>> Please let me know if you disagree.
>
> I'm fine with that.
>
> -Joe

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 2/9] dm: eth: Do not print misleading "Net Initialization Skipped"
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 2/9] dm: eth: Do not print misleading "Net Initialization Skipped" Bin Meng
@ 2015-09-01  0:32   ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:32 UTC (permalink / raw)
  To: u-boot

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> With driver model, board_eth_init() or cpu_eth_init() is not a must.
> Thus we don't need print a misleading "Net Initialization Skipped".
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>
> ---
>
> Changes in v3: None
> Changes in v2:
> - Change to only comment out "Net Initialization Skipped" printf
>
>  net/eth.c | 2 ++
>  1 file changed, 2 insertions(+)

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 3/9] dm: test: Add a new test case for dm_test_eth_rotate
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 3/9] dm: test: Add a new test case for dm_test_eth_rotate Bin Meng
@ 2015-09-01  0:32   ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:32 UTC (permalink / raw)
  To: u-boot

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> Add one more ethernet device node in the sandbox test device tree,
> with name 'sbe5'. This is to support a new test case for testing
> network device rotation.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>
> ---
>
> Changes in v3: None
> Changes in v2:
> - New patch to add a new test case for dm_test_eth_rotate
>
>  arch/sandbox/dts/test.dts | 7 +++++++
>  include/configs/sandbox.h | 3 ++-
>  test/dm/eth.c             | 5 +++++
>  3 files changed, 14 insertions(+), 1 deletion(-)

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 4/9] dm: eth: Correctly detect alias in eth_get_dev_by_name()
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 4/9] dm: eth: Correctly detect alias in eth_get_dev_by_name() Bin Meng
@ 2015-09-01  0:32   ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:32 UTC (permalink / raw)
  To: u-boot

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> When given a device name string, we should test to see if it is
> really an alias like "eth#".
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>
> ---
>
> Changes in v3: None
> Changes in v2:
> - Change to use strncmp()
>
>  net/eth.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 5/9] x86: crownbay: Convert to use CONFIG_DM_USB
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 5/9] x86: crownbay: Convert to use CONFIG_DM_USB Bin Meng
@ 2015-09-01  0:32   ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:32 UTC (permalink / raw)
  To: u-boot

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> Move to driver model for USB on Intel Crown Bay.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
> Acked-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
>  configs/crownbay_defconfig | 2 ++
>  1 file changed, 2 insertions(+)

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 6/9] x86: crownbay: Convert to use CONFIG_DM_ETH for E1000
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 6/9] x86: crownbay: Convert to use CONFIG_DM_ETH for E1000 Bin Meng
@ 2015-09-01  0:32   ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:32 UTC (permalink / raw)
  To: u-boot

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> Since E1000 driver has been converted to driver model, enable it
> on Intel Crown Bay. But the Intel Topcliff GbE driver has not been
> converted to driver model yet, disable it for now.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
>  board/intel/crownbay/crownbay.c | 6 ------
>  configs/crownbay_defconfig      | 2 +-
>  include/configs/crownbay.h      | 1 -
>  3 files changed, 1 insertion(+), 8 deletions(-)

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 7/9] net: pch_gbe: Convert to driver model
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 7/9] net: pch_gbe: Convert to driver model Bin Meng
@ 2015-09-01  0:32   ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:32 UTC (permalink / raw)
  To: u-boot

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> This commit converts pch_gbe ethernet driver to driver model.
>
> Since this driver is only used by Intel Crown Bay board, the
> conversion does not keep the non-dm version.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
> Acked-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
>  drivers/net/pch_gbe.c | 133 +++++++++++++++++++++++++++-----------------------
>  drivers/net/pch_gbe.h |   2 -
>  include/netdev.h      |   4 --
>  3 files changed, 73 insertions(+), 66 deletions(-)

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 8/9] net: pch_gbe: Add Kconfig option
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 8/9] net: pch_gbe: Add Kconfig option Bin Meng
@ 2015-09-01  0:32   ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:32 UTC (permalink / raw)
  To: u-boot

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> Add Kconfig option in preparation for moving board to use Kconfig.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>
> ---
>
> Changes in v3:
> - Make PHYLIB chooseable in memuconfig
> - Remove 'default n' for PHYLIB and PCH_GBE
>
> Changes in v2:
> - Add PHYLIB Kconfig option and let PCH_GBE select PHYLIB
>
>  drivers/net/Kconfig | 13 +++++++++++++
>  1 file changed, 13 insertions(+)

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 9/9] x86: crownbay: Enable CONFIG_PCH_GBE
  2015-08-28  5:25 ` [U-Boot] [PATCH v3 9/9] x86: crownbay: Enable CONFIG_PCH_GBE Bin Meng
@ 2015-09-01  0:32   ` Simon Glass
  0 siblings, 0 replies; 25+ messages in thread
From: Simon Glass @ 2015-09-01  0:32 UTC (permalink / raw)
  To: u-boot

On 27 August 2015 at 23:25, Bin Meng <bmeng.cn@gmail.com> wrote:
> Now that we have converted the pch_gbe driver to driver moel,
> enable it on Intel Crown Bay board.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v3: None
> Changes in v2:
> - Remove CONFIG_PHYLIB from crownbay.h
>
>  configs/crownbay_defconfig | 1 +
>  include/configs/crownbay.h | 3 ---
>  2 files changed, 1 insertion(+), 3 deletions(-)

Applied to u-boot-x86, thanks!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
  2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
                   ` (8 preceding siblings ...)
  2015-08-30 22:45 ` [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Simon Glass
@ 2015-09-08  9:23 ` Heiko Schocher
  2015-09-08 10:13   ` Hannes Schmelzer
  9 siblings, 1 reply; 25+ messages in thread
From: Heiko Schocher @ 2015-09-08  9:23 UTC (permalink / raw)
  To: u-boot

Hello Bin,

Am 28.08.2015 um 07:25 schrieb Bin Meng:
> Commit 620776d "tftp: adjust settings to be suitable for 100Mbit ethernet"
> causes the following error message when trying to load a file using 'tftp'
> command via a tftp server.
>
>      TFTP error: 'Unsupported option(s) requested' (8)
>
> This is due to with commit 620776d changes, the tftp option 'timeout'
> value is now set to zero which is an invalid value as per RFC2349 [1].
> Valid values range between "1" and "255" seconds, inclusive. With some
> tftp servers that strictly implement the RFC requirement, it reports
> such an error message.
>
> Revert commit 620776d for RFC compliance.
>
> [1] https://www.ietf.org/rfc/rfc2349.txt
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>

Just tried current mainline on the smartweb board, and had the
same issue. Your patch fixed it, thanks!

Tested-by: Heiko Schocher <hs@denx.de>

bye,
Heiko
>
> ---
>
> Changes in v3:
> - Drop e1000 build warning patch which is already applied
>
> Changes in v2:
> - Rewrite the commit message to mention RFC2349
>
>   net/tftp.c | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/net/tftp.c b/net/tftp.c
> index 18ce84c..89be32a 100644
> --- a/net/tftp.c
> +++ b/net/tftp.c
> @@ -19,10 +19,10 @@
>   /* Well known TFTP port # */
>   #define WELL_KNOWN_PORT	69
>   /* Millisecs to timeout for lost pkt */
> -#define TIMEOUT		100UL
> +#define TIMEOUT		5000UL
>   #ifndef	CONFIG_NET_RETRY_COUNT
>   /* # of timeouts before giving up */
> -# define TIMEOUT_COUNT	1000
> +# define TIMEOUT_COUNT	10
>   #else
>   # define TIMEOUT_COUNT  (CONFIG_NET_RETRY_COUNT * 2)
>   #endif
> @@ -711,10 +711,10 @@ void tftp_start(enum proto_t protocol)
>   	if (ep != NULL)
>   		timeout_ms = simple_strtol(ep, NULL, 10);
>
> -	if (timeout_ms < 10) {
> -		printf("TFTP timeout (%ld ms) too low, set min = 10 ms\n",
> +	if (timeout_ms < 1000) {
> +		printf("TFTP timeout (%ld ms) too low, set min = 1000 ms\n",
>   		       timeout_ms);
> -		timeout_ms = 10;
> +		timeout_ms = 1000;
>   	}
>
>   	debug("TFTP blocksize = %i, timeout = %ld ms\n",
>

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
  2015-09-08  9:23 ` Heiko Schocher
@ 2015-09-08 10:13   ` Hannes Schmelzer
  2015-09-08 10:21     ` Bin Meng
  2015-09-08 10:36     ` Stefan Roese
  0 siblings, 2 replies; 25+ messages in thread
From: Hannes Schmelzer @ 2015-09-08 10:13 UTC (permalink / raw)
  To: u-boot

Hi,

what about:
https://patchwork.ozlabs.org/patch/510476/

best regards,
Hannes


On 08.09.2015 11:23, Heiko Schocher wrote:
> Hello Bin,
>
> Am 28.08.2015 um 07:25 schrieb Bin Meng:
>> Commit 620776d "tftp: adjust settings to be suitable for 100Mbit 
>> ethernet"
>> causes the following error message when trying to load a file using 
>> 'tftp'
>> command via a tftp server.
>>
>>      TFTP error: 'Unsupported option(s) requested' (8)
>>
>> This is due to with commit 620776d changes, the tftp option 'timeout'
>> value is now set to zero which is an invalid value as per RFC2349 [1].
>> Valid values range between "1" and "255" seconds, inclusive. With some
>> tftp servers that strictly implement the RFC requirement, it reports
>> such an error message.
>>
>> Revert commit 620776d for RFC compliance.
>>
>> [1] https://www.ietf.org/rfc/rfc2349.txt
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>
> Just tried current mainline on the smartweb board, and had the
> same issue. Your patch fixed it, thanks!
>
> Tested-by: Heiko Schocher <hs@denx.de>
>
> bye,
> Heiko
>>
>> ---
>>
>> Changes in v3:
>> - Drop e1000 build warning patch which is already applied
>>
>> Changes in v2:
>> - Rewrite the commit message to mention RFC2349
>>
>>   net/tftp.c | 10 +++++-----
>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/net/tftp.c b/net/tftp.c
>> index 18ce84c..89be32a 100644
>> --- a/net/tftp.c
>> +++ b/net/tftp.c
>> @@ -19,10 +19,10 @@
>>   /* Well known TFTP port # */
>>   #define WELL_KNOWN_PORT    69
>>   /* Millisecs to timeout for lost pkt */
>> -#define TIMEOUT        100UL
>> +#define TIMEOUT        5000UL
>>   #ifndef    CONFIG_NET_RETRY_COUNT
>>   /* # of timeouts before giving up */
>> -# define TIMEOUT_COUNT    1000
>> +# define TIMEOUT_COUNT    10
>>   #else
>>   # define TIMEOUT_COUNT  (CONFIG_NET_RETRY_COUNT * 2)
>>   #endif
>> @@ -711,10 +711,10 @@ void tftp_start(enum proto_t protocol)
>>       if (ep != NULL)
>>           timeout_ms = simple_strtol(ep, NULL, 10);
>>
>> -    if (timeout_ms < 10) {
>> -        printf("TFTP timeout (%ld ms) too low, set min = 10 ms\n",
>> +    if (timeout_ms < 1000) {
>> +        printf("TFTP timeout (%ld ms) too low, set min = 1000 ms\n",
>>                  timeout_ms);
>> -        timeout_ms = 10;
>> +        timeout_ms = 1000;
>>       }
>>
>>       debug("TFTP blocksize = %i, timeout = %ld ms\n",
>>
>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
  2015-09-08 10:13   ` Hannes Schmelzer
@ 2015-09-08 10:21     ` Bin Meng
  2015-09-08 10:36     ` Stefan Roese
  1 sibling, 0 replies; 25+ messages in thread
From: Bin Meng @ 2015-09-08 10:21 UTC (permalink / raw)
  To: u-boot

Hi Hannes,

On Tue, Sep 8, 2015 at 6:13 PM, Hannes Schmelzer <hannes@schmelzer.or.at> wrote:
> Hi,
>
> what about:
> https://patchwork.ozlabs.org/patch/510476/
>
> best regards,
> Hannes
>
>

The patch you mentioned does not completely revert the changes. It was
a mix of partial revert plus previous tftp timeout changes. I believe
Pavel will need to work out a proper patch to resolve the tftp timeout
issue he sees in his network environment. But that is for the next
release (v2016.01), not for this release.

>
> On 08.09.2015 11:23, Heiko Schocher wrote:
>>
>> Hello Bin,
>>
>> Am 28.08.2015 um 07:25 schrieb Bin Meng:
>>>
>>> Commit 620776d "tftp: adjust settings to be suitable for 100Mbit
>>> ethernet"
>>> causes the following error message when trying to load a file using
>>> 'tftp'
>>> command via a tftp server.
>>>
>>>      TFTP error: 'Unsupported option(s) requested' (8)
>>>
>>> This is due to with commit 620776d changes, the tftp option 'timeout'
>>> value is now set to zero which is an invalid value as per RFC2349 [1].
>>> Valid values range between "1" and "255" seconds, inclusive. With some
>>> tftp servers that strictly implement the RFC requirement, it reports
>>> such an error message.
>>>
>>> Revert commit 620776d for RFC compliance.
>>>
>>> [1] https://www.ietf.org/rfc/rfc2349.txt
>>>
>>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>>> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>>
>>
>> Just tried current mainline on the smartweb board, and had the
>> same issue. Your patch fixed it, thanks!
>>
>> Tested-by: Heiko Schocher <hs@denx.de>
>>
>> bye,
>> Heiko
>>>
>>>
>>> ---
>>>
>>> Changes in v3:
>>> - Drop e1000 build warning patch which is already applied
>>>
>>> Changes in v2:
>>> - Rewrite the commit message to mention RFC2349
>>>
>>>   net/tftp.c | 10 +++++-----
>>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/net/tftp.c b/net/tftp.c
>>> index 18ce84c..89be32a 100644
>>> --- a/net/tftp.c
>>> +++ b/net/tftp.c
>>> @@ -19,10 +19,10 @@
>>>   /* Well known TFTP port # */
>>>   #define WELL_KNOWN_PORT    69
>>>   /* Millisecs to timeout for lost pkt */
>>> -#define TIMEOUT        100UL
>>> +#define TIMEOUT        5000UL
>>>   #ifndef    CONFIG_NET_RETRY_COUNT
>>>   /* # of timeouts before giving up */
>>> -# define TIMEOUT_COUNT    1000
>>> +# define TIMEOUT_COUNT    10
>>>   #else
>>>   # define TIMEOUT_COUNT  (CONFIG_NET_RETRY_COUNT * 2)
>>>   #endif
>>> @@ -711,10 +711,10 @@ void tftp_start(enum proto_t protocol)
>>>       if (ep != NULL)
>>>           timeout_ms = simple_strtol(ep, NULL, 10);
>>>
>>> -    if (timeout_ms < 10) {
>>> -        printf("TFTP timeout (%ld ms) too low, set min = 10 ms\n",
>>> +    if (timeout_ms < 1000) {
>>> +        printf("TFTP timeout (%ld ms) too low, set min = 1000 ms\n",
>>>                  timeout_ms);
>>> -        timeout_ms = 10;
>>> +        timeout_ms = 1000;
>>>       }
>>>
>>>       debug("TFTP blocksize = %i, timeout = %ld ms\n",
>>>
>>
>

Regards,
Bin

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
  2015-09-08 10:13   ` Hannes Schmelzer
  2015-09-08 10:21     ` Bin Meng
@ 2015-09-08 10:36     ` Stefan Roese
  2015-09-08 10:42       ` Hannes Schmelzer
  1 sibling, 1 reply; 25+ messages in thread
From: Stefan Roese @ 2015-09-08 10:36 UTC (permalink / raw)
  To: u-boot

Hi Hannes,

On 08.09.2015 12:13, Hannes Schmelzer wrote:
> what about:
> https://patchwork.ozlabs.org/patch/510476/

I think the current plan is to first revert this patch for this release. 
To not introduce a risk of a new setup as done in the patch you are 
referencing above. This patch will most likely then be picked up after 
the release. So that it has more time to get tested before a release.

BTW: I think that Simon has queued the revert in his repo (Simon, please 
correct me if I'm wrong). The revert should definitely hit mainline 
soon. I've been hit by this problem now multiple times already.

Thanks,
Stefan

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet"
  2015-09-08 10:36     ` Stefan Roese
@ 2015-09-08 10:42       ` Hannes Schmelzer
  0 siblings, 0 replies; 25+ messages in thread
From: Hannes Schmelzer @ 2015-09-08 10:42 UTC (permalink / raw)
  To: u-boot

Hi,

okay ... just wanted to get sure that the patch has been noticed.

best regards,
Hannes


On 08.09.2015 12:36, Stefan Roese wrote:
> Hi Hannes,
>
> On 08.09.2015 12:13, Hannes Schmelzer wrote:
>> what about:
>> https://patchwork.ozlabs.org/patch/510476/
>
> I think the current plan is to first revert this patch for this 
> release. To not introduce a risk of a new setup as done in the patch 
> you are referencing above. This patch will most likely then be picked 
> up after the release. So that it has more time to get tested before a 
> release.
>
> BTW: I think that Simon has queued the revert in his repo (Simon, 
> please correct me if I'm wrong). The revert should definitely hit 
> mainline soon. I've been hit by this problem now multiple times already.
>
> Thanks,
> Stefan
>
>

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2015-09-08 10:42 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-28  5:25 [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Bin Meng
2015-08-28  5:25 ` [U-Boot] [PATCH v3 2/9] dm: eth: Do not print misleading "Net Initialization Skipped" Bin Meng
2015-09-01  0:32   ` Simon Glass
2015-08-28  5:25 ` [U-Boot] [PATCH v3 3/9] dm: test: Add a new test case for dm_test_eth_rotate Bin Meng
2015-09-01  0:32   ` Simon Glass
2015-08-28  5:25 ` [U-Boot] [PATCH v3 4/9] dm: eth: Correctly detect alias in eth_get_dev_by_name() Bin Meng
2015-09-01  0:32   ` Simon Glass
2015-08-28  5:25 ` [U-Boot] [PATCH v3 5/9] x86: crownbay: Convert to use CONFIG_DM_USB Bin Meng
2015-09-01  0:32   ` Simon Glass
2015-08-28  5:25 ` [U-Boot] [PATCH v3 6/9] x86: crownbay: Convert to use CONFIG_DM_ETH for E1000 Bin Meng
2015-09-01  0:32   ` Simon Glass
2015-08-28  5:25 ` [U-Boot] [PATCH v3 7/9] net: pch_gbe: Convert to driver model Bin Meng
2015-09-01  0:32   ` Simon Glass
2015-08-28  5:25 ` [U-Boot] [PATCH v3 8/9] net: pch_gbe: Add Kconfig option Bin Meng
2015-09-01  0:32   ` Simon Glass
2015-08-28  5:25 ` [U-Boot] [PATCH v3 9/9] x86: crownbay: Enable CONFIG_PCH_GBE Bin Meng
2015-09-01  0:32   ` Simon Glass
2015-08-30 22:45 ` [U-Boot] [PATCH v3 1/9] net: Revert "tftp: adjust settings to be suitable for 100Mbit ethernet" Simon Glass
2015-08-31 14:38   ` Joe Hershberger
2015-09-01  0:31     ` Simon Glass
2015-09-08  9:23 ` Heiko Schocher
2015-09-08 10:13   ` Hannes Schmelzer
2015-09-08 10:21     ` Bin Meng
2015-09-08 10:36     ` Stefan Roese
2015-09-08 10:42       ` Hannes Schmelzer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox