[U-Boot] [PATCH v2 00/12] cpsw: enable DM_ETH on dra74 and am437x evms

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-v2 [2] - http://pastebin.ubuntu.com/15780009/
Changes from initial version: * removed 02/11 fix size cell and address cell parse from DT and used fdtdec_get_addr_size_auto_noparent() to get mdio base and gmii_sel register address. Added as seperate patch in this series. * used fdt_node_check_compatible() to check if the device or machine is compatible with the given compatible string. * change first argument from node offset to device pointer so that in future it is will be easy to migrate out of indexing DT by offsets.
Mugunthan V N (12): drivers: core: device: add support to check dt compatible for a device/machine 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: fix get mdio base and gmii_sel reg from DT 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 arm: dts: dra7: fix ethernet name with proper device 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 | 3 +- 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 | 14 ++++ drivers/net/Makefile | 2 +- drivers/net/cpsw-common.c | 121 ++++++++++++++++++++++++++++++++++ drivers/net/cpsw.c | 54 ++++++++------- include/configs/ti_omap5_common.h | 1 + include/cpsw.h | 1 + include/dm/device.h | 23 +++++++ 13 files changed, 209 insertions(+), 26 deletions(-) create mode 100644 drivers/net/cpsw-common.c

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 ---
Changes from initial version: * used fdt_node_check_compatible() to check if the device or machine is compatible with the given compatible string. * change first argument from node offset to device pointer so that in future it is will be easy to migrate out of indexing DT by offsets.
--- drivers/core/device.c | 14 ++++++++++++++ include/dm/device.h | 23 +++++++++++++++++++++++ 2 files changed, 37 insertions(+)
diff --git a/drivers/core/device.c b/drivers/core/device.c index cb24a61..d6ca704 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -691,3 +691,17 @@ int device_set_name(struct udevice *dev, const char *name)
return 0; } + +bool of_device_is_compatible(struct udevice *dev, const char *compat) +{ + const void *fdt = gd->fdt_blob; + + return !fdt_node_check_compatible(fdt, dev->of_offset, compat); +} + +bool of_machine_is_compatible(const char *compat) +{ + const void *fdt = gd->fdt_blob; + + return !fdt_node_check_compatible(fdt, 0, compat); +} diff --git a/include/dm/device.h b/include/dm/device.h index 1cf8150..a913b51 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. + * + * @dev: udevice pointer for which compatible needs to be verified. + * @compat: Compatible string which needs to verified in the given + * device + * @return true if OK, false if the compatible is not found + */ +bool of_device_is_compatible(struct udevice *dev, 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

On Tue, Apr 12, 2016 at 3:46 AM, 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
Reviewed-by: Joe Hershberger joe.hershberger@ni.com

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: Simon Glass sjg@chromium.org Reviewed-by: Tom Rini trini@konsulko.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 */

On Tue, Apr 12, 2016 at 3:46 AM, 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 Reviewed-by: Simon Glass sjg@chromium.org Reviewed-by: Tom Rini trini@konsulko.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

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 --- 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 =

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com

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 --- 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 */

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com

Since dra7x platforms address bus is define as 64 bits to support LAPE, fdtdec_get_addr() returns a invalid address for mdio based and gmii_sel register address. Fixing this by using fdtdec_get_addr_size_auto_noparent() which will derive address cell and size cell from its parent.
Signed-off-by: Mugunthan V N mugunthanvnm@ti.com --- drivers/net/cpsw.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c index 971ebf0..9b1e37b 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -1137,6 +1137,11 @@ static const struct eth_ops cpsw_eth_ops = { .stop = cpsw_eth_stop, };
+static inline fdt_addr_t cpsw_get_addr_by_node(const void *fdt, int node) +{ + return fdtdec_get_addr_size_auto_noparent(fdt, node, "reg", 0, NULL); +} + static int cpsw_eth_ofdata_to_platdata(struct udevice *dev) { struct eth_pdata *pdata = dev_get_platdata(dev); @@ -1202,8 +1207,14 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
name = fdt_get_name(fdt, subnode, &len); if (!strncmp(name, "mdio", 4)) { - priv->data.mdio_base = fdtdec_get_addr(fdt, subnode, - "reg"); + u32 mdio_base; + + mdio_base = cpsw_get_addr_by_node(fdt, subnode); + if (mdio_base == FDT_ADDR_T_NONE) { + error("Not able to get MDIO address space\n"); + return -ENOENT; + } + priv->data.mdio_base = mdio_base; }
if (!strncmp(name, "slave", 5)) { @@ -1221,8 +1232,13 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev) }
if (!strncmp(name, "cpsw-phy-sel", 12)) { - priv->data.gmii_sel = fdtdec_get_addr(fdt, subnode, - "reg"); + priv->data.gmii_sel = cpsw_get_addr_by_node(fdt, + subnode); + + if (priv->data.gmii_sel == FDT_ADDR_T_NONE) { + error("Not able to get gmii_sel reg address\n"); + return -ENOENT; + } } }

