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.

DP83640: Linux Device tree node definition

Part Number: DP83640
Other Parts Discussed in Thread: AM3352, TPS65910

We are trying to use a DP83640 PTP transceiver with an AM3352.  The AM3352 has linux kernel version 4.4.32 and device tree is V1.   

Can anyone point me to an example of how to configure device tree such that am3352 MAC will recognize DP83640? 

we are getting these messages in dmesg that indicate it's not seeing the PHY

[ 1.250012] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 1.256163] davinci_mdio 4a101000.mdio: detected phy mask fffffffd
[ 1.263977] libphy: 4a101000.mdio: probed
[ 1.268034] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver NatSemi DP83640
[ 1.277847] cpsw 4a100000.ethernet: No slave[1] phy_id, phy-handle, or fixed-link propert
[ 1.286232] cpsw 4a100000.ethernet: Detected MACID = 50:72:24:e8:24:4b
[ 1.292993] cpsw 4a100000.ethernet: cpts: overflow check period 850

And these messages that indicate the PHY is not present

[ 21.547707] net eth0: initializing cpsw version 1.12 (0)
[ 21.547750] net eth0: initialized cpsw ale version 1.4
[ 21.547764] net eth0: ALE Table size 1024
[ 21.621737] net eth0: phy found : id is : 0x20005ce1
[ 21.621875] libphy: PHY not found
[ 21.621894] net eth0: phy "" not found on slave 1, err -19

  • Hi Robert,

    Thank you for getting in touch with us.

    Here is an example driver we have developed for DP83640 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/dp83640.c

    --
    Regards,
    Gokul.

  • Hi Gokul,

    I think the issue we are having is with the node definitions in the device tree.  I believe the driver is ok.  With that said, I went ahead and replaced the one I had with the one you supplied. It did not change the behavior.   I am able to access the PHYTER using mdio-tool and verified that reading registers 0x02 and 0x03 provide PHY_ID of 0x20005ce1 so, I think the driver is working ok.

    But, as the snippets from dmesg above show, in the first snippet line 4 indicates the correct driver being used.  And in the second snippet, line 4 identifies the correct PHY (based on PHY_ID) but the very next line indicates PHY not found.   and I researched line 6 and err -19 indicates "device not present".   so I really feel it is our device tree that is not correct.  

    Do you have any information on device tree set up for DP83640 PHYTER?   (note our device tree is V1)

    Thank you!

    Robert Henson

  • Hi Robert,

    The AM3352 team is better to answer your question. Let me loop in them to answer your question.

    --
    Regards,
    Gokul.

  • Hi,

    Which TI SDK are you using? Could you please attach the DTS file and if possible the portion of the schematic schematic that shows the CPSW and the PHY?

    Best Regards,

    Schuyler

  • TI SDK is 4.4 I believe   and dts is below and schematic is attached

    /*
    * 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.
    */
    /dts-v1/;

    #include "am33xx.dtsi"
    #include <dt-bindings/interrupt-controller/irq.h>

    / {
    model = "GPS Source AM335x VCAM";
    compatible = "ti,am335x-vcam", "ti,am33xx";

    cpus {
    cpu@0 {
    cpu0-supply = <&vdd1_reg>;
    };
    };

    memory {
    device_type = "memory";
    reg = <0x80000000 0x10000000>; /* 256 MB */
    };

    in_3p3: fixedregulator@0 {
    compatible = "regulator-fixed";
    regulator-name = "in_3p3";
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-boot-on;
    };
    };

    &am33xx_pinmux {
    pinctrl-names = "default";

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

    i2c1_pins: pinmux_i2c1_pins {
    pinctrl-single,pins = <
    0x10c (PIN_INPUT_PULLUP | MUX_MODE3) /* mii1_crs.i2c1_sda */
    0x110 (PIN_INPUT_PULLUP | MUX_MODE3) /* mii1_rxerr.i2c1_scl */
    >;
    };

    spi0_pins: pinmux_spi0_pins {
    pinctrl-single,pins = <
    0x150 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_sclk.spi0_sclk */
    0x154 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d0.spi0_d0 */
    0x158 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */
    0x15c (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
    >;
    };

    spi1_pins: pinmux_spi1_pins {
    pinctrl-single,pins = <
    0x164 (PIN_INPUT_PULLUP | MUX_MODE4) /* ecap0_in_pwm0_out.spi1_sclk */
    0x168 (PIN_INPUT_PULLUP | MUX_MODE4) /* uart0_ctsn.spi1_d0 */
    0x16c (PIN_INPUT_PULLUP | MUX_MODE4) /* uart0_rtsn.spi1_d1 */
    0x1b0 (PIN_INPUT_PULLUP | MUX_MODE4) /* xdma_event_intr0.spi1_cs1 */
    >;
    };

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

    uart1_pins: pinmux_uart1_pins {
    pinctrl-single,pins = <
    0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
    0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
    >;
    };

    uart2_pins: pinmux_uart2_pins {
    pinctrl-single,pins = <
    0x100 (PIN_INPUT_PULLUP | MUX_MODE3) /* mmc0_clk.uart1_rxd */
    0x104 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* mmc0_cmd.uart1_txd */
    >;
    };

    uart3_pins: pinmux_uart3_pins {
    pinctrl-single,pins = <
    0xf8 (PIN_INPUT_PULLUP | MUX_MODE3) /* mmc0_dat1.uart3_rxd */
    0xfc (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* mmc0_dat0.uart3_txd */
    >;
    };


    nandflash_pins_s0: nandflash_pins_s0 {
    pinctrl-single,pins = <
    0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
    0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
    0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
    0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
    0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
    0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
    0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
    0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
    0x20 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad8.gpmc_ad8 */
    0x24 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad9.gpmc_ad9 */
    0x28 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad10.gpmc_ad10 */
    0x2c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad11.gpmc_ad11 */
    0x30 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad12.gpmc_ad12 */
    0x34 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad13.gpmc_ad13 */
    0x38 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad14.gpmc_ad14 */
    0x3c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad15.gpmc_ad15 */
    0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
    0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */
    0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
    0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
    0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
    0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
    0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
    >;
    };

    cpsw_default: cpsw_default {
    pinctrl-single,pins = <
    /* Slave 1 */
    0x108 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* PHY_COL */
    0x10C (PIN_INPUT_PULLDOWN | MUX_MODE0) /* PHY_CRS_DV */
    0x110 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* PHY_RX_ER */
    0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.rgmii1_tctl */
    0x118 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxdv.rgmii1_rctl */
    0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.rgmii1_td3 */
    0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.rgmii1_td2 */
    0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.rgmii1_td1 */
    0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.rgmii1_td0 */
    0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txclk.rgmii1_tclk */
    0x130 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxclk.rgmii1_rclk */
    0x134 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxd3.rgmii1_rd3 */
    0x138 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxd2.rgmii1_rd2 */
    0x13c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxd1.rgmii1_rd1 */
    0x140 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxd0.rgmii1_rd0 */
    >;
    };

    cpsw_sleep: cpsw_sleep {
    pinctrl-single,pins = <
    /* Slave 1 reset value */
    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)
    >;
    };

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

    dcan0_pins_default: dcan0_pins_default {
    pinctrl-single,pins = <
    0x178 (PIN_OUTPUT | MUX_MODE2) /* uart1_ctsn.d_can0_tx */
    0x17c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* uart1_rtsn.d_can0_rx */
    >;
    };
    };

    &uart0 {
    pinctrl-names = "default";
    pinctrl-0 = <&uart0_pins>;

    status = "okay";
    };

    &uart1 {
    pinctrl-names = "default";
    pinctrl-0 = <&uart1_pins>;

    status = "okay";
    };

    &uart2 {
    pinctrl-names = "default";
    pinctrl-0 = <&uart2_pins>;

    status = "okay";
    };

    &uart3 {
    pinctrl-names = "default";
    pinctrl-0 = <&uart3_pins>;

    status = "okay";
    };

    &i2c0 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c0_pins>;

    status = "okay";
    clock-frequency = <400000>;

    tps: tps@2d {
    reg = <0x2d>;
    };

    at24@50 {
    compatible = "at24,24c256";
    pagesize = <64>;
    reg = <0x50>;
    };
    };

    &cppi41dma {
    status = "okay";
    };

    &i2c1 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c1_pins>;

    status = "okay";
    clock-frequency = <100000>;

    at24@50 {
    compatible = "at24,24c256";
    pagesize = <64>;
    reg = <0x50>;
    };
    };

    &spi0 {
    pinctrl-names = "default";
    pinctrl-0 = <&spi0_pins>;
    disable-dma;

    status = "okay";

    flash: flash@0 {
    #address-cells = <1>;
    #size-cells = <1>;
    compatible = "spansion,s25fl512s", "jedec,spi-nor";
    reg = <0>;
    spi-max-frequency = <48000000>;
    m25p,fast-read;

    partition@0 {
    label = "NOR.user";
    reg = <0x00000000 0x04000000>;
    };
    };
    };

    &spi1 {
    pinctrl-names = "default";
    pinctrl-0 = <&spi1_pins>;

    status = "okay";

    spivcam@1{
    compatible = "linux,spivcam";
    reg = <1>;
    spi-max-frequency = <250000>;
    };

    };

    &elm {
    status = "okay";
    };

    &gpmc {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&nandflash_pins_s0>;
    ranges = <0 0 0x08000000 0x1000000>; /* CS0: 16MB for NAND */
    nand@0,0 {
    compatible = "ti,omap2-nand";
    reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
    interrupt-parent = <&gpmc>;
    interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
    <1 IRQ_TYPE_NONE>; /* termcount */
    rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
    ti,nand-ecc-opt = "bch8";
    ti,elm-id = <&elm>;
    nand-bus-width = <16>;
    gpmc,device-width = <1>;
    gpmc,sync-clk-ps = <0>;
    gpmc,cs-on-ns = <0>;
    gpmc,cs-rd-off-ns = <44>;
    gpmc,cs-wr-off-ns = <44>;
    gpmc,adv-on-ns = <6>;
    gpmc,adv-rd-off-ns = <34>;
    gpmc,adv-wr-off-ns = <44>;
    gpmc,we-on-ns = <0>;
    gpmc,we-off-ns = <40>;
    gpmc,oe-on-ns = <0>;
    gpmc,oe-off-ns = <54>;
    gpmc,access-ns = <64>;
    gpmc,rd-cycle-ns = <82>;
    gpmc,wr-cycle-ns = <82>;
    gpmc,bus-turnaround-ns = <0>;
    gpmc,cycle2cycle-delay-ns = <0>;
    gpmc,clk-activation-ns = <0>;
    gpmc,wr-access-ns = <40>;
    gpmc,wr-data-mux-bus-ns = <0>;
    /* MTD partition table */
    /* All SPL-* partitions are sized to minimal length
    * which can be independently programmable. For
    * NAND flash this is equal to size of erase-block */
    #address-cells = <1>;
    #size-cells = <1>;
    partition@0 {
    label = "NAND.SPL";
    reg = <0x00000000 0x000020000>;
    };
    partition@1 {
    label = "NAND.SPL.backup1";
    reg = <0x00020000 0x00020000>;
    };
    partition@2 {
    label = "NAND.SPL.backup2";
    reg = <0x00040000 0x00020000>;
    };
    partition@3 {
    label = "NAND.SPL.backup3";
    reg = <0x00060000 0x00020000>;
    };
    partition@4 {
    label = "NAND.u-boot";
    reg = <0x00080000 0x00100000>;
    };
    partition@5 {
    label = "NAND.u-boot-env";
    reg = <0x00180000 0x00020000>;
    };
    partition@6 {
    label = "NAND.u-boot-env.backup1";
    reg = <0x001A0000 0x00020000>;
    };
    partition@7 {
    label = "NAND.boot0";
    reg = <0x001C0000 0x00800000>;
    };
    partition@8 {
    label = "NAND.root0";
    reg = <0x009C0000 0x08000000>;
    };
    partition@9 {
    label = "NAND.boot1";
    reg = <0x089C0000 0x00800000>;
    };
    partition@10 {
    label = "NAND.root1";
    reg = <0x091C0000 0x08000000>;
    };
    partition@11 {
    label = "NAND.recovery";
    reg = <0x111C0000 0x0A000000>;
    };
    partition@12 {
    label = "NAND.user";
    reg = <0x1B1C0000 0x0A000000>;
    };
    };
    };

    #include "tps65910.dtsi"

    &tps {
    vcc1-supply = <&in_3p3>;
    vcc2-supply = <&in_3p3>;
    vcc3-supply = <&in_3p3>;
    vcc4-supply = <&in_3p3>;
    vcc5-supply = <&in_3p3>;
    vcc6-supply = <&in_3p3>;
    vcc7-supply = <&in_3p3>;
    vccio-supply = <&in_3p3>;

    regulators {
    vrtc_reg: regulator@0 {
    regulator-always-on;
    };

    vio_reg: regulator@1 {
    regulator-always-on;
    };

    vdd1_reg: regulator@2 {
    /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
    regulator-name = "vdd_core";
    regulator-min-microvolt = <912500>;
    regulator-max-microvolt = <1150000>;
    regulator-boot-on;
    regulator-always-on;
    };

    vdd2_reg: regulator@3 {
    regulator-always-on;
    };

    vdd3_reg: regulator@4 {
    regulator-always-on;
    };

    vdig1_reg: regulator@5 {
    regulator-always-on;
    };

    vdig2_reg: regulator@6 {
    regulator-always-on;
    };

    vpll_reg: regulator@7 {
    regulator-always-on;
    };

    vdac_reg: regulator@8 {
    regulator-always-on;
    };

    vaux1_reg: regulator@9 {
    regulator-always-on;
    };

    vaux2_reg: regulator@10 {
    regulator-always-on;
    };

    vaux33_reg: regulator@11 {
    regulator-always-on;
    };

    vmmc_reg: regulator@12 {
    regulator-always-on;
    };
    };
    };

    &mac {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&cpsw_default>;
    pinctrl-1 = <&cpsw_sleep>;
    slaves = <1>;
    status = "okay";
    };

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


    ethphy1: ethernet-phy@1 {
    /*compatible = "national,dp83640", "ethernet-phy-ieee802.3-c22";*/
    compatible = "NatSemi,DP83640";
    device_type = "ethernet-phy";
    reg = <1>;
    dp83640,perout-pins = <2>;
    dp83640,extts-pins = <3 4 8 9 10 11>;
    dp83640,calibrate-pin = <1>;
    status = "okay";
    };

    &cpsw_emac0 {
    phy_id = <&davinci_mdio>, <1>;
    phy-handle = <&ethphy1>;
    phy-mode = "mii";
    phy-connection-type = "mii";
    status = "okay";
    };

    &sham {
    status = "okay";
    };

    &aes {
    status = "okay";
    };

    &dcan0 {
    pinctrl-names = "default";
    pinctrl-0 = <&dcan0_pins_default>;
    status = "okay";
    };

    &wkup_m3_ipc {
    ti,scale-data-fw = "am335x-evm-scale-data.bin";
    };

    &rtc {
    clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
    clock-names = "ext-clk", "int-clk";
    };

    &sgx {
    status = "okay";
    };

    phy_to_am3352_conn.pdf

  • Any other information you need besides the below?

  • Hi,

    One suggestion is to try defining the ethernet1 node in the davinci_mdio node. For example, the two nodes would have this heirarchy. I am just showing the node names and not the full node elements.

    &davinci_mdio { 

             ethphy1: ethernet-phy@1 {

             };

    };

    Best Regards,

    Schuyler

  • I modified the dts file to embed the ethernet node within the davinci_mdio node as follows

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

        ethphy1: ethernet-phy@1 {
        compatible = "NatSemi,DP83640";
        device_type = "ethernet-phy";
        reg = <1>;
        dp83640,perout-pins = <2>;
        dp83640,extts-pins = <3 4 8 9 10 11>;
        dp83640,calibrate-pin = <1>;
        status = "okay";
        };

    };

    The errors in dmesg are still the  same as what is posted above.

    specifically

    [ 1.266475] cpsw 4a100000.ethernet: No slave[1] phy_id, phy-handle, or fixed-link property

    and

    [ 21.190590] net eth0: phy found : id is : 0x20005ce1
    [ 21.190695] libphy: PHY not found
    [ 21.190709] net eth0: phy "" not found on slave 1, err -19

  • Hi,

    The DT node looks good. Could you please attach (not cut and paste) the complete boot log? Also after booting could you please attach the output of ethtool eth0 please?

    Best Regards,

    Schuyler

  • boot.log and ethtool.out  both attached

    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    [    0.000000] Linux version 4.4.32-rt41-ge26c84b0ac (vcamdev@gps-rd-linux-10) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #1 PREEMPT RT Thu May 26 10:01:31 MDT 2022
    [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] Machine model: GPS Source AM335x VCAM
    [    0.000000] cma: Reserved 48 MiB at 0x8b800000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] On node 0 totalpages: 65536
    [    0.000000] free_area_init_node: node 0, pgdat c08a306c, node_mem_map cfda1000
    [    0.000000]   Normal zone: 576 pages used for memmap
    [    0.000000]   Normal zone: 0 pages reserved
    [    0.000000]   Normal zone: 65536 pages, LIFO batch:15
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (neon )
    [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [    0.000000] pcpu-alloc: [0] 0
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64960
    [    0.000000] Kernel command line: root=ubi0:rootfs rw ubi.mtd=NAND.root0,2048 rootfstype=ubifs rootwait=1 console=ttyS3,115200n8
    [    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Memory: 201004K/262144K available (6023K kernel code, 330K rwdata, 2220K rodata, 244K init, 326K bss, 11988K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xd0800000 - 0xff800000   ( 752 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0814fc4   (8244 kB)
    [    0.000000]       .init : 0xc0815000 - 0xc0852000   ( 244 kB)
    [    0.000000]       .data : 0xc0852000 - 0xc08a4be0   ( 331 kB)
    [    0.000000]        .bss : 0xc08a4be0 - 0xc08f654c   ( 327 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  RCU kthread priority: 1.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] OMAP clockevent source: timer2 at 25000000 Hz
    [    0.000025] sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 85899345900ns
    [    0.000042] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76450417870 ns
    [    0.000051] OMAP clocksource: timer1 at 25000000 Hz
    [    0.000257] clocksource_probe: no matching clocksources found
    [    0.000507] Console: colour dummy device 80x30
    [    0.118814] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
    [    0.118822] pid_max: default: 32768 minimum: 301
    [    0.118995] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.119005] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.119984] Initializing cgroup subsys io
    [    0.120012] Initializing cgroup subsys memory
    [    0.120061] Initializing cgroup subsys devices
    [    0.120077] Initializing cgroup subsys freezer
    [    0.120091] Initializing cgroup subsys perf_event
    [    0.120104] Initializing cgroup subsys pids
    [    0.120205] CPU: Testing write buffer coherency: ok
    [    0.120704] Setting up static identity map for 0x800082c0 - 0x80008318
    [    0.124285] devtmpfs: initialized
    [    0.141390] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.160555] omap_hwmod: debugss: _wait_target_disable failed
    [    0.204668] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.210292] pinctrl core: initialized pinctrl subsystem
    [    0.212301] NET: Registered protocol family 16
    [    0.215565] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.238858] cpuidle: using governor ladder
    [    0.268833] cpuidle: using governor menu
    [    0.274614] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
    [    0.275369] OMAP GPIO hardware version 0.1
    [    0.276356] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
    [    0.277706] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
    [    0.279293] gpiochip_add: registered GPIOs 96 to 127 on device: gpio
    [    0.287640] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nandflash_pins_s0, deferring probe
    [    0.290446] hw-breakpoint: debug architecture 0x4 unsupported.
    [    0.331563] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.332071] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator@0[0]'
    [    0.336369] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [    0.336597] pps_core: LinuxPPS API ver. 1 registered
    [    0.336608] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.336650] PTP clock support registered
    [    0.336733] EDAC MC: Ver: 3.0.0
    [    0.338210] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.339890] clocksource: Switched to clocksource timer1
    [    0.355615] NET: Registered protocol family 2
    [    0.356752] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.356821] TCP bind hash table entries: 2048 (order: 3, 49152 bytes)
    [    0.356956] TCP: Hash tables configured (established 2048 bind 2048)
    [    0.357072] UDP hash table entries: 256 (order: 2, 16384 bytes)
    [    0.357124] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
    [    0.357410] NET: Registered protocol family 1
    [    0.358089] RPC: Registered named UNIX socket transport module.
    [    0.358111] RPC: Registered udp transport module.
    [    0.358119] RPC: Registered tcp transport module.
    [    0.358128] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.358176] PCI: CLS 0 bytes, default 64
    [    0.358780] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [    0.368555] futex hash table entries: 256 (order: 1, 8192 bytes)
    [    0.380955] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.382045] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
    [    0.382292] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.402366] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
    [    0.402413] io scheduler noop registered
    [    0.402432] io scheduler deadline registered
    [    0.402867] io scheduler cfq registered (default)
    [    0.404366] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    0.407585] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [    0.498194] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    0.504132] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
    [    0.505789] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 159, base_baud = 3000000) is a 8250
    [    0.507280] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 160, base_baud = 3000000) is a 8250
    [    0.508743] console [ttyS3] disabled
    [    0.508911] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 161, base_baud = 3000000) is a 8250
    [    1.114349] console [ttyS3] enabled
    [    1.120467] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    1.127339] [drm] Initialized drm 1.1.0 20060810
    [    1.135676] SPI disable dma: 1
    [    1.140205] m25p80 spi1.0: s25fl512s (65536 Kbytes)
    [    1.145152] 1 ofpart partitions found on MTD device spi1.0
    [    1.150669] Creating 1 MTD partitions on "spi1.0":
    [    1.155495] 0x000000000000-0x000004000000 : "NOR.user"
    [    1.162887] SPI disable dma: 0
    [    1.167418] CAN device driver interface
    [    1.172883] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=164)
    [    1.239930] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    1.246083] davinci_mdio 4a101000.mdio: detected phy mask fffffffd
    [    1.253290] libphy: 4a101000.mdio: probed
    [    1.257345] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver unknown
    [    1.266434] cpsw 4a100000.ethernet: No slave[1] phy_id, phy-handle, or fixed-link property
    [    1.274764] cpsw 4a100000.ethernet: Detected MACID = 50:72:24:e8:17:d3
    [    1.281525] cpsw 4a100000.ethernet: cpts: overflow check period 850
    [    1.289705] mousedev: PS/2 mouse device common for all mice
    [    1.297712] rtc rtc0: 44e3e000.rtc: dev (254:0)
    [    1.297767] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
    [    1.305563] i2c /dev entries driver
    [    1.311635] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [    1.319026] cpuidle: enable-method property 'ti,am3352' found operations
    [    1.326841] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
    [    1.357984] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
    [    1.375150]  remoteproc0: wkup_m3 is available
    [    1.379650]  remoteproc0: Note: remoteproc is still under development and considered experimental.
    [    1.388900]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [    1.399609]  remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
    [    1.408299]  remoteproc0: Falling back to user helper
    [    1.410906] ip_tables: (C) 2000-2006 Netfilter Core Team
    [    1.411077] Initializing XFRM netlink socket
    [    1.412278] NET: Registered protocol family 10
    [    1.414288] ip6_tables: (C) 2000-2006 Netfilter Core Team
    [    1.414372] sit: IPv6 over IPv4 tunneling driver
    [    1.415487] NET: Registered protocol family 17
    [    1.415532] NET: Registered protocol family 15
    [    1.415545] can: controller area network core (rev 20120528 abi 9)
    [    1.415659] NET: Registered protocol family 29
    [    1.415710] can: raw protocol (rev 20120528)
    [    1.415724] can: broadcast manager protocol (rev 20120528 t)
    [    1.415745] can: netlink gateway (rev 20130117) max_hops=1
    [    1.416198] omap_voltage_late_init: Voltage driver support not added
    [    1.430887] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [    1.430905] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.430921] gpiochip_find_base: found new base at 510
    [    1.431147] gpiochip_add: registered GPIOs 510 to 511 on device: omap-gpmc
    [    1.432678] omap2-nand 8000000.nand: GPIO lookup for consumer rb
    [    1.432689] omap2-nand 8000000.nand: using device tree for GPIO lookup
    [    1.432737] of_get_named_gpiod_flags: parsed 'rb-gpios' property of node '/ocp/gpmc@50000000/nand@0,0[0]' - status (0)
    [    1.432963] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xb3
    [    1.432969] nand: Micron MT29F8G16ADBDAH4
    [    1.432977] nand: 1024 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [    1.433019] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [    1.433172] 13 ofpart partitions found on MTD device 8000000.nand
    [    1.433179] Creating 13 MTD partitions on "8000000.nand":
    [    1.433226] 0x000000000000-0x000000020000 : "NAND.SPL"
    [    1.435283] 0x000000020000-0x000000040000 : "NAND.SPL.backup1"
    [    1.436939] 0x000000040000-0x000000060000 : "NAND.SPL.backup2"
    [    1.438527] 0x000000060000-0x000000080000 : "NAND.SPL.backup3"
    [    1.450931] 0x000000080000-0x000000180000 : "NAND.u-boot"
    [    1.452941] 0x000000180000-0x0000001a0000 : "NAND.u-boot-env"
    [    1.454618] 0x0000001a0000-0x0000001c0000 : "NAND.u-boot-env.backup1"
    [    1.456286] 0x0000001c0000-0x0000009c0000 : "NAND.boot0"
    [    1.460919] 0x0000009c0000-0x0000089c0000 : "NAND.root0"
    [    1.561207] 0x0000089c0000-0x0000091c0000 : "NAND.boot1"
    [    1.565588] 0x0000091c0000-0x0000111c0000 : "NAND.root1"
    [    1.661230] 0x0000111c0000-0x00001b1c0000 : "NAND.recovery"
    [    1.770853] 0x00001b1c0000-0x0000251c0000 : "NAND.victory"
    [    1.860181] tps65910 0-002d: No interrupt support, no core IRQ
    [    1.866343] tps65910-gpio tps65910-gpio: ti,en-gpio-sleep not specified
    [    1.866370] gpiochip_find_base: found new base at 504
    [    1.866556] gpiochip_add: registered GPIOs 504 to 509 on device: tps65910
    [    1.891480] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [    1.898551] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    1.905840] vdd_core: supplied by in_3p3
    [    1.912026] ubi0: attaching mtd9
    [    2.300272] ubi0: scanning is finished
    [    2.311440] ubi0: attached mtd9 (name "NAND.root0", size 128 MiB)
    [    2.317589] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
    [    2.324519] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [    2.331254] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
    [    2.338249] ubi0: good PEBs: 1024, bad PEBs: 0, corrupted PEBs: 0
    [    2.344372] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
    [    2.351631] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 26188872
    [    2.360633] ubi0: available PEBs: 0, total reserved PEBs: 1024, PEBs reserved for bad PEB handling: 160
    [    2.370084] ubi0: background thread "ubi_bgt0d" started, PID 140
    [    2.376645] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
    [    2.400099] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 142
    [    2.450566] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
    [    2.458033] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [    2.468002] UBIFS (ubi0:0): FS size: 81137664 bytes (77 MiB, 639 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
    [    2.478488] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
    [    2.484360] UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID 80C5096F-B507-478A-999A-E7324F59E4DC, small LPT model
    [    2.496797] VFS: Mounted root (ubifs filesystem) on device 0:14.
    [    2.504051] devtmpfs: mounted
    [    2.507475] Freeing unused kernel memory: 244K (c0815000 - c0852000)
    [    2.685563] systemd[1]: System time before build time, advancing clock.
    [    2.742700] random: systemd: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    2.768867] random: systemd: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    2.792564] systemd[1]: systemd 229 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
    [    2.811750] systemd[1]: Detected architecture arm.
    [    2.842681] systemd[1]: Set hostname to <am335x-vcam>.
    [    3.065437] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    3.108608] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    3.158612] random: systemd: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    3.209293] random: systemd: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    3.219301] random: systemd: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    3.229831] random: systemd: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    3.292612] random: systemd: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    3.320443] random: systemd: uninitialized urandom read (16 bytes read, 8 bits of entropy available)
    [    3.531459] systemd[1]: [/etc/systemd/system/gpss_daemons.service:4] Failed to add dependency on rpcbind, ignoring: Invalid argument
    [    3.544864] systemd[1]: [/etc/systemd/system/norfs.service:4] Failed to add dependency on rpcbind, ignoring: Invalid argument
    [    3.557412] systemd[1]: [/etc/systemd/system/loadmodules.service:4] Failed to add dependency on rpcbind, ignoring: Invalid argument
    [    3.575250] systemd[1]: [/etc/systemd/system/resetbootcount.service:4] Failed to add dependency on swupdate, ignoring: Invalid argument
    [    3.652492] systemd[1]: Reached target Swap.
    [    3.671723] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [    3.703855] systemd[1]: Listening on Journal Socket.
    [    3.731011] systemd[1]: Listening on udev Control Socket.
    [    3.750873] systemd[1]: Listening on Journal Socket (/dev/log).
    [    3.770814] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
    [    3.800475] systemd[1]: Reached target Remote File Systems.
    [    3.820758] systemd[1]: Listening on Syslog Socket.
    [    3.840800] systemd[1]: Listening on udev Kernel Socket.
    [    3.860957] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    3.890483] systemd[1]: Reached target Paths.
    [    3.937111] systemd[1]: Created slice User and Session Slice.
    [    3.962396] systemd[1]: Created slice System Slice.
    [    3.989602] systemd[1]: Starting Remount Root and Kernel File Systems...
    [    4.056053] systemd[1]: Starting Create list of required static device nodes for the current kernel...
    [    4.234827] systemd[1]: Mounting Temporary Directory...
    [    4.339127] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" stops
    [    4.376781] systemd[1]: Starting Synchronize System and HW clocks...
    [    4.450762] systemd[1]: Reached target Slices.
    [    4.487143] systemd[1]: Starting Journal Service...
    [    4.547017] systemd[1]: Mounting Debug File System...
    [    4.617715] systemd[1]: Mounting POSIX Message Queue File System...
    [    4.697011] systemd[1]: Starting Setup Virtual Console...
    [    4.776482] systemd[1]: Starting Load Kernel Modules...
    [    4.812959] systemd[1]: Created slice system-getty.slice.
    [    4.871686] systemd[1]: Listening on Network Service Netlink Socket.
    [    4.906972] cryptodev: driver 1.8 loaded.
    [    4.923329] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [    5.011618] systemd[1]: Mounted Debug File System.
    [    5.050907] systemd[1]: Mounted POSIX Message Queue File System.
    [    5.070801] systemd[1]: Mounted Temporary Directory.
    [    5.092368] systemd[1]: Started Journal Service.
    [    7.792552] systemd-journald[196]: Received request to flush runtime journal from PID 1
    [   11.536573]  remoteproc0: powering up wkup_m3
    [   11.543075]  remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217228
    [   11.688228]  remoteproc0: remote processor wkup_m3 is now up
    [   11.688309] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
    [   17.279786] ubi1: attaching mtd0
    [   17.739283] ubi1: scanning is finished
    [   18.040271] spivcam_init() driver name:<spivcam>  major:153
    [   18.045933]  ... register_chrdev() status:0
    [   18.053151] ubi1: attached mtd0 (name "NOR.user", size 64 MiB)
    [   18.053161] ubi1: PEB size: 262144 bytes (256 KiB), LEB size: 262016 bytes
    [   18.053167] ubi1: min./max. I/O unit sizes: 1/256, sub-page size 1
    [   18.053173] ubi1: VID header offset: 64 (aligned 64), data offset: 128
    [   18.053178] ubi1: good PEBs: 256, bad PEBs: 0, corrupted PEBs: 0
    [   18.053186] ubi1: user volume: 1, internal volumes: 1, max. volumes count: 128
    [   18.053196] ubi1: max/mean erase counter: 11/5, WL threshold: 4096, image sequence number: 1817718074
    [   18.053202] ubi1: available PEBs: 2, total reserved PEBs: 254, PEBs reserved for bad PEB handling: 0
    [   18.059457] ubi1: background thread "ubi_bgt1d" started, PID 506
    [   18.190002] UBIFS (ubi1:0): background thread "ubifs_bgt1_0" started, PID 510
    [   18.462361]  ... class_create() status:0
    [   18.466542] spivcam_probe()
    [   18.518991]  ... spi_register_driver() status:0
    [   18.539602] ... driver_attach() status:0
    [   18.590306] --------------------------------------------
    [   18.710194] GPIO interrupt handler registered!
    [   18.718548] Kernel Thread : ExpBdPoll Started
    [   18.720063] IN THREAD FUNCTION
    [   18.747305] netlink_init()
    [   19.303937] PM: bootloader does not support rtc-only!
    [   19.910207] net eth0: initializing cpsw version 1.12 (0)
    [   19.910252] net eth0: initialized cpsw ale version 1.4
    [   19.910267] net eth0: ALE Table size 1024
    [   20.000486] net eth0: phy found : id is : 0x20005ce1
    [   20.000619] libphy: PHY  not found
    [   20.000638] net eth0: phy "" not found on slave 1, err -19
    [   20.030972] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   20.270288] UBIFS (ubi1:0): recovery needed
    [   22.001004] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [   22.001090] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [   24.093355] UBIFS (ubi1:0): recovery completed
    [   24.093571] UBIFS (ubi1:0): UBIFS: mounted UBI device 1, volume 0, name "usr.local"
    [   24.093590] UBIFS (ubi1:0): LEB size: 262016 bytes (255 KiB), min./max. I/O unit sizes: 8 bytes/256 bytes
    [   24.093607] UBIFS (ubi1:0): FS size: 62883840 bytes (59 MiB, 240 LEBs), journal size 3144192 bytes (2 MiB, 12 LEBs)
    [   24.093619] UBIFS (ubi1:0): reserved for root: 2970159 bytes (2900 KiB)
    [   24.093640] UBIFS (ubi1:0): media format: w4/r0 (latest is w4/r0), UUID 23317C45-D054-4B4A-A4AC-D46F1D36B63F, small LPT model
    [   24.604040] ubi2: attaching mtd13
    [   25.226735] ubi2: scanning is finished
    [   25.227096] ubi2 error: ubi_read_volume_table: the layout volume was not found
    [   25.227607] ubi2 error: ubi_attach_mtd_dev: failed to attach mtd13, error -22
    [   25.299752] UBIFS error (pid: 671): cannot open "ubi2:victory", error -19
    [   29.707158] ubi2: attaching mtd12
    [   30.276384] ubi2: scanning is finished
    [   30.305576] ubi2: attached mtd12 (name "NAND.recovery", size 160 MiB)
    [   30.305615] ubi2: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
    [   30.305627] ubi2: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [   30.305639] ubi2: VID header offset: 2048 (aligned 2048), data offset: 4096
    [   30.305650] ubi2: good PEBs: 1280, bad PEBs: 0, corrupted PEBs: 0
    [   30.305662] ubi2: user volume: 1, internal volumes: 1, max. volumes count: 128
    [   30.305677] ubi2: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 802730578
    [   30.305689] ubi2: available PEBs: 0, total reserved PEBs: 1280, PEBs reserved for bad PEB handling: 160
    [   30.308362] ubi2: background thread "ubi_bgt2d" started, PID 741
    [   30.388117] UBIFS (ubi2:0): background thread "ubifs_bgt2_0" started, PID 744
    [   30.448707] UBIFS (ubi2:0): UBIFS: mounted UBI device 2, volume 0, name "recovery"
    [   30.448752] UBIFS (ubi2:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [   30.448773] UBIFS (ubi2:0): FS size: 128626688 bytes (122 MiB, 1013 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
    [   30.448785] UBIFS (ubi2:0): reserved for root: 0 bytes (0 KiB)
    [   30.448807] UBIFS (ubi2:0): media format: w4/r0 (latest is w4/r0), UUID E139B26E-BFFB-4ECF-AE04-BC4A42A55D83, small LPT model
    [   30.533377] UBIFS (ubi2:0): un-mount UBI device 2
    [   30.533444] UBIFS (ubi2:0): background thread "ubifs_bgt2_0" stops
    [   30.574923] ubi2: detaching mtd12
    [   30.579612] ubi2: mtd12 is detached

    root@am335x-vcam:/tmp# ethtool eth0
    Settings for eth0:
            Supported ports: [ TP AUI BNC MII FIBRE ]
            Supported link modes:   10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
            Advertised pause frame use: No
            Advertised auto-negotiation: Yes
            Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                 100baseT/Half 100baseT/Full
            Link partner advertised pause frame use: Symmetric
            Link partner advertised auto-negotiation: Yes
            Speed: 100Mb/s
            Duplex: Full
            Port: MII
            PHYAD: 1
            Transceiver: external
            Auto-negotiation: on
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000000 (0)
    
            Link detected: yes

  • Hello Robert

    Schuyler is out of office for the next 2 weeks. Looks like he missed addressing this post earlier. 

    I will see if this can be assigned to someone else, but chances are this may need to wait till late first week of July. We regret the delay 

    Regards

    Mukul 

  • Hi,

    The boot log shows that the PHY is reporting not found but ethtool is reporting that eth0 has a link at 100Mbps detected. Are you connected to a network and obtaining an ip address from a DHCP server?

    The earlier boot shows the PHY being identified as a national semiconductor and now only this ID 0x20005ce1 is being printed. What is the expected PHY ID of the PHY on the board? 

    Best Regards,

    Schuyler

  • 0x20005ce1 is the correct PHY ID for the DP83640 PHYTER 

  • we are connected to a network (with a DHCP server) but we are not obtaining an IP address

    The PHY is establishing the link layer connection. However, scoping the bus from the processor to the PHY shows no activity on the data lines or data available line.

  • Hi,

    Does the PHY clock lines show any activity? This could be a pin mux issue. Was the pin mux tool used for creating the DTS pin mux for cpsw port in use?

    What does "ethtool -S eth0" show? This shows the MAC statistics. This command will list counts for RX errors, packets TX/RX counts etc.  The first checkpoint is that Ideally we expect the TX frame count to be non-zero to show packets being sent. What you have measured though says that the count will likely be zero. 

    If the pin mux is incorrect no data will be sent or received. It looks like the MDIO is working as expected since it indicates a link and link speeds. 

    Best Regards,

    Schuyler 

  • Hi Schuyler, Thank you for the reply!!!

    I did not use a pin mux tool.  I "inherited" a partially complete DTS file and modified it following the pin mux config as defined in the AM3352 data sheet. 

    Currently the Pin Mux for cpsw looks like

      cpsw_default: cpsw_default {
    pinctrl-single,pins = <
    /* Slave 1 */
    0x108 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* PHY_RX_ER */
    0x10C (PIN_INPUT_PULLDOWN | MUX_MODE0) /* PHY_COL */
    0x110 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* PHY_CRS_DV */
    0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.rgmii1_tctl */
    0x118 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxdv.rgmii1_rctl */
    0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.rgmii1_td3 */
    0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.rgmii1_td2 */
    0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.rgmii1_td1 */
    0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.rgmii1_td0 */
    0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txclk.rgmii1_tclk */
    0x130 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxclk.rgmii1_rclk */
    0x134 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxd3.rgmii1_rd3 */
    0x138 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxd2.rgmii1_rd2 */
    0x13c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxd1.rgmii1_rd1 */
    0x140 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_rxd0.rgmii1_rd0 */
    >;
    };

    Here is the output of ethtool -S eth0

    # ethtool -S eth0
    NIC statistics:
    Good Rx Frames: 0
    Broadcast Rx Frames: 0
    Multicast Rx Frames: 0
    Pause Rx Frames: 0
    Rx CRC Errors: 0
    Rx Align/Code Errors: 0
    Oversize Rx Frames: 0
    Rx Jabbers: 0
    Undersize (Short) Rx Frames: 0
    Rx Fragments: 0
    Rx Octets: 0
    Good Tx Frames: 0
    Broadcast Tx Frames: 0
    Multicast Tx Frames: 0
    Pause Tx Frames: 0
    Deferred Tx Frames: 0
    Collisions: 0
    Single Collision Tx Frames: 0
    Multiple Collision Tx Frames: 0
    Excessive Collisions: 0
    Late Collisions: 0
    Tx Underrun: 0
    Carrier Sense Errors: 0
    Tx Octets: 0
    Rx + Tx 64 Octet Frames: 0
    Rx + Tx 65-127 Octet Frames: 0
    Rx + Tx 128-255 Octet Frames: 0
    Rx + Tx 256-511 Octet Frames: 0
    Rx + Tx 512-1023 Octet Frames: 0
    Rx + Tx 1024-Up Octet Frames: 0
    Net Octets: 0
    Rx Start of Frame Overruns: 0
    Rx Middle of Frame Overruns: 0
    Rx DMA Overruns: 0
    Rx DMA chan: head_enqueue: 1
    Rx DMA chan: tail_enqueue: 127
    Rx DMA chan: pad_enqueue: 0
    Rx DMA chan: misqueued: 0
    Rx DMA chan: desc_alloc_fail: 0
    Rx DMA chan: pad_alloc_fail: 0
    Rx DMA chan: runt_receive_buf: 0
    Rx DMA chan: runt_transmit_buf: 0
    Rx DMA chan: empty_dequeue: 0
    Rx DMA chan: busy_dequeue: 0
    Rx DMA chan: good_dequeue: 0
    Rx DMA chan: requeue: 0
    Rx DMA chan: teardown_dequeue: 0
    Tx DMA chan: head_enqueue: 0
    Tx DMA chan: tail_enqueue: 0
    Tx DMA chan: pad_enqueue: 0
    Tx DMA chan: misqueued: 0
    Tx DMA chan: desc_alloc_fail: 0
    Tx DMA chan: pad_alloc_fail: 0
    Tx DMA chan: runt_receive_buf: 0
    Tx DMA chan: runt_transmit_buf: 0
    Tx DMA chan: empty_dequeue: 0
    Tx DMA chan: busy_dequeue: 0
    Tx DMA chan: good_dequeue: 0
    Tx DMA chan: requeue: 0
    Tx DMA chan: teardown_dequeue: 0

  • Hi,

    The MAC level statistics confirm your observation on the bus. The first thing to look at is that the TX frame count is zero. Are you seeing any NETDEV watchdog timeouts?

    Could you please post ifconfig -a?

    Best Regards,

    Schuyler

  • Hi Schuyler, 

    I have not seen NETDEV watchdog timeouts. when I search dmesg for NETDEV, this is all I find:

    # dmesg|grep -i netdev
    [ 19.902004] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

    Here is output from ifconfig -a

    # ifconfig -a
    can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    NOARP MTU:16 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:10
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    Interrupt:164

    eth0 Link encap:Ethernet HWaddr 50:72:24:E8:17:D3
    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:176

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1%132688/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536 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:1
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

    sit0 Link encap:IPv6-in-IPv4
    NOARP MTU:1480 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:1
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

  • Hi,

    I am not sure what to recommend next. Could you please post a scope capture of the tx clock line between the MAC and the PHY?

    Also please remove the cable and use ethtool to verify the link goes down and then plug in the cable and verify the link is re-established?

    Best Regards,

    Schuyler