This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3352: Ethernet switch issue

Part Number: AM3352


Tool/software: Linux

On this custom board the AM3352's RGMII1 interface is linked to Port 5 (numbering from 0) of the Marvell 88E6176. (see device tree details below)

I am running into the following error when trying to bring up the interface:

ifconfig eth0 up
[ 27.494120] net eth0: initializing cpsw version 1.12 (0)
[ 27.565128] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[ 27.571534] cpsw 4a100000.ethernet: ALE Table size 1024
[ 27.606243] libphy: PHY 4a101000.mdio:00 not found
[ 27.611090] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19
[ 27.618453] libphy: PHY 4a101000.mdio:01 not found
[ 27.623274] net eth0: phy "4a101000.mdio:01" not found on slave 1, err -19
[ 27.632653] cpts ptp bc clkid 0
[ 27.649040] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

Thus far I haven't tried to innitialize the 88E6176, but I don't expect the MDIO failure above. Here are the relavent sections of my device tree:

    cpsw_default: cpsw_default {
        pinctrl-single,pins = <
            /* Slave 1 */
            AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2)    /* mii1_txen.rgmii1_tctl */
            AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
            AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2)    /* mii1_txd3.rgmii1_td3 */
            AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2)    /* mii1_txd2.rgmii1_td2 */
            AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2)    /* mii1_txd1.rgmii1_td1 */
            AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2)    /* mii1_txd0.rgmii1_td0 */
            AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2)    /* mii1_txclk.rgmii1_tclk */
            AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */
            AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */
            AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */
            AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
            AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
        >;
    };

    davinci_mdio_default: davinci_mdio_default {
        pinctrl-single,pins = <
            /* MDIO */
            AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)   /* mdio_data.mdio_data */
            AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)          /* mdio_clk.mdio_clk */
        >;
    };

&davinci_mdio {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&davinci_mdio_default>;
    pinctrl-1 = <&davinci_mdio_sleep>;
    status = "okay";
};

&cpsw_emac0 {
    phy_id = <&davinci_mdio>, <0>;
    phy-mode = "rgmii-txid";
};

&cpsw_emac1 {
    phy_id = <&davinci_mdio>, <1>;
    phy-mode = "rgmii-txid";
};