On Tue, Apr 12, 2016 at 02:16:49PM +0530, Mugunthan V N wrote:
Since dra7x platforms address bus is define as 64 bits to support LAPE, fdtdec_get_addr() returns a invalid address for mdio based and gmii_sel register address. Fixing this by using fdtdec_get_addr_size_auto_noparent() which will derive address cell and size cell from its parent.
Signed-off-by: Mugunthan V N mugunthanvnm@ti.com
Reviewed-by: Tom Rini trini@konsulko.com

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com wrote:
Since dra7x platforms address bus is define as 64 bits to support LAPE, fdtdec_get_addr() returns a invalid address for mdio based and gmii_sel register address. Fixing this by using fdtdec_get_addr_size_auto_noparent() which will derive address cell and size cell from its parent.
Signed-off-by: Mugunthan V N mugunthanvnm@ti.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

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..e828e85 --- /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, "ti,am3517-emac")) + return davinci_emac_3517_get_macid(dev, 0x110, slave, mac_addr); + + if (of_device_is_compatible(dev, "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 9b1e37b..b811119 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;
@@ -1151,9 +1152,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; @@ -1250,20 +1250,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) { @@ -1284,6 +1275,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_ */

On Tue, Apr 12, 2016 at 02:16:50PM +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
Reviewed-by: Tom Rini trini@konsulko.com

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com

On Mon, Apr 25, 2016 at 4:53 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This is not checkpatch.pl clean. Please resubmit.
609306.mbox:92: WARNING: line over 80 characters 609306.mbox:132: WARNING: line over 80 characters

On Wednesday 27 April 2016 03:06 AM, Joe Hershberger wrote:
On Mon, Apr 25, 2016 at 4:53 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This is not checkpatch.pl clean. Please resubmit.
609306.mbox:92: WARNING: line over 80 characters 609306.mbox:132: WARNING: line over 80 characters
WARNING: line over 80 characters #103: FILE: drivers/net/cpsw-common.c:39: + error("Not able to get syscon address to get mac efuse address\n");
WARNING: line over 80 characters #143: FILE: drivers/net/cpsw-common.c:79: + error("Not able to get syscon address to get mac efuse address\n");
total: 0 errors, 2 warnings, 0 checks, 184 lines checked
These warnings are from error logs which can be ignored as it makes life easier to grep the source when issue is found. The same is followed in kernel as well.
Regards Mugunthan V N

On Wed, Apr 27, 2016 at 1:33 AM, Mugunthan V N mugunthanvnm@ti.com wrote:
On Wednesday 27 April 2016 03:06 AM, Joe Hershberger wrote:
On Mon, Apr 25, 2016 at 4:53 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This is not checkpatch.pl clean. Please resubmit.
609306.mbox:92: WARNING: line over 80 characters 609306.mbox:132: WARNING: line over 80 characters
WARNING: line over 80 characters #103: FILE: drivers/net/cpsw-common.c:39:
error("Not able to get syscon address to get mac efuse address\n");
WARNING: line over 80 characters #143: FILE: drivers/net/cpsw-common.c:79:
error("Not able to get syscon address to get mac efuse address\n");
total: 0 errors, 2 warnings, 0 checks, 184 lines checked
These warnings are from error logs which can be ignored as it makes life easier to grep the source when issue is found. The same is followed in kernel as well.
OK. Please address the other patch as well. Are all failures justifiable for the same reason?
Thanks, -Joe

On Thursday 28 April 2016 10:01 AM, Joe Hershberger wrote:
On Wed, Apr 27, 2016 at 1:33 AM, Mugunthan V N mugunthanvnm@ti.com wrote:
On Wednesday 27 April 2016 03:06 AM, Joe Hershberger wrote:
On Mon, Apr 25, 2016 at 4:53 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This is not checkpatch.pl clean. Please resubmit.
609306.mbox:92: WARNING: line over 80 characters 609306.mbox:132: WARNING: line over 80 characters
WARNING: line over 80 characters #103: FILE: drivers/net/cpsw-common.c:39:
error("Not able to get syscon address to get mac efuse address\n");
WARNING: line over 80 characters #143: FILE: drivers/net/cpsw-common.c:79:
error("Not able to get syscon address to get mac efuse address\n");
total: 0 errors, 2 warnings, 0 checks, 184 lines checked
These warnings are from error logs which can be ignored as it makes life easier to grep the source when issue is found. The same is followed in kernel as well.
OK. Please address the other patch as well. Are all failures justifiable for the same reason?
I just reposted the v3 of this patches with rebase to u-boot/master. I get only the above two checkpatch warning for the whole series, is there some other warning else you get in your testing?
Regards Mugunthan V N

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 --- 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@4a101000 {

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com

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 --- 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>;

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com

Fix typo error for cpsw device name with proper device address
Signed-off-by: Mugunthan V N mugunthanvnm@ti.com --- arch/arm/dts/dra7.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/dts/dra7.dtsi b/arch/arm/dts/dra7.dtsi index 3059273..0f242e6 100644 --- a/arch/arm/dts/dra7.dtsi +++ b/arch/arm/dts/dra7.dtsi @@ -1411,7 +1411,7 @@ ti,irqs-safe-map = <0>; };
- mac: ethernet@4a100000 { + mac: ethernet@48484000 { compatible = "ti,cpsw"; ti,hwmods = "gmac"; clocks = <&dpll_gmac_ck>, <&gmac_gmii_ref_clk_div>;

On Tue, Apr 12, 2016 at 02:16:53PM +0530, Mugunthan V N wrote:
Fix typo error for cpsw device name with proper device address
Signed-off-by: Mugunthan V N mugunthanvnm@ti.com
Reviewed-by: Tom Rini trini@konsulko.com
... and I assume this is already fixed in the kernel.

On Tuesday 12 April 2016 10:53 PM, Tom Rini wrote:
On Tue, Apr 12, 2016 at 02:16:53PM +0530, Mugunthan V N wrote:
Fix typo error for cpsw device name with proper device address
Signed-off-by: Mugunthan V N mugunthanvnm@ti.com
Reviewed-by: Tom Rini trini@konsulko.com
... and I assume this is already fixed in the kernel.
Its not fixed in kernel, just saw this in U-boot and posted. Will be posting the 3 dts patches from this series to kernel soon.
Regards Mugunthan V N

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com wrote:
Fix typo error for cpsw device name with proper device address
Signed-off-by: Mugunthan V N mugunthanvnm@ti.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

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 --- 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

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com

On Mon, Apr 25, 2016 at 5:01 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This patch does not apply cleanly.

On Wednesday 27 April 2016 03:08 AM, Joe Hershberger wrote:
On Mon, Apr 25, 2016 at 5:01 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This patch does not apply cleanly.
Here is the fix on top of u-boot/master, do you want me to post a new version of these patches?
diff --git a/configs/am437x_gp_evm_defconfig b/configs/am437x_gp_evm_defconfig index 03b02ac..f098fd3 100644 --- a/configs/am437x_gp_evm_defconfig +++ b/configs/am437x_gp_evm_defconfig @@ -47,3 +47,4 @@ CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Texas Instruments" CONFIG_G_DNL_VENDOR_NUM=0x0403 CONFIG_G_DNL_PRODUCT_NUM=0xbd00 +CONFIG_DM_ETH=y
Regards Mugunthan V N

On Wed, Apr 27, 2016 at 1:37 AM, Mugunthan V N mugunthanvnm@ti.com wrote:
On Wednesday 27 April 2016 03:08 AM, Joe Hershberger wrote:
On Mon, Apr 25, 2016 at 5:01 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This patch does not apply cleanly.
Here is the fix on top of u-boot/master, do you want me to post a new version of these patches?
It would be helpful to resend the series on top of current master.
Thanks, -Joe

On Thursday 28 April 2016 10:03 AM, Joe Hershberger wrote:
On Wed, Apr 27, 2016 at 1:37 AM, Mugunthan V N mugunthanvnm@ti.com wrote:
On Wednesday 27 April 2016 03:08 AM, Joe Hershberger wrote:
On Mon, Apr 25, 2016 at 5:01 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This patch does not apply cleanly.
Here is the fix on top of u-boot/master, do you want me to post a new version of these patches?
It would be helpful to resend the series on top of current master.
Ok, will send it today.
Regards Mugunthan V N

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 --- 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

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com

On Mon, Apr 25, 2016 at 5:01 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This patch does not apply cleanly.

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 --- 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

On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com

On Mon, Apr 25, 2016 at 5:01 PM, Joe Hershberger joe.hershberger@gmail.com wrote:
On Tue, Apr 12, 2016 at 3:46 AM, Mugunthan V N mugunthanvnm@ti.com 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
Acked-by: Joe Hershberger joe.hershberger@ni.com
This patch does not apply cleanly.
participants (3)
-
Joe Hershberger
-
Mugunthan V N
-
Tom Rini