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: AM3352 RMII Config?

Part Number: AM3352
Other Parts Discussed in Thread: DP83848C, DP83620

Tool/software: Linux

Hi Champs:

  #.0 I'm using Linux SDK 5.02. with BBB.

  #1. I'm working on to port the DP83825 Ethernet RMII onto the AM3352.

  #2. According the E2E discussion on here:

https://e2e.ti.com/support/processors/f/791/t/243088#pi320966=1

       I though there should be somewhere to config the AM335 Kernel working with RMII.

       So, I grep this keyword on entire Kernel: rmii_mode, i cannot find anywhere to config it.

       May you tell me where to enable the RMII mode?

   #3. I gen the RMII with PinMux tool, and I have this.

myrmii1_pins_default: myrmii1_pins_default {
pinctrl-single,pins = <
0x10c ( PIN_INPUT | MUX_MODE1 ) /* (H17) gmii1_crs.rmii1_crs_dv */
0x110 ( PIN_INPUT | MUX_MODE1 ) /* (J15) gmii1_rxer.rmii1_rxer */
0x114 ( PIN_OUTPUT | MUX_MODE1 ) /* (J16) gmii1_txen.rmii1_txen */
0x128 ( PIN_OUTPUT | MUX_MODE1 ) /* (K17) gmii1_txd0.rmii1_txd0 */
0x124 ( PIN_OUTPUT | MUX_MODE1 ) /* (K16) gmii1_txd1.rmii1_txd1 */
0x140 ( PIN_INPUT | MUX_MODE1 ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
0x13c ( PIN_INPUT | MUX_MODE1 ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
0x144 ( PIN_INPUT | MUX_MODE0 ) /* (H18) rmii1_refclk.rmii1_refclk */
>;
};

/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
myrmii1_pins_sleep: myrmii1_pins_sleep {
pinctrl-single,pins = <
0x10c ( ) /* (H17) gmii1_crs.rmii1_crs_dv */
0x110 ( ) /* (J15) gmii1_rxer.rmii1_rxer */
0x114 ( ) /* (J16) gmii1_txen.rmii1_txen */
0x128 ( ) /* (K17) gmii1_txd0.rmii1_txd0 */
0x124 ( ) /* (K16) gmii1_txd1.rmii1_txd1 */
0x140 ( ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
0x13c ( ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
0x144 ( ) /* (H18) rmii1_refclk.rmii1_refclk */
>;
};

      Which part of the "am335x-bone-common.dtsi" I should modify?

      Is this one? ==>cpsw_default: cpsw_default

      and this one? ==> cpsw_sleep: cpsw_sleep

#4. What to do with those part?

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

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

BR Rio

      

  • /*
     * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    
    / {
    	cpus {
    		cpu@0 {
    			cpu0-supply = <&dcdc2_reg>;
    		};
    	};
    
    	chosen {
    		stdout-path = &uart0;
    		tick-timer = &timer2;
    	};
    
    	memory {
    		device_type = "memory";
    		reg = <0x80000000 0x10000000>; /* 256 MB */
    	};
    
    	leds {
    		pinctrl-names = "default";
    		pinctrl-0 = <&user_leds_s0>;
    
    		compatible = "gpio-leds";
    
    		led@2 {
    			label = "beaglebone:green:heartbeat";
    			gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			default-state = "off";
    		};
    
    		led@3 {
    			label = "beaglebone:green:mmc0";
    			gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "mmc0";
    			default-state = "off";
    		};
    
    		led@4 {
    			label = "beaglebone:green:usr2";
    			gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "cpu0";
    			default-state = "off";
    		};
    
    		led@5 {
    			label = "beaglebone:green:usr3";
    			gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "mmc1";
    			default-state = "off";
    		};
    	};
    
    	vmmcsd_fixed: fixedregulator@0 {
    		compatible = "regulator-fixed";
    		regulator-name = "vmmcsd_fixed";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    	};
    };
    
    &am33xx_pinmux {
    	pinctrl-names = "default";
    	pinctrl-0 = <&clkout2_pin>;
    
    	user_leds_s0: user_leds_s0 {
    		pinctrl-single,pins = <
    			0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a5.gpio1_21 */
    			0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* gpmc_a6.gpio1_22 */
    			0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a7.gpio1_23 */
    			0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* gpmc_a8.gpio1_24 */
    		>;
    	};
    
    	i2c0_pins: pinmux_i2c0_pins {
    		pinctrl-single,pins = <
    			0x188 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_sda.i2c0_sda */
    			0x18c (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_scl.i2c0_scl */
    		>;
    	};
    
    	i2c2_pins: pinmux_i2c2_pins {
    		pinctrl-single,pins = <
    			0x178 (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_ctsn.i2c2_sda */
    			0x17c (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_rtsn.i2c2_scl */
    		>;
    	};
    
    	uart0_pins: pinmux_uart0_pins {
    		pinctrl-single,pins = <
    			0x170 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart0_rxd.uart0_rxd */
    			0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart0_txd.uart0_txd */
    		>;
    	};
    
    	clkout2_pin: pinmux_clkout2_pin {
    		pinctrl-single,pins = <
    			0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* xdma_event_intr1.clkout2 */
    		>;
    	};
    
    	cpsw_default: cpsw_default {
    		pinctrl-single,pins = <
    			/* Slave 1 */
    			//0x110 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxerr.mii1_rxerr */
    			//0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txen.mii1_txen */
    			//0x118 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxdv.mii1_rxdv */
    			//0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd3.mii1_txd3 */
    			//0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd2.mii1_txd2 */
    			//0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd1.mii1_txd1 */
    			//0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd0.mii1_txd0 */
    			//0x12c (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_txclk.mii1_txclk */
    			//0x130 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxclk.mii1_rxclk */
    			//0x134 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd3.mii1_rxd3 */
    			//0x138 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd2.mii1_rxd2 */
    			//0x13c (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd1.mii1_rxd1 */
    			//0x140 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd0.mii1_rxd0 */
    
    		0x10c ( PIN_INPUT | MUX_MODE1 ) /* (H17) gmii1_crs.rmii1_crs_dv */
    		0x110 ( PIN_INPUT | MUX_MODE1 ) /* (J15) gmii1_rxer.rmii1_rxer */
    		0x114 ( PIN_OUTPUT | MUX_MODE1 ) /* (J16) gmii1_txen.rmii1_txen */
    		0x128 ( PIN_OUTPUT | MUX_MODE1 ) /* (K17) gmii1_txd0.rmii1_txd0 */
    		0x124 ( PIN_OUTPUT | MUX_MODE1 ) /* (K16) gmii1_txd1.rmii1_txd1 */
    		0x140 ( PIN_INPUT | MUX_MODE1 ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
    		0x13c ( PIN_INPUT | MUX_MODE1 ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    		0x144 ( PIN_INPUT | MUX_MODE0 ) /* (H18) rmii1_refclk.rmii1_refclk */
    		>;
    	};
    
    	cpsw_sleep: cpsw_sleep {
    		pinctrl-single,pins = <
    			/* Slave 1 reset value */
    			//0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			//0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    
    		0x10c ( ) /* (H17) gmii1_crs.rmii1_crs_dv */
    		0x110 ( ) /* (J15) gmii1_rxer.rmii1_rxer */
    		0x114 ( ) /* (J16) gmii1_txen.rmii1_txen */
    		0x128 ( ) /* (K17) gmii1_txd0.rmii1_txd0 */
    		0x124 ( ) /* (K16) gmii1_txd1.rmii1_txd1 */
    		0x140 ( ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
    		0x13c ( ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    		0x144 ( ) /* (H18) rmii1_refclk.rmii1_refclk */
    
    		>;
    	};
    
    	davinci_mdio_default: davinci_mdio_default {
    		pinctrl-single,pins = <
    			/* MDIO */
    			0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
    			0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)			/* mdio_clk.mdio_clk */
    		>;
    	};
    
    	davinci_mdio_sleep: davinci_mdio_sleep {
    		pinctrl-single,pins = <
    			/* MDIO reset value */
    			0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    		>;
    	};
    
    	mmc1_pins: pinmux_mmc1_pins {
    		pinctrl-single,pins = <
    			0x160 (PIN_INPUT | MUX_MODE7) /* GPIO0_6 */
    		>;
    	};
    
    	emmc_pins: pinmux_emmc_pins {
    		pinctrl-single,pins = <
    			0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
    			0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
    			0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
    			0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
    			0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
    			0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
    			0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
    			0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
    			0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
    			0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
    		>;
    	};
    };
    
    &uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart0_pins>;
    
    	status = "okay";
    };
    
    &usb {
    	status = "okay";
    };
    
    &usb_ctrl_mod {
    	status = "okay";
    };
    
    &usb0_phy {
    	status = "okay";
    };
    
    &usb1_phy {
    	status = "okay";
    };
    
    &usb0 {
    	status = "okay";
    	dr_mode = "peripheral";
    };
    
    &usb1 {
    	status = "okay";
    	dr_mode = "host";
    };
    
    &cppi41dma  {
    	status = "okay";
    };
    
    &i2c0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pins>;
    
    	status = "okay";
    	clock-frequency = <400000>;
    
    	tps: tps@24 {
    		reg = <0x24>;
    	};
    
    	baseboard_eeprom: baseboard_eeprom@50 {
    		compatible = "at,24c256";
    		reg = <0x50>;
    
    		#address-cells = <1>;
    		#size-cells = <1>;
    		baseboard_data: baseboard_data@0 {
    			reg = <0 0x100>;
    		};
    	};
    };
    
    &i2c2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c2_pins>;
    
    	status = "okay";
    	clock-frequency = <100000>;
    
    	cape_eeprom0: cape_eeprom0@54 {
    		compatible = "at,24c256";
    		reg = <0x54>;
    		#address-cells = <1>;
    		#size-cells = <1>;
    		cape0_data: cape_data@0 {
    			reg = <0 0x100>;
    		};
    	};
    
    	cape_eeprom1: cape_eeprom1@55 {
    		compatible = "at,24c256";
    		reg = <0x55>;
    		#address-cells = <1>;
    		#size-cells = <1>;
    		cape1_data: cape_data@0 {
    			reg = <0 0x100>;
    		};
    	};
    
    	cape_eeprom2: cape_eeprom2@56 {
    		compatible = "at,24c256";
    		reg = <0x56>;
    		#address-cells = <1>;
    		#size-cells = <1>;
    		cape2_data: cape_data@0 {
    			reg = <0 0x100>;
    		};
    	};
    
    	cape_eeprom3: cape_eeprom3@57 {
    		compatible = "at,24c256";
    		reg = <0x57>;
    		#address-cells = <1>;
    		#size-cells = <1>;
    		cape3_data: cape_data@0 {
    			reg = <0 0x100>;
    		};
    	};
    };
    
    
    /include/ "tps65217.dtsi"
    
    &tps {
    	/*
    	 * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only
    	 * mode") at poweroff.  Most BeagleBone versions do not support RTC-only
    	 * mode and risk hardware damage if this mode is entered.
    	 *
    	 * For details, see linux-omap mailing list May 2015 thread
    	 *	[PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller
    	 * In particular, messages:
    	 *	http://www.spinics.net/lists/linux-omap/msg118585.html
    	 *	http://www.spinics.net/lists/linux-omap/msg118615.html
    	 *
    	 * You can override this later with
    	 *	&tps {  /delete-property/ ti,pmic-shutdown-controller;  }
    	 * if you want to use RTC-only mode and made sure you are not affected
    	 * by the hardware problems. (Tip: double-check by performing a current
    	 * measurement after shutdown: it should be less than 1 mA.)
    	 */
    	ti,pmic-shutdown-controller;
    
    	regulators {
    		dcdc1_reg: regulator@0 {
    			regulator-name = "vdds_dpr";
    			regulator-always-on;
    		};
    
    		dcdc2_reg: regulator@1 {
    			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
    			regulator-name = "vdd_mpu";
    			regulator-min-microvolt = <925000>;
    			regulator-max-microvolt = <1325000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		dcdc3_reg: regulator@2 {
    			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
    			regulator-name = "vdd_core";
    			regulator-min-microvolt = <925000>;
    			regulator-max-microvolt = <1150000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		ldo1_reg: regulator@3 {
    			regulator-name = "vio,vrtc,vdds";
    			regulator-always-on;
    		};
    
    		ldo2_reg: regulator@4 {
    			regulator-name = "vdd_3v3aux";
    			regulator-always-on;
    		};
    
    		ldo3_reg: regulator@5 {
    			regulator-name = "vdd_1v8";
    			regulator-always-on;
    		};
    
    		ldo4_reg: regulator@6 {
    			regulator-name = "vdd_3v3a";
    			regulator-always-on;
    		};
    	};
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <0>;
    	phy-mode = "rmii";
    //	phy-mode = "mii";
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <1>;
    	phy-mode = "rmii";
    //	phy-mode = "mii";
    };
    
    &mac {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&cpsw_default>;
    	pinctrl-1 = <&cpsw_sleep>;
    	status = "okay";
    };
    
    &davinci_mdio {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&davinci_mdio_default>;
    	pinctrl-1 = <&davinci_mdio_sleep>;
    	status = "okay";
    };
    
    &mmc1 {
    	status = "okay";
    	bus-width = <0x4>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc1_pins>;
    	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    };
    
    &aes {
    	status = "okay";
    };
    
    &sham {
    	status = "okay";
    };
    Please review my RMII config in the attached.

    Please tell me if this is correct or not.

    THanks.

  • Hi Rio,

    The setting the PHY mode is correct, rmii is one of the PHY modes that can be used in a device tree file.

    For those looking at this thread for reference in the future the PHY modes are defined in this file in the Linux kernel source tree.

    Documentation/devicetree/bindings/net/ethernet.txt

    The other question I see is how to fill out the sleep mode for pin mux. You could be just follow the code that is the dtsi file that you are working on. Example, do this for all the pins you have specified for the interface:

    Change this:
    0x10c ( ) /* (H17) gmii1_crs.rmii1_crs_dv */

    to this:
    0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (H17) gmii1_crs.rmii1_crs_dv */

    Best Regards,
    Schuyler
  • Thanks, Schuyler.

    Plz wait me test for those ~_~.

  • Hi Schuyler:

    In order to let my DP82825 Phy driver working on BBB,
    may you guide me how to remove the BBB original Phy driver on the Linux SDK?

    The BBB original Phy is using this one:
    LAN8710A
    www.microchip.com/.../LAN8710A


    BR Rio
  • BTW, I grep this "CONFIG_MICROCHIP_PHY ".
    This config is not set, but why the Microchip 8710 driver is working?
    It's strange to me....


    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/build/arch/arm/configs/tisdk_am335x-evm_defconfig:# CONFIG_MICROCHIP_PHY is not set
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/build/.config:# CONFIG_MICROCHIP_PHY is not set
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/build/drivers/net/phy/Makefile:obj-$(CONFIG_MICROCHIP_PHY) += microchip.o
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/build/drivers/net/phy/Makefile~:obj-$(CONFIG_MICROCHIP_PHY) += microchip.o
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/build/.config.old:# CONFIG_MICROCHIP_PHY is not set
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/source/arch/arm/configs/tisdk_am335x-evm_defconfig:# CONFIG_MICROCHIP_PHY is not set
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/source/.config:# CONFIG_MICROCHIP_PHY is not set
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/source/drivers/net/phy/Makefile:obj-$(CONFIG_MICROCHIP_PHY) += microchip.o
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/source/drivers/net/phy/Makefile~:obj-$(CONFIG_MICROCHIP_PHY) += microchip.o
    ./targetNFS/lib/modules/4.14.79-gbde58ab01e/source/.config.old:# CONFIG_MICROCHIP_PHY is not set
  • Is this one the config for 8710A?
    SMSC = Microchip..


    CONFIG_NET_VENDOR_SMSC=y
    # CONFIG_SMC91X is not set
    # CONFIG_EPIC100 is not set
    # CONFIG_SMC911X is not set
    CONFIG_SMSC911X=y
    # CONFIG_SMSC911X_ARCH_HOOKS is not set
    # CONFIG_SMSC9420 is not set
  • Hi Rio,

    Initially you don't have to remove the original BBB driver. The mdio driver will poll the bus and identify the PHYs on the mdio by their vendor ID. Once the PHY is identified the mdio driver stack compares the Vendor ID against the list of drivers that the kernel has been built for and then uses that driver for the PHY. This should be listed in the kernel boot log. Could you attach (please don't cut and paste it into the thread) the kernel boot log? Please don't cut and paste it into the thread.

    I just looked into the kernel source tree and I see perhaps the issue that you might have. The dp83825 does not appear to have Linux driver for it in the kernel source tree. This is another reason it would be good to look at the kernel log and see how the PHY driver is handling this.

    Best Regards,
    Schuyler
  • Is there potentially an issue given that the RMII pins that Rio is attempting to use overlap the original MII pins that connect to the LAN8710? I think of this issue similar to when we want to use MMC2 port for SDIO instead of eMMC. In that scenario, the eMMC needs to be held in reset such that it doesn't interfere with the bus. I suspect the same may need to be done here as well. Unfortunately though, the reset pin of the LAN8710 is simply connected to the SYS_RESETn signal. So it's not possible to hold the LAN8710 in reset simply by forcing a GPIO low or something along those lines. I suspect you need to physically remove the LAN8710 to get this to work.

    Is the DP83825 more or less the same as DP83822 (e.g. smaller package)? There is driver support for DP83822 in Linux and I have many customers using it. It's under drivers/net/phy/dp83848.c:

    #define TI_DP83848C_PHY_ID 0x20005ca0
    #define TI_DP83620_PHY_ID 0x20005ce0
    #define NS_DP83848C_PHY_ID 0x20005c90
    #define TLK10X_PHY_ID 0x2000a210
    #define TI_DP83822_PHY_ID 0x2000a240

    static struct mdio_device_id __maybe_unused dp83848_tbl[] = {
    { TI_DP83848C_PHY_ID, 0xfffffff0 },
    { NS_DP83848C_PHY_ID, 0xfffffff0 },
    { TI_DP83620_PHY_ID, 0xfffffff0 },
    { TLK10X_PHY_ID, 0xfffffff0 },
    { TI_DP83822_PHY_ID, 0xfffffff0 },
    { }
    };
  • arch=arm
    args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
    baudrate=115200
    board=am335x
    board_name=A335BNLT
    board_rev=00C0
    board_serial=0618BBBK075A
    boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
    boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
    boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
    boot_fdt=try
    boot_fit=0
    boot_net_usb_start=usb start
    boot_prefixes=/ /boot/
    boot_script_dhcp=boot.scr.uimg
    boot_scripts=boot.scr.uimg boot.scr
    boot_targets=mmc0 legacy_mmc0 mmc1 legacy_mmc1 nand0 pxe dhcp
    bootcmd=if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd
    bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
    bootcmd_legacy_mmc0=setenv mmcdev 0; setenv bootpart 0:2 ; run mmcboot
    bootcmd_legacy_mmc1=setenv mmcdev 1; setenv bootpart 1:2 ; run mmcboot
    bootcmd_mmc0=setenv devnum 0; run mmc_boot
    bootcmd_mmc1=setenv devnum 1; run mmc_boot
    bootcmd_nand=run nandboot
    bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
    bootcount=2
    bootdelay=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    bootfile=zImage
    bootm_size=0x10000000
    bootpart=0:2
    bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
    console=ttyO0,115200n8
    cpu=armv7
    dfu_alt_info_emmc=rawemmc raw 0 3751936;boot part 1 1;rootfs part 1 2;MLO fat 1 1;MLO.raw raw 0x100 0x200;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 0x6900;spl-os-args fat 1 1;spl-os-image fat 1 1;u-boot.img fat 1 1;uEnv.txt fat 1 1
    dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x200;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 0x6900;spl-os-args fat 0 1;spl-os-image fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
    dfu_alt_info_nand=SPL part 0 1;SPL.backup1 part 0 2;SPL.backup2 part 0 3;SPL.backup3 part 0 4;u-boot part 0 5;u-boot-spl-os part 0 6;kernel part 0 8;rootfs part 0 9
    dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
    distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
    efi_dtb_prefixes=/ /dtb/ /dtb/current/
    envboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;
    eth1addr=50:8c:b1:0f:7e:ca
    ethact=cpsw
    ethaddr=50:8c:b1:0f:7e:c8
    fdt_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontroladdr=9df11438
    fdtfile=undefined
    findfdt=if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; fi; if test $board_name = A335BNLT; then setenv fdtfile am335x-boneblack.dtb; fi; if test $board_name = BBBW; then setenv fdtfile am335x-boneblack-wireless.dtb; fi; if test $board_name = BBG1; then setenv fdtfile am335x-bonegreen.dtb; fi; if test $board_name = BBGW; then setenv fdtfile am335x-bonegreen-wireless.dtb; fi; if test $board_name = BBBL; then setenv fdtfile am335x-boneblue.dtb; fi; if test $board_name = A33515BB; then setenv fdtfile am335x-evm.dtb; fi; if test $board_name = A335X_SK; then setenv fdtfile am335x-evmsk.dtb; fi; if test $board_name = A335_ICE && test $ice_mii = rmii; then setenv fdtfile am335x-icev2.dtb; fi; if test $board_name = A335_ICE && test $ice_mii = mii; then setenv fdtfile am335x-icev2-prueth.dtb; fi; if test $fdtfile = undefined; then echo WARNING: Could not determine device tree to use; fi;
    finduuid=part uuid mmc ${bootpart} uuid
    fit_bootfile=fitImage
    fit_loadaddr=0x87000000
    ice_mii=mii
    importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
    init_console=if test $board_name = A335_ICE; then setenv console ttyO3,115200n8;else setenv console ttyO0,115200n8;fi;
    kernel_addr_r=0x82000000
    load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
    loadaddr=0x82000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
    loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
    loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
    loadfit=run args_mmc; bootm ${loadaddr}#${fdtfile};
    loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
    loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz
    mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
    mmcboot=mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else run mmcloados;fi;fi;fi;
    mmcdev=0
    mmcloados=run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
    mmcrootfstype=ext4 rootwait
    mtdids=nand0=nand.0
    mtdparts=mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)
    nandargs=setenv bootargs console=${console} ${optargs} root=${nandroot} rootfstype=${nandrootfstype}
    nandboot=echo Booting from nand ...; run nandargs; nand read ${fdtaddr} NAND.u-boot-spl-os; nand read ${loadaddr} NAND.kernel; bootz ${loadaddr} - ${fdtaddr}
    nandroot=ubi0:rootfs rw ubi.mtd=NAND.file-system,2048
    nandrootfstype=ubifs rootwait=1
    netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
    netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
    netloadfdt=tftp ${fdtaddr} ${fdtfile}
    netloadimage=tftp ${loadaddr} ${bootfile}
    nfsopts=nolock
    partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}
    pxefile_addr_r=0x80100000
    ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot} rootfstype=${ramrootfstype}
    ramboot=echo Booting from ramdisk ...; run ramargs; bootz ${loadaddr} ${rdaddr} ${fdtaddr}
    ramdisk_addr_r=0x88080000
    ramroot=/dev/ram0 rw
    ramrootfstype=ext2
    rdaddr=0x88080000
    rootpath=/export/rootfs
    scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
    scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done
    scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
    scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
    scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
    scriptaddr=0x80000000
    soc=am33xx
    spiargs=setenv bootargs console=${console} ${optargs} root=${spiroot} rootfstype=${spirootfstype}
    spiboot=echo Booting from spi ...; run spiargs; sf probe ${spibusno}:0; sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; bootz ${loadaddr}
    spibusno=0
    spiimgsize=0x362000
    spiroot=/dev/mtdblock4 rw
    spirootfstype=jffs2
    spisrcaddr=0xe0000
    static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
    stderr=serial@44e09000
    stdin=serial@44e09000
    stdout=serial@44e09000
    update_to_fit=setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}
    usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
    usbnet_devaddr=50:8c:b1:0f:7e:c8
    vendor=ti
    ver=U-Boot 2018.01-g313dcd69c2 (Dec 16 2018 - 09:01:09 +0000)
    
    Environment size: 9904/131068 bytes
    =>
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    ** Unable to read file boot.scr **
    ** Unable to read file uEnv.txt **
    switch to partitions #0, OK
    mmc0 is current device
    Scanning mmc 0:1...
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3867136 bytes read in 261 ms (14.1 MiB/s)
    36793 bytes read in 16 ms (2.2 MiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8fff4000, end 8fffffb8 ... OK
    
    Starting kernel ...
    
     indicate activity on CPUs
    [    1.264192] NET: Registered protocol family 10
    [    1.265195] Segment Routing with IPv6
    [    1.265258] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    1.265855] NET: Registered protocol family 17
    [    1.266119] Key type dns_resolver registered
    [    1.266306] omap_voltage_late_init: Voltage driver support not added
    [    1.306913] mmcblk0: mmc0:59b4 USDU1 14.9 GiB
    [    1.314609]  mmcblk0: p1 p2
    [    1.344930] random: fast init done
    [    1.353915] tps65217 0-0024: TPS65217 ID 0xe version 1.2
    [    1.368790] mmc1: new high speed MMC card at address 0001
    [    1.374779] mmcblk1: mmc1:0001 M62704 3.56 GiB
    [    1.379508] mmcblk1boot0: mmc1:0001 M62704 partition 1 2.00 MiB
    [    1.385648] mmcblk1boot1: mmc1:0001 M62704 partition 2 2.00 MiB
    [    1.391751] mmcblk1rpmb: mmc1:0001 M62704 partition 3 512 KiB
    [    1.398780]  mmcblk1: p1
    [    1.502858] tda998x 0-0070: found TDA19988
    [    1.508127] tilcdc 4830e000.lcdc: bound 0-0070 (ops tda998x_ops)
    [    1.514232] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.520887] [drm] No driver support for vblank timestamp query.
    [    1.527240] [drm] Cannot find any crtc or sizes
    [    1.532359] [drm] Initialized tilcdc 1.0.0 20121205 for 4830e000.lcdc on minor 0
    [    1.539900] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    1.547299] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
    [    1.555027] hctosys: unable to open rtc device (rtc0)
    [    1.560561] ALSA device list:
    [    1.563726]   No soundcards found.
    [    1.629836] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    1.638770] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    1.686438] devtmpfs: mounted
    [    1.693464] Freeing unused kernel memory: 1024K
    [    2.561399] [drm] Cannot find any crtc or sizes
    [    3.553367] systemd[1]: System time before build time, advancing clock.
    [    3.722011] systemd[1]: systemd 234 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN default-hierarchy=hybrid)
    [    3.744051] systemd[1]: Detected architecture arm.
    
    Welcome to Arago 2018.10!
    
    [    3.913175] systemd[1]: Set hostname to <am335x-evm>.
    [    5.030921] systemd[1]: /lib/systemd/system/gadget-init.service:15: Unknown lvalue 'ExecStopPre' in section 'Service'
    [    6.046829] random: systemd: uninitialized urandom read (16 bytes read)
    [    6.054761] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    6.091166] random: systemd: uninitialized urandom read (16 bytes read)
    [    6.098324] systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    [    6.132732] random: systemd: uninitialized urandom read (16 bytes read)
    [    6.139744] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    6.171391] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password Requests to Wall Directory Watch.
    [    6.212241] systemd[1]: Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [    6.251696] systemd[1]: Listening on Syslog Socket.
    [  OK  ] Listening on Syslog Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [  OK  ] Created slice System Slice.
    [  OK  ] Created slice system-getty.slice.
             Mounting POSIX Message Queue File System...
    [  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
    [  OK  ] Listening on Process Core Dump Socket.
    [  OK  ] Listening on Journal Socket.
             Starting Create list of required ste nodes for the current kernel...
             Mounting Kernel Debug File System...
    [  OK  ] Started Dispatch Password Requests to Console Directory Watch.
             Starting Remount Root and Kernel File Systems...
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice User and Session Slice.
    [    6.678471] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [  OK  ] Reached target Slices.
    [  OK  ] Reached target Paths.
    [  OK  ] Reached target Remote File Systems.
             Mounting Temporary Directory (/tmp)...
             Starting Journal Service...
             Starting Load Kernel Modules...
    [  OK  ] Mounted Kernel Debug File System.
    [  OK  ] Mounted POSIX Message Queue File System.
    [    7.058368] cryptodev: loading out-of-tree module taints kernel.
    [  OK  ] Mounted Temporary Directory (/tmp).
    [    7.081312] cryptodev: driver 1.9 loaded.
    [  OK  ] Started Journal Service.
    [  OK  ] Started Create list of required staice nodes for the current kernel.
    [    7.215753] usbcore: registered new interface driver usbfs
    [  OK  ] Started Remount Root and Kernel File Systems.[    7.223969] usbcore: registered new interface driver hub
    
    [    7.241879] usbcore: registered new device driver usb
    [    7.259656] usbcore: registered new interface driver usbserial
             Starting Rebuild Hardware Database...
             Starting Create System Users...
    [    7.338208] usbcore: registered new interface driver ftdi_sio
    [    7.351735] usbserial: USB Serial support registered for FTDI USB Serial Device
             Starting Flush Journal to Persistent Storage...
    [    7.522578] systemd-journald[75]: Received request to flush runtime journal from PID 1
    [  OK  ] Started Load Kernel Modules.
             Starting Apply Kernel Variables...
             Mounting Kernel Configuration File System...
    [  OK  ] Mounted Kernel Configuration File System.
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Create System Users.
             Starting Create Static Device Nodes in /dev...
    [  OK  ] Started Apply Kernel Variables.
    [  OK  ] Started Create Static Device Nodes in /dev.
             Starting udev Kernel Device Manager...
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
    [  OK  ] Mounted /media/ram.
    [  OK  ] Mounted /var/volatile.
             Starting Load/Save Random Seed...
    [  OK  ] Reached target Local File Systems.
             Starting Rebuild Journal Catalog...
             Starting Create Volatile Files and Directories...
             Starting Rebuild Dynamic Linker Cache...
    [  OK  ] Started Load/Save Random Seed.
    [  OK  ] Started Create Volatile Files and Directories.
             Starting Network Time Synchronization...
             Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Started Rebuild Journal Catalog.
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Reached target System Time Synchronized.
    [  OK  ] Started Rebuild Dynamic Linker Cache.
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Started Rebuild Hardware Database.
             Starting Update is Completed...
             Starting udev Coldplug all Devices...
    [  OK  ] Started Update is Completed.
    [  OK  ] Started udev Coldplug all Devices.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Listening on dropbear.socket.
             Starting Docker Socket for the API.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
             Starting Network Service...
    [  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [  OK  ] Started Daily rotation of log files.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Timers.
    [FAILED] Failed to listen on Docker Socket for the API.
    See 'systemctl status docker.socket' for details.
    [DEPEND] Dependency failed for Docker Application Container Engine.
    [  OK  ] Reached target Sockets.
    [   13.919544] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [  OK  ] Reached target Basic System.
    [   13.994145] omap_rtc 44e3e000.rtc: registered as rtc0
    [   14.076989] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
    [  OK  ] Started Job spooling tools.
    [  OK  ] Started System Logging Service.
    [  OK  ] Started D-Bus System Message Bus.
    [   14.961748] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
    [   15.222586] remoteproc remoteproc0: wkup_m3 is available
    [   15.271682] [drm] Initialized pvr 1.14.3699939 20110701 for 56000000.sgx on minor 1
    [   15.344614] remoteproc remoteproc0: powering up wkup_m3
    [   15.382726] PM: Cannot get wkup_m3_ipc handle
    [   15.413171] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
    [   15.441803] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 224628
    [   15.450202] remoteproc remoteproc0: remote processor wkup_m3 is now up
    [   15.456770] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
    [   15.520499] omap-aes 53500000.aes: will run requests pump with realtime priority
             Starting RPC Bind Service...
             Starting Avahi mDNS/DNS-SD Stack...
    [  OK  ] Reached target Containers.
    [   15.707498] PM: bootloader does not support rtc-only!
             Starting uim-sysfs.service...
             Starting Print notice about GPLv3 packages...
    [  OK  ] Started Periodic Command Scheduler.
    [  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
    [  OK  ] Started Kernel Logging Service.
             Starting Login Service...
    [  OK  ] Started Network Service.
    [  OK  ] Started RPC Bind Service.
    [  OK  ] Found device /dev/ttyS0.
    [  OK  ] Found device /dev/ttyS3.
    [   16.005550] hdmi-audio-codec hdmi-audio-codec.0.auto: ASoC: no source widget found for Playback
    [   16.091673] net eth0: initializing cpsw version 1.12 (0)
    [   16.093489] libphy: PHY 4a101000.mdio:00 not found
    [   16.093499] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19
    [   16.107076] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   16.108175] random: crng init done
    [   16.108183] random: 7 urandom warning(s) missed due to ratelimiting
             Starting Wait for Network to be Configured...
    [  OK  ] Reached target Network.
             Starting Network Name Resolution...
             Starting Lightning Fast Webserver With Light System Requirements[   17.641774] hdmi-audio-codec hdmi-audio-codec.0.auto: ASoC: Failed to add route Playback -> direct -> TX
    ...
             Starting Enable and configure wl18xx bluetooth stack...
             Starting DNS forwarder and DHCP server...
             Starting Permit User Sessions...
             Starting Simple Network Management Protocol (SNMP) Daemon....
    [  OK  ] Started Redis In-Memory Data Store.
    [  OK  ] Started Network Name Resolution.
    [  OK  ] Started Lightning Fast Webserver With Light System Requirements.
    [  OK  ] Started Enable and configure wl18xx bluetooth stack.
    [  OK  ] Started Avahi mDNS/DNS-SD Stack.
    [  OK  ] Started Login Service.
    [  OK  ] Reached target Host and Network Name Lookups.
    [  OK  ] Started NFS status monitor for NFSv2/3 locking..
    [   18.494231] asoc-simple-card sound: i2s-hifi <-> 48038000.mcasp mapping ok
    [   18.494264] asoc-simple-card sound: ASoC: no DMI vendor name!
    [  OK  ] Started Permit User Sessions.
    [  OK  ] Started DNS forwarder and DHCP server.
    [  OK  ] Started Serial Getty on ttyS3.
    [  OK  ] Started Serial Getty on ttyS0.
    [  OK  ] Started Getty on tty1.
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
    [  OK  ] Started uim-sysfs.service.
             Starting rc.pvr.service...
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
    [   19.573434] PVR_K: UM DDK-(3699939) and KM DDK-(3699939) match. [ OK ]
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
    [  OK  ] Started rc.pvr.service.
             Starting weston.service...
    [  OK  ] Started Simple Network Management Protocol (SNMP) Daemon..
    [  OK  ] Stopped Redis In-Memory Data Store.
    [FAILED] Failed to start Redis In-Memory Data Store.
    See 'systemctl status redis.service' for details.
    [  OK  ] Started weston.service.
             Starting telnetd.service...
             Starting Matrix GUI...
    [   24.410297] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null)
    [   24.593514] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
            autoconf
            bash-dev
            bash
            binutils
            cifs-utils
            cpio
            cpp-symlinks
            cpp
            dnsmasq
            dosfstools
            elfutils
            findutils
            g++-symlinks
            g++
            gawk
            gcc-symlinks
            gcc
            gdb
            gdbserver
            gettext
            glmark2
            gstreamer1.0-libav
            gzip
            hidapi
            libdw1
            libelf1
            libgdbm-compat4
            libgdbm-dev
            libgdbm4
            libgettextlib
            libgettextsrc
            libgmp10
            libidn11
            libmavconn
            libmpc3
            libmpfr4
            libreadline-dev
            libreadline7
            libunistring2
            m4-dev
            m4
            make
            mavlink
            mavros-extras
            mavros-msgs
            mavros
            nettle
            python3-pycairo
            rsync
            socketcan-interface
            which
    
    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project http://arago-project.org am335x-evm ttyS0
    
    Arago 2018.10 am335x-evm ttyS0
    
    am335x-evm login: [   27.208409] udc-core: couldn't find an available UDC - added [g_multi] to list of pending drivers
    [   29.232438] pruss 4a300000.pruss: creating PRU cores and other child platform devices
    [   29.744473] remoteproc remoteproc1: 4a334000.pru is available
    [   29.750366] pru-rproc 4a334000.pru: PRU rproc node /ocp/pruss_soc_bus@4a326004/pruss@0/pru@34000 probed successfully
    [   29.767930] remoteproc remoteproc2: 4a338000.pru is available
    [   29.781464] pru-rproc 4a338000.pru: PRU rproc node /ocp/pruss_soc_bus@4a326004/pruss@0/pru@38000 probed successfully
    [   29.847101] am335x-phy-driver 47401300.usb-phy: 47401300.usb-phy supply vcc not found, using dummy regulator
    [   29.966069] am335x-phy-driver 47401b00.usb-phy: 47401b00.usb-phy supply vcc not found, using dummy regulator
    [   30.047793] using random self ethernet address
    [   30.055393] using random host ethernet address
    [   30.059887] using host ethernet address: 50:8C:B1:0F:7E:CA
    [   30.059937] using random self ethernet address
    [   30.077679] using random host ethernet address
    [   30.084262] using host ethernet address: 50:8C:B1:0F:7E:CA
    [   30.089066] usb0: HOST MAC 50:8c:b1:0f:7e:ca
    [   30.115812] usb0: MAC 0e:00:db:a0:4e:e3
    [   30.204722] Mass Storage Function, version: 2009/09/11
    [   30.209911] LUN: removable file: (no medium)
    [   30.231078] LUN: removable read only file: /dev/mmcblk0p1
    [   30.236520] Number of LUNs=1
    [   30.257595] g_multi gadget: Multifunction Composite Gadget
    [   30.273687] g_multi gadget: g_multi ready
    [   30.295334] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    [   30.314621] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
    [   30.329190] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
    [   30.346237] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [   30.359762] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [   30.380789] usb usb1: Product: MUSB HDRC host driver
    [   30.391231] usb usb1: Manufacturer: Linux 4.14.79-gbde58ab01e musb-hcd
    [   30.397799] usb usb1: SerialNumber: musb-hdrc.1
    [   30.417837] hub 1-0:1.0: USB hub found
    [   30.425632] hub 1-0:1.0: 1 port detected
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project http://arago-project.org am335x-evm ttyS0
    
    Arago 2018.10 am335x-evm ttyS0
    
    am335x-evm login: root
    root@am335x-evm:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 50:8C:B1:0F:7E:C8
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:45
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%775872/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:162 errors:0 dropped:0 overruns:0 frame:0
              TX packets:162 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:12300 (12.0 KiB)  TX bytes:12300 (12.0 KiB)
    
    usb0      Link encap:Ethernet  HWaddr 0E:00:DB:A0:4E:E3
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    root@am335x-evm:~# ethtool eth0
    Settings for eth0:
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000000 (0)
    
            Link detected: no
    root@am335x-evm:~#
    

    Hi Schuyler:

    #1. Those 2 attached are my BBB boot arg + Kernel log, please review.

    #2. It's odd to me that I have change the Pinmux from MII to RMII, but, the 8710 still works.

    #3. Please note the  MDIO is not changed regarding the Pinmux.

    #4. May you check the Kernel log with this:

    [ 16.091673] net eth0: initializing cpsw version 1.12 (0)
    [ 16.093489] libphy: PHY 4a101000.mdio:00 not found
    [ 16.093499] net eth0: phy "4a101000.mdio:00" not found on slave 0, err -19

          From this log, I think the 8710 should not be working, but, it still works. Strange to me.

    #5. I shortly summered what I did here:

          Step1: I use the SDK5.02.

          Step2: I change the PinMux for DP83825 used (RMII-1) , the dtsi code you have reviewed previously.

          Step3: I try to remove the  8710 driver, now, I didn't remove it according your saying.

          Step4: I have ported the DP83822 driver, and patch it as DP83825.

          Step5: I rebuild entirely, flash the DTB/Zimage.

          Did I miss anything?

    BR Rio

  • Hi Schuyler:

    1 more question:

    I want to open the DP83822 Phy support in the config file.
    May you tell me where is the MenuConfig option for turning it on?
    I have see the SMSC part, then I look at the TI part, there is no 83822 to select.
    Why?

    BR Rio

    #
    # MII PHY device drivers
    #
    # CONFIG_AMD_PHY is not set
    # CONFIG_AQUANTIA_PHY is not set
    CONFIG_AT803X_PHY=y
    # CONFIG_BCM7XXX_PHY is not set
    # CONFIG_BCM87XX_PHY is not set
    # CONFIG_BROADCOM_PHY is not set
    # CONFIG_CICADA_PHY is not set
    # CONFIG_CORTINA_PHY is not set
    # CONFIG_DAVICOM_PHY is not set
    # CONFIG_DP83822_PHY is not set
    CONFIG_DP83848_PHY=y
    CONFIG_DP83867_PHY=y
    CONFIG_FIXED_PHY=y
  • Hi Schuyler:

    I know where is the menuconfig for DP83822, now, and its .o file has been built.

    Now, I face the dtb error as below, may you guide me how to solve?

    port/linux-4.14.79+gitAUTOINC+bde58ab01e-gbde58ab01e ARCH=arm CROSS_COMPILE=/opt/ti-processor-sdk-linux-am335x-evm-05.02.00.10/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf- am335x-boneblack.dtb
    make: Entering directory `/opt/ti-processor-sdk-linux-am335x-evm-05.02.00.10/board-support/linux-4.14.79+gitAUTOINC+bde58ab01e-gbde58ab01e'
    CHK scripts/mod/devicetable-offsets.h
    DTC arch/arm/boot/dts/am335x-boneblack.dtb
    arch/arm/boot/dts/am335x-boneblack.dtb: Warning (phys_property): Missing property '#phy-cells' in node /ocp/usb@47400000/usb-phy@47401300 or bad phandle (referred from /ocp/usb@47400000/usb@47401000:phys[0])
    arch/arm/boot/dts/am335x-boneblack.dtb: Warning (phys_property): Missing property '#phy-cells' in node /ocp/usb@47400000/usb-phy@47401b00 or bad phandle (referred from /ocp/usb@47400000/usb@47401800:phys[0])
    make: Leaving directory `/opt/ti-processor-sdk-linux-am335x-evm-05.02.00.10/board-support/linux-4.14.79+gitAUTOINC+bde58ab01e-gbde58ab01e'



    BR Rio
  • Hi Schuyler:

    The DTS warning is solved by this patch:

      https://patchwork.kernel.org/patch/10052007/  

    Thanks.

    BTW, I have a strange question need to ask you, let's discuss in the mail.

    BR