All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms
@ 2016-04-07 15:16 Mugunthan V N
  2016-04-07 15:17 ` [U-Boot] [PATCH 01/11] drivers: core: device: add support to check dt compatible for a device/machine Mugunthan V N
                   ` (10 more replies)
  0 siblings, 11 replies; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:16 UTC (permalink / raw)
  To: u-boot

This series adds the following
* Enable DM_ETH on dra74, am437x gp and am437x sk evms.
* Add support to verify of_is_device_conpatible() based on
  linux implementation
* Fix an issue in fdtdec get addr for address and size cell length

Pushed a branch for others for testing [1] and logs at [2]

[1] - git://git.ti.com/~mugunthanvnm/ti-u-boot/mugunth-ti-u-boot.git cpsw
[2] - http://pastebin.ubuntu.com/15671145/

Mugunthan V N (11):
  drivers: core: device: add support to check dt compatible for a
    device/machine
  lib: fdtdec: fix size cell and address cell parse from DT
  ti_omap5_common: eth: do not define DM_ETH for spl
  drivers: net: cpsw: fix cpsw dp parse when num slaves as 1
  ARM: omap5: add platform specific ethernet phy modes configurations
  drivers: net: cpsw: add support for reading mac address from efuse
  arm: dts: am4372: add syscon node to cpsw to read mac address
  arm: dts: dra7: add syscon node to cpsw to read mac address
  defconfig: am437x_gp_evm: enable eth driver model
  defconfig: am437x_sk_evm: enable eth driver model
  defconfig: dra74_evm: enable eth driver model

 arch/arm/dts/am4372.dtsi              |   1 +
 arch/arm/dts/dra7.dtsi                |   1 +
 arch/arm/include/asm/arch-omap5/cpu.h |  12 ++++
 configs/am437x_gp_evm_defconfig       |   1 +
 configs/am437x_sk_evm_defconfig       |   1 +
 configs/dra74_evm_defconfig           |   1 +
 drivers/core/device.c                 |  27 ++++++++
 drivers/net/Makefile                  |   2 +-
 drivers/net/cpsw-common.c             | 121 ++++++++++++++++++++++++++++++++++
 drivers/net/cpsw.c                    |  30 +++------
 include/configs/ti_omap5_common.h     |   1 +
 include/cpsw.h                        |   1 +
 include/dm/device.h                   |  23 +++++++
 lib/fdtdec.c                          |   9 ++-
 14 files changed, 208 insertions(+), 23 deletions(-)
 create mode 100644 drivers/net/cpsw-common.c

-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 01/11] drivers: core: device: add support to check dt compatible for a device/machine
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-09 18:35   ` Simon Glass
  2016-04-07 15:17 ` [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT Mugunthan V N
                   ` (9 subsequent siblings)
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Provide an api to check whether the given device or machine is
compatible with the given compat string which helps in making
decisions in drivers based on device or machine compatible.

Idea taken from Linux.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 drivers/core/device.c | 27 +++++++++++++++++++++++++++
 include/dm/device.h   | 23 +++++++++++++++++++++++
 2 files changed, 50 insertions(+)

diff --git a/drivers/core/device.c b/drivers/core/device.c
index cb24a61..445b22e 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -691,3 +691,30 @@ int device_set_name(struct udevice *dev, const char *name)
 
 	return 0;
 }
+
+bool of_device_is_compatible(int offset, const char *compat)
+{
+	const void *fdt = gd->fdt_blob;
+	const char *str;
+	int str_len;
+	int len = 0;
+
+	str = fdt_getprop(fdt, 0, "compatible", &str_len);
+	if(!str) {
+		debug("compatible field not found in node(%d)\n", offset);
+		return false;
+	}
+
+	while (len < str_len) {
+		if (!strcmp(compat, &str[len]))
+			return true;
+		len += strlen(&str[len]) + 1;
+	}
+
+	return false;
+}
+
+bool of_machine_is_compatible(const char *compat)
+{
+	return of_device_is_compatible(0, compat);
+}
diff --git a/include/dm/device.h b/include/dm/device.h
index 1cf8150..9a1b3d0 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -510,6 +510,29 @@ bool device_is_last_sibling(struct udevice *dev);
 int device_set_name(struct udevice *dev, const char *name);
 
 /**
+ * of_device_is_compatible() - check if the device is compatible with the compat
+ *
+ * This allows to check whether the device is comaptible with the compat.
+ *
+ * @offset:	Offset to the device
+ * @compat:	Compatible string which needs to verified in the given
+ *		device offset
+ * @return true if OK, false if the compatible is not found
+ */
+bool of_device_is_compatible(int offset, const char *compat);
+
+/**
+ * of_machine_is_compatible() - check if the machine is compatible with
+ *				the compat
+ *
+ * This allows to check whether the machine is comaptible with the compat.
+ *
+ * @compat:	Compatible string which needs to verified
+ * @return true if OK, false if the compatible is not found
+ */
+bool of_machine_is_compatible(const char *compat);
+
+/**
  * device_is_on_pci_bus - Test if a device is on a PCI bus
  *
  * @dev:	device to test
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
  2016-04-07 15:17 ` [U-Boot] [PATCH 01/11] drivers: core: device: add support to check dt compatible for a device/machine Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-09 18:35   ` Simon Glass
  2016-04-07 15:17 ` [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl Mugunthan V N
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Size cell and address cell should be read from the parent node
and should not assume with data structures as an example
TI DRA7xx SoC is enabled as 64bit as there is LPAE support
but the addresses specified in DT are all 32 bit sizes. So
changing the code to read from parent node instead of
calculations.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 lib/fdtdec.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 70acc29..8a5fb8c 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -88,15 +88,20 @@ fdt_addr_t fdtdec_get_addr_size_fixed(const void *blob, int node,
 	const fdt32_t *prop_addr, *prop_size, *prop_after_size;
 	int len;
 	fdt_addr_t addr;
+	int parent;
 
 	debug("%s: %s: ", __func__, prop_name);
 
-	if (na > (sizeof(fdt_addr_t) / sizeof(fdt32_t))) {
+	parent = fdt_parent_offset(blob, node);
+
+	na = fdt_address_cells(blob, parent);
+	if (na < 1) {
 		debug("(na too large for fdt_addr_t type)\n");
 		return FDT_ADDR_T_NONE;
 	}
 
-	if (ns > (sizeof(fdt_size_t) / sizeof(fdt32_t))) {
+	ns = fdt_size_cells(blob, parent);
+	if (ns < 0) {
 		debug("(ns too large for fdt_size_t type)\n");
 		return FDT_ADDR_T_NONE;
 	}
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
  2016-04-07 15:17 ` [U-Boot] [PATCH 01/11] drivers: core: device: add support to check dt compatible for a device/machine Mugunthan V N
  2016-04-07 15:17 ` [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-09 18:35   ` Simon Glass
  2016-04-11 15:01   ` Tom Rini
  2016-04-07 15:17 ` [U-Boot] [PATCH 04/11] drivers: net: cpsw: fix cpsw dp parse when num slaves as 1 Mugunthan V N
                   ` (7 subsequent siblings)
  10 siblings, 2 replies; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Since omap's spl doesn't support DM currently, do not define
DM_ETH for spl build.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 include/configs/ti_omap5_common.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h
index 202b18c..c592646 100644
--- a/include/configs/ti_omap5_common.h
+++ b/include/configs/ti_omap5_common.h
@@ -155,6 +155,7 @@
 #ifdef CONFIG_SPL_BUILD
 #undef CONFIG_DM_MMC
 #undef CONFIG_TIMER
+#undef CONFIG_DM_ETH
 #endif
 
 #endif /* __CONFIG_TI_OMAP5_COMMON_H */
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 04/11] drivers: net: cpsw: fix cpsw dp parse when num slaves as 1
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
                   ` (2 preceding siblings ...)
  2016-04-07 15:17 ` [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-11 15:01   ` Tom Rini
  2016-04-07 15:17 ` [U-Boot] [PATCH 05/11] ARM: omap5: add platform specific ethernet phy modes configurations Mugunthan V N
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

On some boards number of slaves can be 1 when only one port
ethernet is pinned out. So do not break when slave_index and
num slaves check fails, instead continue to parse the next
child.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 drivers/net/cpsw.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index 7104754..971ebf0 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -1209,10 +1209,8 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
 		if (!strncmp(name, "slave", 5)) {
 			u32 phy_id[2];
 
-			if (slave_index >= priv->data.slaves) {
-				printf("error: num slaves and slave nodes did not match\n");
-				return -EINVAL;
-			}
+			if (slave_index >= priv->data.slaves)
+				continue;
 			phy_mode = fdt_getprop(fdt, subnode, "phy-mode", NULL);
 			if (phy_mode)
 				priv->data.slave_data[slave_index].phy_if =
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 05/11] ARM: omap5: add platform specific ethernet phy modes configurations
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
                   ` (3 preceding siblings ...)
  2016-04-07 15:17 ` [U-Boot] [PATCH 04/11] drivers: net: cpsw: fix cpsw dp parse when num slaves as 1 Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-11 15:01   ` Tom Rini
  2016-04-07 15:17 ` [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse Mugunthan V N
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Add platforms specific phy mode configuration bits to be used
to configure phy mode in control module.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 arch/arm/include/asm/arch-omap5/cpu.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/arm/include/asm/arch-omap5/cpu.h b/arch/arm/include/asm/arch-omap5/cpu.h
index b1513e9..683d905 100644
--- a/arch/arm/include/asm/arch-omap5/cpu.h
+++ b/arch/arm/include/asm/arch-omap5/cpu.h
@@ -116,4 +116,16 @@ struct watchdog {
 #define CPSW_BASE			0x48484000
 #define CPSW_MDIO_BASE			0x48485000
 
+/* gmii_sel register defines */
+#define GMII1_SEL_MII		0x0
+#define GMII1_SEL_RMII		0x1
+#define GMII1_SEL_RGMII		0x2
+#define GMII2_SEL_MII		(GMII1_SEL_MII << 4)
+#define GMII2_SEL_RMII		(GMII1_SEL_RMII << 4)
+#define GMII2_SEL_RGMII		(GMII1_SEL_RGMII << 4)
+
+#define MII_MODE_ENABLE		(GMII1_SEL_MII | GMII2_SEL_MII)
+#define RMII_MODE_ENABLE        (GMII1_SEL_RMII | GMII2_SEL_RMII)
+#define RGMII_MODE_ENABLE	(GMII1_SEL_RGMII | GMII2_SEL_RGMII)
+
 #endif /* _CPU_H */
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
                   ` (4 preceding siblings ...)
  2016-04-07 15:17 ` [U-Boot] [PATCH 05/11] ARM: omap5: add platform specific ethernet phy modes configurations Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-11 15:01   ` Tom Rini
  2016-04-07 15:17 ` [U-Boot] [PATCH 07/11] arm: dts: am4372: add syscon node to cpsw to read mac address Mugunthan V N
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Different TI platforms has to read with different combination to
get the mac address from efuse. So add support to read mac address
based on machine/device compatibles.

The code is taken from Linux drivers/net/ethernet/ti/cpsw-common.c
done by Tony Lindgren.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 drivers/net/Makefile      |   2 +-
 drivers/net/cpsw-common.c | 121 ++++++++++++++++++++++++++++++++++++++++++++++
 drivers/net/cpsw.c        |  24 +++------
 include/cpsw.h            |   1 +
 4 files changed, 131 insertions(+), 17 deletions(-)
 create mode 100644 drivers/net/cpsw-common.c

diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index fbedd04..d5e4a97 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -59,7 +59,7 @@ obj-$(CONFIG_SMC91111) += smc91111.o
 obj-$(CONFIG_SMC911X) += smc911x.o
 obj-$(CONFIG_DRIVER_TI_EMAC) += davinci_emac.o
 obj-$(CONFIG_TSEC_ENET) += tsec.o fsl_mdio.o
-obj-$(CONFIG_DRIVER_TI_CPSW) += cpsw.o
+obj-$(CONFIG_DRIVER_TI_CPSW) += cpsw.o cpsw-common.o
 obj-$(CONFIG_FMAN_ENET) += fsl_mdio.o
 obj-$(CONFIG_TSI108_ETH) += tsi108_eth.o
 obj-$(CONFIG_ULI526X) += uli526x.o
diff --git a/drivers/net/cpsw-common.c b/drivers/net/cpsw-common.c
new file mode 100644
index 0000000..086ffc9
--- /dev/null
+++ b/drivers/net/cpsw-common.c
@@ -0,0 +1,121 @@
+/*
+ * CPSW common - libs used across TI ethernet devices.
+ *
+ * Copyright (C) 2016, Texas Instruments, Incorporated
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <fdt_support.h>
+#include <asm/io.h>
+#include <cpsw.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define CTRL_MAC_REG(offset, id) ((offset) + 0x8 * (id))
+
+static int davinci_emac_3517_get_macid(struct udevice *dev, u16 offset,
+				       int slave, u8 *mac_addr)
+{
+	void *fdt = (void *)gd->fdt_blob;
+	int node = dev->of_offset;
+	u32 macid_lsb;
+	u32 macid_msb;
+	fdt32_t gmii = 0;
+	int syscon;
+	u32 addr;
+
+	syscon = fdtdec_lookup_phandle(fdt, node, "syscon");
+	if (syscon < 0) {
+		error("Syscon offset not found\n");
+		return -ENOENT;
+	}
+
+	addr = (u32)map_physmem(fdt_translate_address(fdt, syscon, &gmii),
+				sizeof(u32), MAP_NOCACHE);
+	if (addr == FDT_ADDR_T_NONE) {
+		error("Not able to get syscon address to get mac efuse address\n");
+		return -ENOENT;
+	}
+
+	addr += CTRL_MAC_REG(offset, slave);
+
+	/* try reading mac address from efuse */
+	macid_lsb = readl(addr);
+	macid_msb = readl(addr + 4);
+
+	mac_addr[0] = (macid_msb >> 16) & 0xff;
+	mac_addr[1] = (macid_msb >> 8)  & 0xff;
+	mac_addr[2] = macid_msb & 0xff;
+	mac_addr[3] = (macid_lsb >> 16) & 0xff;
+	mac_addr[4] = (macid_lsb >> 8)  & 0xff;
+	mac_addr[5] = macid_lsb & 0xff;
+
+	return 0;
+}
+
+static int cpsw_am33xx_cm_get_macid(struct udevice *dev, u16 offset, int slave,
+				    u8 *mac_addr)
+{
+	void *fdt = (void *)gd->fdt_blob;
+	int node = dev->of_offset;
+	u32 macid_lo;
+	u32 macid_hi;
+	fdt32_t gmii = 0;
+	int syscon;
+	u32 addr;
+
+	syscon = fdtdec_lookup_phandle(fdt, node, "syscon");
+	if (syscon < 0) {
+		error("Syscon offset not found\n");
+		return -ENOENT;
+	}
+
+	addr = (u32)map_physmem(fdt_translate_address(fdt, syscon, &gmii),
+				sizeof(u32), MAP_NOCACHE);
+	if (addr == FDT_ADDR_T_NONE) {
+		error("Not able to get syscon address to get mac efuse address\n");
+		return -ENOENT;
+	}
+
+	addr += CTRL_MAC_REG(offset, slave);
+
+	/* try reading mac address from efuse */
+	macid_lo = readl(addr);
+	macid_hi = readl(addr + 4);
+
+	mac_addr[5] = (macid_lo >> 8) & 0xff;
+	mac_addr[4] = macid_lo & 0xff;
+	mac_addr[3] = (macid_hi >> 24) & 0xff;
+	mac_addr[2] = (macid_hi >> 16) & 0xff;
+	mac_addr[1] = (macid_hi >> 8) & 0xff;
+	mac_addr[0] = macid_hi & 0xff;
+
+	return 0;
+}
+
+int ti_cm_get_macid(struct udevice *dev, int slave, u8 *mac_addr)
+{
+	if (of_machine_is_compatible("ti,dm8148"))
+		return cpsw_am33xx_cm_get_macid(dev, 0x630, slave, mac_addr);
+
+	if (of_machine_is_compatible("ti,am33xx"))
+		return cpsw_am33xx_cm_get_macid(dev, 0x630, slave, mac_addr);
+
+	if (of_device_is_compatible(dev->of_offset, "ti,am3517-emac"))
+		return davinci_emac_3517_get_macid(dev, 0x110, slave, mac_addr);
+
+	if (of_device_is_compatible(dev->of_offset, "ti,dm816-emac"))
+		return cpsw_am33xx_cm_get_macid(dev, 0x30, slave, mac_addr);
+
+	if (of_machine_is_compatible("ti,am4372"))
+		return cpsw_am33xx_cm_get_macid(dev, 0x630, slave, mac_addr);
+
+	if (of_machine_is_compatible("ti,dra7"))
+		return davinci_emac_3517_get_macid(dev, 0x514, slave, mac_addr);
+
+	dev_err(dev, "incompatible machine/device type for reading mac address\n");
+	return -ENOENT;
+}
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index 971ebf0..cc63833 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -26,6 +26,7 @@
 #include <phy.h>
 #include <asm/arch/cpu.h>
 #include <dm.h>
+#include <fdt_support.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -1146,9 +1147,8 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
 	int node = dev->of_offset;
 	int subnode;
 	int slave_index = 0;
-	uint32_t mac_hi, mac_lo;
-	fdt32_t gmii = 0;
 	int active_slave;
+	int ret;
 
 	pdata->iobase = dev_get_addr(dev);
 	priv->data.version = CPSW_CTRL_VERSION_2;
@@ -1234,20 +1234,11 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
 		priv->data.slave_data[1].sliver_reg_ofs = CPSW_SLIVER1_OFFSET;
 	}
 
-	subnode = fdtdec_lookup_phandle(fdt, node, "syscon");
-	priv->data.mac_id = fdt_translate_address((void *)fdt, subnode, &gmii);
-	priv->data.mac_id += AM335X_GMII_SEL_OFFSET;
-	priv->data.mac_id += active_slave * 8;
-
-	/* try reading mac address from efuse */
-	mac_lo = readl(priv->data.mac_id);
-	mac_hi = readl(priv->data.mac_id + 4);
-	pdata->enetaddr[0] = mac_hi & 0xFF;
-	pdata->enetaddr[1] = (mac_hi & 0xFF00) >> 8;
-	pdata->enetaddr[2] = (mac_hi & 0xFF0000) >> 16;
-	pdata->enetaddr[3] = (mac_hi & 0xFF000000) >> 24;
-	pdata->enetaddr[4] = mac_lo & 0xFF;
-	pdata->enetaddr[5] = (mac_lo & 0xFF00) >> 8;
+	ret = ti_cm_get_macid(dev, active_slave, pdata->enetaddr);
+	if (ret < 0) {
+		error("cpsw read efuse mac failed\n");
+		return ret;
+	}
 
 	pdata->phy_interface = priv->data.slave_data[active_slave].phy_if;
 	if (pdata->phy_interface == -1) {
@@ -1268,6 +1259,7 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
 		writel(RGMII_MODE_ENABLE, priv->data.gmii_sel);
 		break;
 	}
+
 	return 0;
 }
 
diff --git a/include/cpsw.h b/include/cpsw.h
index cf1d30b..6255cd8 100644
--- a/include/cpsw.h
+++ b/include/cpsw.h
@@ -51,5 +51,6 @@ struct cpsw_platform_data {
 };
 
 int cpsw_register(struct cpsw_platform_data *data);
+int ti_cm_get_macid(struct udevice *dev, int slave, u8 *mac_addr);
 
 #endif /* _CPSW_H_  */
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 07/11] arm: dts: am4372: add syscon node to cpsw to read mac address
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
                   ` (5 preceding siblings ...)
  2016-04-07 15:17 ` [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-11 15:01   ` Tom Rini
  2016-04-07 15:17 ` [U-Boot] [PATCH 08/11] arm: dts: dra7: " Mugunthan V N
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Add syscon node to cpsw device node to read mac address
from efuse.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 arch/arm/dts/am4372.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/dts/am4372.dtsi b/arch/arm/dts/am4372.dtsi
index c95d1d3..3ffa8e0 100644
--- a/arch/arm/dts/am4372.dtsi
+++ b/arch/arm/dts/am4372.dtsi
@@ -547,6 +547,7 @@
 			active_slave = <0>;
 			cpts_clock_mult = <0x80000000>;
 			cpts_clock_shift = <29>;
+			syscon = <&scm_conf>;
 			ranges;
 
 			davinci_mdio: mdio at 4a101000 {
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 08/11] arm: dts: dra7: add syscon node to cpsw to read mac address
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
                   ` (6 preceding siblings ...)
  2016-04-07 15:17 ` [U-Boot] [PATCH 07/11] arm: dts: am4372: add syscon node to cpsw to read mac address Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-11 15:01   ` Tom Rini
  2016-04-07 15:17 ` [U-Boot] [PATCH 09/11] defconfig: am437x_gp_evm: enable eth driver model Mugunthan V N
                   ` (2 subsequent siblings)
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Add syscon node to cpsw device node to read mac address
from efuse.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 arch/arm/dts/dra7.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/dts/dra7.dtsi b/arch/arm/dts/dra7.dtsi
index e7fecf7..3059273 100644
--- a/arch/arm/dts/dra7.dtsi
+++ b/arch/arm/dts/dra7.dtsi
@@ -1426,6 +1426,7 @@
 			active_slave = <0>;
 			cpts_clock_mult = <0x80000000>;
 			cpts_clock_shift = <29>;
+			syscon = <&scm_conf>;
 			reg = <0x48484000 0x1000
 			       0x48485200 0x2E00>;
 			#address-cells = <1>;
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 09/11] defconfig: am437x_gp_evm: enable eth driver model
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
                   ` (7 preceding siblings ...)
  2016-04-07 15:17 ` [U-Boot] [PATCH 08/11] arm: dts: dra7: " Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-11 15:01   ` Tom Rini
  2016-04-07 15:17 ` [U-Boot] [PATCH 10/11] defconfig: am437x_sk_evm: " Mugunthan V N
  2016-04-07 15:17 ` [U-Boot] [PATCH 11/11] defconfig: dra74_evm: " Mugunthan V N
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Enable eth driver model for am437x_gp_evm as cpsw supports
driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 configs/am437x_gp_evm_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/am437x_gp_evm_defconfig b/configs/am437x_gp_evm_defconfig
index 356f6fd..760e1f3 100644
--- a/configs/am437x_gp_evm_defconfig
+++ b/configs/am437x_gp_evm_defconfig
@@ -22,3 +22,4 @@ CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
+CONFIG_DM_ETH=y
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 10/11] defconfig: am437x_sk_evm: enable eth driver model
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
                   ` (8 preceding siblings ...)
  2016-04-07 15:17 ` [U-Boot] [PATCH 09/11] defconfig: am437x_gp_evm: enable eth driver model Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-11 15:01   ` Tom Rini
  2016-04-07 15:17 ` [U-Boot] [PATCH 11/11] defconfig: dra74_evm: " Mugunthan V N
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Enable eth driver model for am437x_sk_evm as cpsw supports
driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 configs/am437x_sk_evm_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/am437x_sk_evm_defconfig b/configs/am437x_sk_evm_defconfig
index 2e2827f..324e8ed 100644
--- a/configs/am437x_sk_evm_defconfig
+++ b/configs/am437x_sk_evm_defconfig
@@ -26,3 +26,4 @@ CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
+CONFIG_DM_ETH=y
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 11/11] defconfig: dra74_evm: enable eth driver model
  2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
                   ` (9 preceding siblings ...)
  2016-04-07 15:17 ` [U-Boot] [PATCH 10/11] defconfig: am437x_sk_evm: " Mugunthan V N
@ 2016-04-07 15:17 ` Mugunthan V N
  2016-04-11 15:02   ` Tom Rini
  10 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-07 15:17 UTC (permalink / raw)
  To: u-boot

Enable eth driver model for dra74_evm as cpsw supports
driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 configs/dra74_evm_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/dra74_evm_defconfig b/configs/dra74_evm_defconfig
index 5f50004..682c126 100644
--- a/configs/dra74_evm_defconfig
+++ b/configs/dra74_evm_defconfig
@@ -25,3 +25,4 @@ CONFIG_OMAP_TIMER=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
 CONFIG_DM_MMC=y
+CONFIG_DM_ETH=y
-- 
2.8.1.101.g72d917a

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

* [U-Boot] [PATCH 01/11] drivers: core: device: add support to check dt compatible for a device/machine
  2016-04-07 15:17 ` [U-Boot] [PATCH 01/11] drivers: core: device: add support to check dt compatible for a device/machine Mugunthan V N
@ 2016-04-09 18:35   ` Simon Glass
  0 siblings, 0 replies; 29+ messages in thread
From: Simon Glass @ 2016-04-09 18:35 UTC (permalink / raw)
  To: u-boot

Hi Mugunthan,

On 7 April 2016 at 09:17, Mugunthan V N <mugunthanvnm@ti.com> wrote:
> Provide an api to check whether the given device or machine is
> compatible with the given compat string which helps in making
> decisions in drivers based on device or machine compatible.
>
> Idea taken from Linux.
>
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
> ---
>  drivers/core/device.c | 27 +++++++++++++++++++++++++++
>  include/dm/device.h   | 23 +++++++++++++++++++++++
>  2 files changed, 50 insertions(+)
>
> diff --git a/drivers/core/device.c b/drivers/core/device.c
> index cb24a61..445b22e 100644
> --- a/drivers/core/device.c
> +++ b/drivers/core/device.c
> @@ -691,3 +691,30 @@ int device_set_name(struct udevice *dev, const char *name)
>
>         return 0;
>  }
> +
> +bool of_device_is_compatible(int offset, const char *compat)

struct udevice *dev should be the first parameter. We may one day stop
using offsets and use a pointer, so the less we have to change the
better.

> +{
> +       const void *fdt = gd->fdt_blob;
> +       const char *str;
> +       int str_len;
> +       int len = 0;
> +
> +       str = fdt_getprop(fdt, 0, "compatible", &str_len);
> +       if(!str) {
> +               debug("compatible field not found in node(%d)\n", offset);
> +               return false;
> +       }
> +
> +       while (len < str_len) {

Can you use fdt_node_check_compatible() here?

> +               if (!strcmp(compat, &str[len]))
> +                       return true;
> +               len += strlen(&str[len]) + 1;
> +       }
> +
> +       return false;
> +}
> +
> +bool of_machine_is_compatible(const char *compat)
> +{
> +       return of_device_is_compatible(0, compat);
> +}
> diff --git a/include/dm/device.h b/include/dm/device.h
> index 1cf8150..9a1b3d0 100644
> --- a/include/dm/device.h
> +++ b/include/dm/device.h
> @@ -510,6 +510,29 @@ bool device_is_last_sibling(struct udevice *dev);
>  int device_set_name(struct udevice *dev, const char *name);
>
>  /**
> + * of_device_is_compatible() - check if the device is compatible with the compat
> + *
> + * This allows to check whether the device is comaptible with the compat.
> + *
> + * @offset:    Offset to the device
> + * @compat:    Compatible string which needs to verified in the given
> + *             device offset
> + * @return true if OK, false if the compatible is not found
> + */
> +bool of_device_is_compatible(int offset, const char *compat);
> +
> +/**
> + * of_machine_is_compatible() - check if the machine is compatible with
> + *                             the compat
> + *
> + * This allows to check whether the machine is comaptible with the compat.
> + *
> + * @compat:    Compatible string which needs to verified
> + * @return true if OK, false if the compatible is not found
> + */
> +bool of_machine_is_compatible(const char *compat);
> +
> +/**
>   * device_is_on_pci_bus - Test if a device is on a PCI bus
>   *
>   * @dev:       device to test
> --
> 2.8.1.101.g72d917a
>

Regards,
Simon

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

* [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT
  2016-04-07 15:17 ` [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT Mugunthan V N
@ 2016-04-09 18:35   ` Simon Glass
  2016-04-10  3:41     ` Stephen Warren
  0 siblings, 1 reply; 29+ messages in thread
From: Simon Glass @ 2016-04-09 18:35 UTC (permalink / raw)
  To: u-boot

+Stephen

Hi Mugunthan,

On 7 April 2016 at 09:17, Mugunthan V N <mugunthanvnm@ti.com> wrote:
> Size cell and address cell should be read from the parent node
> and should not assume with data structures as an example
> TI DRA7xx SoC is enabled as 64bit as there is LPAE support
> but the addresses specified in DT are all 32 bit sizes. So
> changing the code to read from parent node instead of
> calculations.

I don't understand this. Can you please reword it and shorten the sentences?


>
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
> ---
>  lib/fdtdec.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> index 70acc29..8a5fb8c 100644
> --- a/lib/fdtdec.c
> +++ b/lib/fdtdec.c
> @@ -88,15 +88,20 @@ fdt_addr_t fdtdec_get_addr_size_fixed(const void *blob, int node,
>         const fdt32_t *prop_addr, *prop_size, *prop_after_size;
>         int len;
>         fdt_addr_t addr;
> +       int parent;
>
>         debug("%s: %s: ", __func__, prop_name);
>
> -       if (na > (sizeof(fdt_addr_t) / sizeof(fdt32_t))) {
> +       parent = fdt_parent_offset(blob, node);

This is a very slow function. I hope this changes is not needed.

> +
> +       na = fdt_address_cells(blob, parent);
> +       if (na < 1) {
>                 debug("(na too large for fdt_addr_t type)\n");
>                 return FDT_ADDR_T_NONE;
>         }
>
> -       if (ns > (sizeof(fdt_size_t) / sizeof(fdt32_t))) {
> +       ns = fdt_size_cells(blob, parent);
> +       if (ns < 0) {
>                 debug("(ns too large for fdt_size_t type)\n");
>                 return FDT_ADDR_T_NONE;
>         }
> --
> 2.8.1.101.g72d917a
>

Regards,
Simon

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

* [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl
  2016-04-07 15:17 ` [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl Mugunthan V N
@ 2016-04-09 18:35   ` Simon Glass
  2016-04-11  5:54     ` Mugunthan V N
  2016-04-11 15:01   ` Tom Rini
  1 sibling, 1 reply; 29+ messages in thread
From: Simon Glass @ 2016-04-09 18:35 UTC (permalink / raw)
  To: u-boot

Hi Mugunthan,

On 7 April 2016 at 09:17, Mugunthan V N <mugunthanvnm@ti.com> wrote:
> Since omap's spl doesn't support DM currently, do not define
> DM_ETH for spl build.
>
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
> ---
>  include/configs/ti_omap5_common.h | 1 +
>  1 file changed, 1 insertion(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

I suppose this is OK as a temporary convenience, although we should
use defconfig for this sort of thing.

>
> diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h
> index 202b18c..c592646 100644
> --- a/include/configs/ti_omap5_common.h
> +++ b/include/configs/ti_omap5_common.h
> @@ -155,6 +155,7 @@
>  #ifdef CONFIG_SPL_BUILD
>  #undef CONFIG_DM_MMC
>  #undef CONFIG_TIMER
> +#undef CONFIG_DM_ETH
>  #endif
>
>  #endif /* __CONFIG_TI_OMAP5_COMMON_H */
> --
> 2.8.1.101.g72d917a
>

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

* [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT
  2016-04-09 18:35   ` Simon Glass
@ 2016-04-10  3:41     ` Stephen Warren
  2016-04-11  5:52       ` Mugunthan V N
  0 siblings, 1 reply; 29+ messages in thread
From: Stephen Warren @ 2016-04-10  3:41 UTC (permalink / raw)
  To: u-boot

On 04/09/2016 12:35 PM, Simon Glass wrote:
> +Stephen
>
> Hi Mugunthan,
>
> On 7 April 2016 at 09:17, Mugunthan V N <mugunthanvnm@ti.com> wrote:
>> Size cell and address cell should be read from the parent node
>> and should not assume with data structures as an example
>> TI DRA7xx SoC is enabled as 64bit as there is LPAE support
>> but the addresses specified in DT are all 32 bit sizes. So
>> changing the code to read from parent node instead of
>> calculations.
>
> I don't understand this. Can you please reword it and shorten the sentences?

>> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
>> index 70acc29..8a5fb8c 100644
>> --- a/lib/fdtdec.c
>> +++ b/lib/fdtdec.c
>> @@ -88,15 +88,20 @@ fdt_addr_t fdtdec_get_addr_size_fixed(const void *blob, int node,
>>          const fdt32_t *prop_addr, *prop_size, *prop_after_size;
>>          int len;
>>          fdt_addr_t addr;
>> +       int parent;
>>
>>          debug("%s: %s: ", __func__, prop_name);
>>
>> -       if (na > (sizeof(fdt_addr_t) / sizeof(fdt32_t))) {
>> +       parent = fdt_parent_offset(blob, node);
>
> This is a very slow function. I hope this changes is not needed.
>
>> +
>> +       na = fdt_address_cells(blob, parent);
>> +       if (na < 1) {
>>                  debug("(na too large for fdt_addr_t type)\n");
>>                  return FDT_ADDR_T_NONE;
>>          }
>>
>> -       if (ns > (sizeof(fdt_size_t) / sizeof(fdt32_t))) {
>> +       ns = fdt_size_cells(blob, parent);
>> +       if (ns < 0) {
>>                  debug("(ns too large for fdt_size_t type)\n");
>>                  return FDT_ADDR_T_NONE;
>>          }

The entire point of fdtdec_get_addr_size_fixed() is for use-cases where 
na and ns are known and fixed ahead of time, or have already been 
retrieved from the parent node by the caller. This patch is incorrect. I 
expect the correct fix is to call e.g. 
fdtdec_get_addr_size_auto_parent() or 
fdtdec_get_addr_size_auto_noparent() from somewhere, rather than calling 
fdtdec_get_addr_size_fixed().

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

* [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT
  2016-04-10  3:41     ` Stephen Warren
@ 2016-04-11  5:52       ` Mugunthan V N
  0 siblings, 0 replies; 29+ messages in thread
From: Mugunthan V N @ 2016-04-11  5:52 UTC (permalink / raw)
  To: u-boot

Stephen

On Sunday 10 April 2016 09:11 AM, Stephen Warren wrote:
> On 04/09/2016 12:35 PM, Simon Glass wrote:
>> +Stephen
>>
>> Hi Mugunthan,
>>
>> On 7 April 2016 at 09:17, Mugunthan V N <mugunthanvnm@ti.com> wrote:
>>> Size cell and address cell should be read from the parent node
>>> and should not assume with data structures as an example
>>> TI DRA7xx SoC is enabled as 64bit as there is LPAE support
>>> but the addresses specified in DT are all 32 bit sizes. So
>>> changing the code to read from parent node instead of
>>> calculations.
>>
>> I don't understand this. Can you please reword it and shorten the
>> sentences?
> 
>>> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
>>> index 70acc29..8a5fb8c 100644
>>> --- a/lib/fdtdec.c
>>> +++ b/lib/fdtdec.c
>>> @@ -88,15 +88,20 @@ fdt_addr_t fdtdec_get_addr_size_fixed(const void
>>> *blob, int node,
>>>          const fdt32_t *prop_addr, *prop_size, *prop_after_size;
>>>          int len;
>>>          fdt_addr_t addr;
>>> +       int parent;
>>>
>>>          debug("%s: %s: ", __func__, prop_name);
>>>
>>> -       if (na > (sizeof(fdt_addr_t) / sizeof(fdt32_t))) {
>>> +       parent = fdt_parent_offset(blob, node);
>>
>> This is a very slow function. I hope this changes is not needed.
>>
>>> +
>>> +       na = fdt_address_cells(blob, parent);
>>> +       if (na < 1) {
>>>                  debug("(na too large for fdt_addr_t type)\n");
>>>                  return FDT_ADDR_T_NONE;
>>>          }
>>>
>>> -       if (ns > (sizeof(fdt_size_t) / sizeof(fdt32_t))) {
>>> +       ns = fdt_size_cells(blob, parent);
>>> +       if (ns < 0) {
>>>                  debug("(ns too large for fdt_size_t type)\n");
>>>                  return FDT_ADDR_T_NONE;
>>>          }
> 
> The entire point of fdtdec_get_addr_size_fixed() is for use-cases where
> na and ns are known and fixed ahead of time, or have already been
> retrieved from the parent node by the caller. This patch is incorrect. I
> expect the correct fix is to call e.g.
> fdtdec_get_addr_size_auto_parent() or
> fdtdec_get_addr_size_auto_noparent() from somewhere, rather than calling
> fdtdec_get_addr_size_fixed().

Will fix thos in v2 by using fdtdec_get_addr_size_auto_parent()

Regards
Mugunthan V N

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

* [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl
  2016-04-09 18:35   ` Simon Glass
@ 2016-04-11  5:54     ` Mugunthan V N
  0 siblings, 0 replies; 29+ messages in thread
From: Mugunthan V N @ 2016-04-11  5:54 UTC (permalink / raw)
  To: u-boot

On Sunday 10 April 2016 12:05 AM, Simon Glass wrote:
> Hi Mugunthan,
> 
> On 7 April 2016 at 09:17, Mugunthan V N <mugunthanvnm@ti.com> wrote:
>> Since omap's spl doesn't support DM currently, do not define
>> DM_ETH for spl build.
>>
>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
>> ---
>>  include/configs/ti_omap5_common.h | 1 +
>>  1 file changed, 1 insertion(+)
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> 
> I suppose this is OK as a temporary convenience, although we should
> use defconfig for this sort of thing.
> 

Yes, this is a temporary. When omap's spl updated to support DM, these
undefs has to be removed.

Regards
Mugunthan V N

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

* [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl
  2016-04-07 15:17 ` [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl Mugunthan V N
  2016-04-09 18:35   ` Simon Glass
@ 2016-04-11 15:01   ` Tom Rini
  1 sibling, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:01 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:02PM +0530, Mugunthan V N wrote:

> Since omap's spl doesn't support DM currently, do not define
> DM_ETH for spl build.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/69d0aaba/attachment-0001.sig>

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

* [U-Boot] [PATCH 04/11] drivers: net: cpsw: fix cpsw dp parse when num slaves as 1
  2016-04-07 15:17 ` [U-Boot] [PATCH 04/11] drivers: net: cpsw: fix cpsw dp parse when num slaves as 1 Mugunthan V N
@ 2016-04-11 15:01   ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:01 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:03PM +0530, Mugunthan V N wrote:

> On some boards number of slaves can be 1 when only one port
> ethernet is pinned out. So do not break when slave_index and
> num slaves check fails, instead continue to parse the next
> child.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/bddfcd4c/attachment.sig>

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

* [U-Boot] [PATCH 05/11] ARM: omap5: add platform specific ethernet phy modes configurations
  2016-04-07 15:17 ` [U-Boot] [PATCH 05/11] ARM: omap5: add platform specific ethernet phy modes configurations Mugunthan V N
@ 2016-04-11 15:01   ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:01 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:04PM +0530, Mugunthan V N wrote:

> Add platforms specific phy mode configuration bits to be used
> to configure phy mode in control module.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/5ce8f103/attachment.sig>

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

* [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse
  2016-04-07 15:17 ` [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse Mugunthan V N
@ 2016-04-11 15:01   ` Tom Rini
  2016-04-12  4:24     ` Mugunthan V N
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:01 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:05PM +0530, Mugunthan V N wrote:

> Different TI platforms has to read with different combination to
> get the mac address from efuse. So add support to read mac address
> based on machine/device compatibles.
> 
> The code is taken from Linux drivers/net/ethernet/ti/cpsw-common.c
> done by Tony Lindgren.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

... but we don't do anything with the half dozen copies of that code
that we already have in the tree and it needs to also take care of
setting ethaddr.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/bc238d7f/attachment.sig>

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

* [U-Boot] [PATCH 07/11] arm: dts: am4372: add syscon node to cpsw to read mac address
  2016-04-07 15:17 ` [U-Boot] [PATCH 07/11] arm: dts: am4372: add syscon node to cpsw to read mac address Mugunthan V N
@ 2016-04-11 15:01   ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:01 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:06PM +0530, Mugunthan V N wrote:

> Add syscon node to cpsw device node to read mac address
> from efuse.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/8f01924c/attachment.sig>

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

* [U-Boot] [PATCH 08/11] arm: dts: dra7: add syscon node to cpsw to read mac address
  2016-04-07 15:17 ` [U-Boot] [PATCH 08/11] arm: dts: dra7: " Mugunthan V N
@ 2016-04-11 15:01   ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:01 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:07PM +0530, Mugunthan V N wrote:

> Add syscon node to cpsw device node to read mac address
> from efuse.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/d4f5cad1/attachment.sig>

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

* [U-Boot] [PATCH 09/11] defconfig: am437x_gp_evm: enable eth driver model
  2016-04-07 15:17 ` [U-Boot] [PATCH 09/11] defconfig: am437x_gp_evm: enable eth driver model Mugunthan V N
@ 2016-04-11 15:01   ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:01 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:08PM +0530, Mugunthan V N wrote:

> Enable eth driver model for am437x_gp_evm as cpsw supports
> driver model.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/df6101f5/attachment.sig>

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

* [U-Boot] [PATCH 10/11] defconfig: am437x_sk_evm: enable eth driver model
  2016-04-07 15:17 ` [U-Boot] [PATCH 10/11] defconfig: am437x_sk_evm: " Mugunthan V N
@ 2016-04-11 15:01   ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:01 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:09PM +0530, Mugunthan V N wrote:

> Enable eth driver model for am437x_sk_evm as cpsw supports
> driver model.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/4c078947/attachment.sig>

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

* [U-Boot] [PATCH 11/11] defconfig: dra74_evm: enable eth driver model
  2016-04-07 15:17 ` [U-Boot] [PATCH 11/11] defconfig: dra74_evm: " Mugunthan V N
@ 2016-04-11 15:02   ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-11 15:02 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 07, 2016 at 08:47:10PM +0530, Mugunthan V N wrote:

> Enable eth driver model for dra74_evm as cpsw supports
> driver model.
> 
> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160411/4d553df7/attachment.sig>

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

* [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse
  2016-04-11 15:01   ` Tom Rini
@ 2016-04-12  4:24     ` Mugunthan V N
  2016-04-12 14:51       ` Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Mugunthan V N @ 2016-04-12  4:24 UTC (permalink / raw)
  To: u-boot

On Monday 11 April 2016 08:31 PM, Tom Rini wrote:
> On Thu, Apr 07, 2016 at 08:47:05PM +0530, Mugunthan V N wrote:
> 
>> Different TI platforms has to read with different combination to
>> get the mac address from efuse. So add support to read mac address
>> based on machine/device compatibles.
>>
>> The code is taken from Linux drivers/net/ethernet/ti/cpsw-common.c
>> done by Tony Lindgren.
>>
>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
> 
> ... but we don't do anything with the half dozen copies of that code
> that we already have in the tree and it needs to also take care of
> setting ethaddr.
> 

The file is just a copy of the file from Kernel and modified header file
inclusions and defines as per u-boot requirement. Kept the functions
intact so that later patches from Kernel can be pulled to u-boot or
vice-versa when new SoC is brought up.

Driver has to update the pdata->enetaddr, it will be set to env in eth
uclass driver post probe function.

Regards
Mugunthan V N

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

* [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse
  2016-04-12  4:24     ` Mugunthan V N
@ 2016-04-12 14:51       ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2016-04-12 14:51 UTC (permalink / raw)
  To: u-boot

On Tue, Apr 12, 2016 at 09:54:24AM +0530, Mugunthan V N wrote:
> On Monday 11 April 2016 08:31 PM, Tom Rini wrote:
> > On Thu, Apr 07, 2016 at 08:47:05PM +0530, Mugunthan V N wrote:
> > 
> >> Different TI platforms has to read with different combination to
> >> get the mac address from efuse. So add support to read mac address
> >> based on machine/device compatibles.
> >>
> >> The code is taken from Linux drivers/net/ethernet/ti/cpsw-common.c
> >> done by Tony Lindgren.
> >>
> >> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
> > 
> > ... but we don't do anything with the half dozen copies of that code
> > that we already have in the tree and it needs to also take care of
> > setting ethaddr.
> > 
> 
> The file is just a copy of the file from Kernel and modified header file
> inclusions and defines as per u-boot requirement. Kept the functions
> intact so that later patches from Kernel can be pulled to u-boot or
> vice-versa when new SoC is brought up.
> 
> Driver has to update the pdata->enetaddr, it will be set to env in eth
> uclass driver post probe function.

Ah, OK.  So we'll be able to remove the board/ versions and such after
we move it all to DM, I can accept that, thanks.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160412/60513c7b/attachment.sig>

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

end of thread, other threads:[~2016-04-12 14:51 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
2016-04-07 15:17 ` [U-Boot] [PATCH 01/11] drivers: core: device: add support to check dt compatible for a device/machine Mugunthan V N
2016-04-09 18:35   ` Simon Glass
2016-04-07 15:17 ` [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT Mugunthan V N
2016-04-09 18:35   ` Simon Glass
2016-04-10  3:41     ` Stephen Warren
2016-04-11  5:52       ` Mugunthan V N
2016-04-07 15:17 ` [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl Mugunthan V N
2016-04-09 18:35   ` Simon Glass
2016-04-11  5:54     ` Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 04/11] drivers: net: cpsw: fix cpsw dp parse when num slaves as 1 Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 05/11] ARM: omap5: add platform specific ethernet phy modes configurations Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-12  4:24     ` Mugunthan V N
2016-04-12 14:51       ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 07/11] arm: dts: am4372: add syscon node to cpsw to read mac address Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 08/11] arm: dts: dra7: " Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 09/11] defconfig: am437x_gp_evm: enable eth driver model Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 10/11] defconfig: am437x_sk_evm: " Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 11/11] defconfig: dra74_evm: " Mugunthan V N
2016-04-11 15:02   ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.