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.

AM6548: How to customize the PHY setting in PRU ethernet?

Part Number: AM6548
Other Parts Discussed in Thread: SYSCONFIG

Our board had two ethernet ports, one with am65-cpsw-nuss , the other was from PRU, am65-cpsw-nuss works fine, but the PRU ethernet didnt work. It can display eth1 when we type ifconfig in console , but the link led status were all wrong.

Our PRU ethernet connect a DP83822IRHBR (PHY chip) with MII interface,

My question is: how to customize this DP83822 to fit this PRU ethernet and make it work?

Its schematic diagram is as follow:

now its setting in DTS list as follow:

 

/* Dual Ethernet application node on PRU-ICSSG0 */

        icssg0_eth: icssg0-eth {

                compatible = "ti,am654-icssg-prueth";

                pinctrl-names = "default";

                pinctrl-0 = <&icssg0_mii_pins_default>;

                sram = <&msmc_ram>;

                ti,prus = <&pru0_0>, <&rtu0_0>, <&tx_pru0_0>, <&pru0_1>, <&rtu0_1>, <&tx_pru0_1>;

                firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",

                                "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",

                                "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",

                                "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",

                                "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",

                                "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";

 

                ti,pruss-gp-mux-sel = <2>,      /* MII mode */

                                      <2>,

                                      <2>,

                                      <2>,      /* MII mode */

                                      <2>,

                                      <2>;

 

                mii-g-rt = <&icssg0_mii_g_rt>;

                mii-rt = <&icssg0_mii_rt>;

                iep = <&icssg0_iep0>,  <&icssg0_iep1>;

 

                interrupt-parent = <&icssg0_intc>;

                interrupts = <24 0 2>, <25 1 3>;

                interrupt-names = "tx_ts0", "tx_ts1";

 

                dmas = <&main_udmap 0xc100>, /* egress slice 0 */

                       <&main_udmap 0xc101>, /* egress slice 0 */

                       <&main_udmap 0xc102>, /* egress slice 0 */

                       <&main_udmap 0xc103>, /* egress slice 0 */

                       <&main_udmap 0xc104>, /* egress slice 1 */

                       <&main_udmap 0xc105>, /* egress slice 1 */

                       <&main_udmap 0xc106>, /* egress slice 1 */

                       <&main_udmap 0xc107>, /* egress slice 1 */

 

                       <&main_udmap 0x4100>, /* ingress slice 0 */

                       <&main_udmap 0x4101>, /* ingress slice 1 */

                       <&main_udmap 0x4102>, /* mgmnt rsp slice 0 */

                       <&main_udmap 0x4103>; /* mgmnt rsp slice 1 */

                dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",

                            "tx1-0", "tx1-1", "tx1-2", "tx1-3",

                            "rx0", "rx1",

                            "rxmgm0", "rxmgm1";

 

                icssg0_emac0: ethernet-mii0 {

                        phy-handle = <&icssg0_phy0>;

                        phy-mode = "mii";

                        syscon-rgmii-delay = <&scm_conf 0x4100>;

                        /* Filled in by bootloader */

                        local-mac-address = [00 00 00 00 00 00];

                };

       /*

                icssg0_emac1: ethernet-mii1 {

                        phy-handle = <&icssg0_phy1>;

                        phy-mode = "rgmii-rxid";

                        syscon-rgmii-delay = <&scm_conf 0x4104>;

                        /* Filled in by bootloader

                        local-mac-address = [00 00 00 00 00 00];

                };*/

        };

 

……….

icssg0_mdio_pins_default: icssg0-mdio-pins-default {

                pinctrl-single,pins = <

                        AM65X_IOPAD(0x0294, PIN_INPUT, 0) /* (AE26) PRG0_MDIO0_MDIO */

                        AM65X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AE28) PRG0_MDIO0_MDC */

                >;

        };

 

    icssg0_mii_pins_default: icssg0-mii-pins-default {

       pinctrl-single,pins = <

           AM65X_IOPAD(0x0284, PIN_INPUT_PULLDOWN, 1) /* (AC24) PRG0_PRU1_GPO16.pr0_mii_mt0_clk */

                        AM65X_IOPAD(0x0280, PIN_OUTPUT_PULLDOWN, 0) /* (AE27) PRG0_PRU1_GPO15.pr0_mii0_txen */

                        AM65X_IOPAD(0x027c, PIN_OUTPUT_PULLDOWN, 0) /* (AD24) PRG0_PRU1_GPO14.pr0_mii0_txd3 */

                        AM65X_IOPAD(0x0278, PIN_OUTPUT_PULLDOWN, 0) /* (AD25) PRG0_PRU1_GPO13.pr0_mii0_txd2 */

                        AM65X_IOPAD(0x0274, PIN_OUTPUT_PULLDOWN, 0) /* (AC25) PRG0_PRU1_GPO12.pr0_mii0_txd1 */

                        AM65X_IOPAD(0x0270, PIN_OUTPUT_PULLDOWN, 0) /* (AB24) PRG0_PRU1_GPO11.pr0_mii0_txd0 */

                        AM65X_IOPAD(0x0204, PIN_INPUT_PULLDOWN, 1) /* (Y24) PRG0_PRU0_GPO4.pr0_mii0_rxdv */

                        AM65X_IOPAD(0x020c, PIN_INPUT_PULLDOWN, 1) /* (Y25) PRG0_PRU0_GPO6.pr0_mii_mr0_clk */

                        AM65X_IOPAD(0x0200, PIN_INPUT_PULLDOWN, 1) /* (AA27) PRG0_PRU0_GPO3.pr0_mii0_rxd3 */

                        AM65X_IOPAD(0x01fc, PIN_INPUT_PULLDOWN, 1) /* (W24) PRG0_PRU0_GPO2.pr0_mii0_rxd2 */

                        AM65X_IOPAD(0x021c, PIN_INPUT_PULLDOWN, 1) /* (U25) PRG0_PRU0_GPO10.pr0_mii0_crs */

                        AM65X_IOPAD(0x0208, PIN_INPUT_PULLDOWN, 1) /* (V28) PRG0_PRU0_GPO5.pr0_mii0_rxer */

                        AM65X_IOPAD(0x01f8, PIN_INPUT_PULLDOWN, 1) /* (W25) PRG0_PRU0_GPO1.pr0_mii0_rxd1 */

                        AM65X_IOPAD(0x01f4, PIN_INPUT_PULLDOWN, 1) /* (V24) PRG0_PRU0_GPO0.pr0_mii0_rxd0 */

                        AM65X_IOPAD(0x0218, PIN_INPUT_PULLDOWN, 1) /* (V26) PRG0_PRU0_GPO9.pr0_mii0_col */

                        AM65X_IOPAD(0x0214, PIN_INPUT_PULLDOWN, 1) /* (V27) PRG0_PRU0_GPO8.pr0_mii0_rxlink */

       >;

    };

   

    icssg0_iep0_pins_default: icssg0-iep0-pins-default {

                pinctrl-single,pins = <

                        AM65X_IOPAD(0x0240, PIN_INPUT, 2) /* (U24) PRG0_PRU0_GPO19.PRG0_IEP0_EDC_SYNC_OUT0 */

                >;

        };

 

………

&icssg0_mdio {

        status = "okay";

        pinctrl-names = "default";

        pinctrl-0 = <&icssg0_mdio_pins_default>;

        #address-cells = <1>;

        #size-cells = <0>;

 

        icssg0_phy0: ethernet-phy@1 {

                reg = <1>;

                ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;

                ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;

        };

/*

        icssg0_phy1: ethernet-phy@3 {

                reg = <3>;

                ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;

                ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;

        };*/

};

 

&icssg0_iep0 {

        pinctrl-names = "default";

        pinctrl-0 = <&icssg0_iep0_pins_default>;

};

 

&icssg0_eth {

        compatible = "ti,am654-icssg-prueth-sr1";

        ti,prus = <&pru0_0>, <&rtu0_0>, <&pru0_1>, <&rtu0_1>;

        firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",

                        "ti-pruss/am65x-rtu0-prueth-fw.elf",

                        "ti-pruss/am65x-pru1-prueth-fw.elf",

                        "ti-pruss/am65x-rtu1-prueth-fw.elf";

        ti,pruss-gp-mux-sel = <2>,      /* MII mode */

                              <2>,

                              <2>,      /* MII mode */

                              <2>;

};

 

&icssg0_iep0 {

        interrupt-parent = <&icssg0_intc>;

        interrupts = <7 7 8>;

        interrupt-names = "iep_cap_cmp";

};

 

&icssg0_iep1 {

        interrupt-parent = <&icssg0_intc>;

        interrupts = <56 8 9>;

        interrupt-names = "iep_cap_cmp";

};

 

&tx_pru0_0 {

        status = "enabled";

};

  • Hello Kenn,

    I EXPECT THE AM6548 APPLICATIONS TEAM TO PROVIDE MORE INPUT BUT IN THE MEANTIME:

    First off, can you ping to PC successfully via the PRU Ethernet or No (ie PRU, am65-cpsw-nuss)?

    Also, can you please attach your full Boot Log and DTS please?

    Potential issues with your DP83822 PHY config:

       Based on example PHY driver documentation such as found here:

        board-support/linux-5.10.41+gitAUTOINC+4c2eade9f7-g4c2eade9f7/Documentation/devicetree/bindings/net/ti,dp83822.yaml

        PHY Delay should be explicitly specified (and also in picosec, sometimes users inadvertently note in usec). 

    You can perhaps configure for internal delay for test purposes as follows:

    >>>

    rx-internal-delay-ps = <1>;

    <<<

    rx-internal-delay-ps:
      description: |
            DP83822 PHY only.
            Setting this property to a non-zero number sets the RX internal delay
            for the PHY.  The internal delay for the PHY is fixed to 3.5ns relative
            to receive data.

    The internal delay support for the DP83822 has been recently added in the linux-5.8.y upstream driver.  But in this case the internal delay "OF API" is handled by the helper function  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/dp83822.c?h=v5.9-rc3

    Can you please check these and advise of your feedback?

    Thank you very much for your patience.

    Sincerely,

    Chris

  • Thanks Chris,

    PRU ethernet on our board didn't work normally, it can't ping to PC successfully,  but the other ethernet(am65-cpsw-nuss)  on our board works fine.

    Bootlog related the PHY driver(DP83822) was listed as follow:

    root@am65xx-evm:~#dmesg | grep DP83822

    [ 11.438167] davinci_mdio b032400.mdio: phy[1]: device b032400.mdio:01, driver TI DP83822
    [ 20.297092] TI DP83822 b032400.mdio:01: attached PHY driver [TI DP83822] (mii_bus:phy_addr=b032400.mdio:01, irq=POLL)

    The whole bootlog lists as follow:

    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.41-g4c2eade9f7 (kenn@Precision-5530) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #17 SMP PREEMPT Tue Mar 29 23:16:10 CST 2022
    [    0.000000] Machine model: Texas Instruments AM654 Base Board
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a1000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a1100000, compatible id shared-dma-pool
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000bfffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   empty
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x000000009e7fffff]
    [    0.000000]   node   0: [mem 0x000000009e800000-0x00000000a20fffff]
    [    0.000000]   node   0: [mem 0x00000000a2100000-0x00000000bfffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff]
    [    0.000000] cma: Failed to reserve 512 MiB
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: Trusted OS migration not required
    [    0.000000] psci: SMC Calling Convention v1.2
    [    0.000000] percpu: Embedded 2 pages/cpu s49880 r8192 d73000 u131072
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] Built 1 zonelists, mobility grouping off.  Total pages: 16368
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),128k(ospi.env),128k(ospi.env.backup),1m(ospi.sysfw),57216k@8m(ospi.rootfs),128k(ospi.phypattern) root=PARTUUID=91f7860a-02 rw rootfstype=ext4 rootwait
    [    0.000000] Dentry cache hash table entries: 131072 (order: 4, 1048576 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 3, 524288 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] Memory: 967104K/1048576K available (10816K kernel code, 1348K rwdata, 4288K rodata, 1856K init, 754K bss, 81472K reserved, 0K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu:     RCU event tracing is enabled.
    [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
    [    0.000000]  Trampoline variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [    0.000000] GICv3: 960 SPIs implemented
    [    0.000000] GICv3: 0 Extended SPIs implemented
    [    0.000000] GICv3: Distributor has no Range Selector support
    [    0.000000] GICv3: 16 PPIs implemented
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: allocated 1048576 Devices @83800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x000000008fe60000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x000000008fe70000
    [    0.000000] random: get_random_bytes called from start_kernel+0x32c/0x4d4 with crng_init=0
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000006] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008684] Console: colour dummy device 80x25
    [    0.013292] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.024016] pid_max: default: 32768 minimum: 301
    [    0.028852] LSM: Security Framework initializing
    [    0.033669] Mount-cache hash table entries: 8192 (order: 0, 65536 bytes, linear)
    [    0.041278] Mountpoint-cache hash table entries: 8192 (order: 0, 65536 bytes, linear)
    [    0.051748] rcu: Hierarchical SRCU implementation.
    [    0.057119] Platform MSI: msi-controller@1820000 domain created
    [    0.063542] PCI/MSI: /bus@100000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.072956] EFI services will not be available.
    [    0.077931] smp: Bringing up secondary CPUs ...
    [    0.083806] Detected VIPT I-cache on CPU1
    [    0.083848] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [    0.083864] GICv3: CPU1: using allocated LPI pending table @0x0000000083300000
    [    0.083934] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.084081] smp: Brought up 1 node, 2 CPUs
    [    0.113596] SMP: Total of 2 processors activated.
    [    0.118433] CPU features: detected: 32-bit EL0 Support
    [    0.123732] CPU features: detected: CRC32 instructions
    [    0.142330] CPU: All CPU(s) started at EL2
    [    0.146568] alternatives: patching kernel code
    [    0.152422] devtmpfs: initialized
    [    0.167093] KASLR disabled due to lack of seed
    [    0.171977] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.182003] futex hash table entries: 512 (order: -1, 32768 bytes, linear)
    [    0.189326] pinctrl core: initialized pinctrl subsystem
    [    0.195280] DMI not present or invalid.
    [    0.199938] NET: Registered protocol family 16
    [    0.205167] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
    [    0.212491] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.220517] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.229241] thermal_sys: Registered thermal governor 'step_wise'
    [    0.229248] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.236088] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.249847] ASID allocator initialised with 65536 entries
    [    0.299981] HugeTLB registered 16.0 GiB page size, pre-allocated 0 pages
    [    0.306890] HugeTLB registered 512 MiB page size, pre-allocated 0 pages
    [    0.313683] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.322889] cryptd: max_cpu_qlen set to 1000
    [    0.331943] k3-chipinfo 43000014.chipid: Family:AM65X rev:SR2.0 JTAGID[0x1bb5a02f] Detected
    [    0.341420] vcc3v3_io: supplied by evm_12v0
    [    0.346794] iommu: Default domain type: Translated
    [    0.352333] SCSI subsystem initialized
    [    0.356842] mc: Linux media interface: v0.10
    [    0.361267] videodev: Linux video capture interface: v2.00
    [    0.366987] pps_core: LinuxPPS API ver. 1 registered
    [    0.372088] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.381474] PTP clock support registered
    [    0.385539] EDAC MC: Ver: 3.0.0
    [    0.390114] FPGA manager framework
    [    0.393721] Advanced Linux Sound Architecture Driver Initialized.
    [    0.401170] clocksource: Switched to clocksource arch_sys_counter
    [    0.407969] VFS: Disk quotas dquot_6.6.0
    [    0.412133] VFS: Dquot-cache hash table entries: 8192 (order 0, 65536 bytes)
    [    0.426982] NET: Registered protocol family 2
    [    0.431638] IP idents hash table entries: 16384 (order: 1, 131072 bytes, linear)
    [    0.440415] tcp_listen_portaddr_hash hash table entries: 4096 (order: 0, 65536 bytes, linear)
    [    0.449370] TCP established hash table entries: 8192 (order: 0, 65536 bytes, linear)
    [    0.457421] TCP bind hash table entries: 8192 (order: 1, 131072 bytes, linear)
    [    0.465019] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.471719] UDP hash table entries: 2048 (order: 0, 65536 bytes, linear)
    [    0.478717] UDP-Lite hash table entries: 2048 (order: 0, 65536 bytes, linear)
    [    0.486309] NET: Registered protocol family 1
    [    0.491429] RPC: Registered named UNIX socket transport module.
    [    0.497542] RPC: Registered udp transport module.
    [    0.502404] RPC: Registered tcp transport module.
    [    0.507236] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.513858] PCI: CLS 0 bytes, default 64
    [    0.518706] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.532810] Initialise system trusted keyrings
    [    0.537662] workingset: timestamp_bits=46 max_order=14 bucket_order=0
    [    0.550132] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.556795] NFS: Registering the id_resolver key type
    [    0.562037] Key type id_resolver registered
    [    0.566357] Key type id_legacy registered
    [    0.570557] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.577443] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.585265] 9p: Installing v9fs 9p2000 file system support
    [    0.646138] Key type asymmetric registered
    [    0.650361] Asymmetric key parser 'x509' registered
    [    0.655412] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
    [    0.663011] io scheduler mq-deadline registered
    [    0.667663] io scheduler kyber registered
    [    0.674601] pinctrl-single 4301c000.pinctrl: 70 pins, size 280
    [    0.681234] pinctrl-single 11c000.pinctrl: 185 pins, size 740
    [    0.687452] pinctrl-single 11c2e8.pinctrl: 9 pins, size 36
    [    0.697111] pwm-backlight backlight: supply power not found, using dummy regulator
    [    0.708349] k3-ringacc 2b800000.ringacc: Failed to get MSI domain
    [    0.714826] k3-ringacc 3c000000.ringacc: Failed to get MSI domain
    [    0.725579] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.741580] panel-simple display0: supply power not found, using dummy regulator
    [    0.759732] brd: module loaded
    [    0.770964] loop: module loaded
    [    0.775054] megasas: 07.714.04.00-rc1
    [    0.782446] libphy: Fixed MDIO Bus: probed
    [    0.788278] tun: Universal TUN/TAP device driver, 1.6
    [    0.794335] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.800780] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.806914] sky2: driver version 1.30
    [    0.812010] VFIO - User Level meta-driver version: 0.3
    [    0.818339] i2c /dev entries driver
    [    0.823564] sdhci: Secure Digital Host Controller Interface driver
    [    0.829918] sdhci: Copyright(c) Pierre Ossman
    [    0.834870] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.842362] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.848637] ti-sci bus@100000:bus@28380000:bus@42040000:dmsc: invalid resource
    [    0.856300] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.864406] optee: probing for conduit method.
    [    0.869013] optee: revision 3.12 (3d47a131)
    [    0.869638] optee: initialized driver
    [    0.880530] NET: Registered protocol family 17
    [    0.885290] 9pnet: Installing 9P2000 support
    [    0.889745] Key type dns_resolver registered
    [    0.894384] Loading compiled-in X.509 certificates
    [    0.908273] pwm-backlight backlight: supply power not found, using dummy regulator
    [    0.917392] k3-ringacc 2b800000.ringacc: Failed to get MSI domain
    [    0.923946] k3-ringacc 3c000000.ringacc: Failed to get MSI domain
    [    0.932211] panel-simple display0: supply power not found, using dummy regulator
    [    0.945583] ti-sci bus@100000:bus@28380000:bus@42040000:dmsc: invalid resource
    [    0.953233] ti-sci bus@100000:bus@28380000:bus@42040000:dmsc: ABI: 3.1 (firmware rev 0x0015 '21.5.0--v2021.05 (Terrific Llam')
    [    1.026136] random: fast init done
    [    1.040707] davinci-mcasp 2b10000.mcasp: IRQ common not found
    [    1.049817] omap_i2c 42120000.i2c: bus 0 rev0.12 at 400 kHz
    [    1.056595] omap_i2c 40b00000.i2c: bus 1 rev0.12 at 100 kHz
    [    1.064795] omap_i2c 2010000.i2c: bus 3 rev0.12 at 400 kHz
    [    1.071518] omap_i2c 2030000.i2c: bus 5 rev0.12 at 100 kHz
    [    1.078426] ti-sci-intr bus@100000:bus@28380000:bus@42040000:interrupt-controller2: Interrupt Router 156 domain created
    [    1.089752] ti-sci-intr bus@100000:interrupt-controller0: Interrupt Router 100 domain created
    [    1.098728] ti-sci-intr bus@100000:main-navss:interrupt-controller1: Interrupt Router 182 domain created
    [    1.108842] ti-sci-inta 33d00000.interrupt-controller: Interrupt Aggregator domain 179 created
    [    1.121890] pwm-backlight backlight: supply power not found, using dummy regulator
    [    1.132676] k3-ringacc 2b800000.ringacc: Ring Accelerator probed rings:286, gp-rings[96,32] sci-dev-id:195
    [    1.142626] k3-ringacc 2b800000.ringacc: dma-ring-reset-quirk: disabled
    [    1.149425] k3-ringacc 2b800000.ringacc: RA Proxy rev. 66348100, num_proxies:64
    [    1.160357] k3-ringacc 3c000000.ringacc: Ring Accelerator probed rings:818, gp-rings[304,100] sci-dev-id:187
    [    1.170517] k3-ringacc 3c000000.ringacc: dma-ring-reset-quirk: disabled
    [    1.177320] k3-ringacc 3c000000.ringacc: RA Proxy rev. 66348100, num_proxies:64
    [    1.185969] omap8250 42300000.serial: unable to register 8250 port
    [    1.192337] omap8250 42300000.serial: PM domain pd:150 will not be powered off
    [    1.200935] omap8250 40a00000.serial: unable to register 8250 port
    [    1.208247] printk: console [ttyS2] disabled
    [    1.212711] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 29, base_baud = 3000000) is a 8250
    [    1.221521] printk: console [ttyS2] enabled
    [    1.221521] printk: console [ttyS2] enabled
    [    1.229992] printk: bootconsole [ns16550a0] disabled
    [    1.229992] printk: bootconsole [ns16550a0] disabled
    [    1.241300] omap8250 2810000.serial: unable to register 8250 port
    [    1.248275] 2820000.serial: ttyS4 at MMIO 0x2820000 (irq = 31, base_baud = 3000000) is a 8250
    [    1.257563] panel-simple display0: supply power not found, using dummy regulator
    [    1.268900] [drm] Initialized tidss 1.0.0 20180215 for 4a00000.dss on minor 0
    [    2.045272] Console: switching to colour frame buffer device 100x30
    [    2.067552] tidss 4a00000.dss: [drm] fb0: tidssdrmfb frame buffer device
    [    2.125287] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    2.133035] libphy: 46000f00.mdio: probed
    [    2.138850] davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver unknown
    [    2.147022] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA00102, cpsw version 0x6BA80102 Ports: 2 quirks:00000000
    [    2.162894] am65-cpts 310d0000.cpts: CPTS ver 0x4e8a010b, freq:200000000, add_val:4 pps:0
    [    2.173579] davinci-mcasp 2b10000.mcasp: IRQ common not found
    [    2.173627] mmc0: CQHCI version 5.10
    [    2.195786] omap-mailbox 31f80000.mailbox: omap mailbox rev 0x66fc7100
    [    2.202874] omap-mailbox 31f81000.mailbox: omap mailbox rev 0x66fc7100
    [    2.211172] ti-udma 285c0000.dma-controller: Channels: 28 (tchan: 14, rchan: 14, gp-rflow: 16)
    [    2.221232] mmc0: SDHCI controller on 4fa0000.mmc [4fa0000.mmc] using ADMA 64-bit
    [    2.232957] ti-udma 31150000.dma-controller: Channels: 119 (tchan: 53, rchan: 66, gp-rflow: 64)
    [    2.249725] 42300000.serial: ttyS0 at MMIO 0x42300000 (irq = 15, base_baud = 3000000) is a 8250
    [    2.259871] 40a00000.serial: ttyS1 at MMIO 0x40a00000 (irq = 17, base_baud = 6000000) is a 8250
    [    2.262612] mmc0: new high speed SDHC card at address 59b4
    [    2.274410] 2810000.serial: ttyS3 at MMIO 0x2810000 (irq = 30, base_baud = 3000000) is a 8250
    [    2.274813] mmcblk0: mmc0:59b4 USD   7.51 GiB
    [    2.292317]  mmcblk0: p1 p2
    [    2.298878] spi-nor spi8.0: mt25ql512a (65536 Kbytes)
    [    2.306078] ads7846 spi3.0: supply vcc not found, using dummy regulator
    [    2.313278] ads7846 spi3.0: touchscreen, irq 339
    [    2.318256] input: ADS7846 Touchscreen as /devices/platform/bus@100000/2110000.spi/spi_master/spi3/spi3.0/input/input0
    [    2.369186] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    2.376860] libphy: 46000f00.mdio: probed
    [    2.382434] davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver unknown
    [    2.390596] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA00102, cpsw version 0x6BA80102 Ports: 2 quirks:00000000
    [    2.404593] am65-cpsw-nuss 46000000.ethernet: set new flow-id-base 48
    [    2.411915] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 1.4
    [    2.419158] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
    [    2.426191] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a010b, freq:200000000, add_val:4 pps:0
    [    2.438577] davinci-mcasp 2b10000.mcasp: IRQ common not found
    [    2.453226] debugfs: Directory 'pd:121' with parent 'pm_genpd' already present!
    [    2.460716] debugfs: Directory 'pd:120' with parent 'pm_genpd' already present!
    [    2.468675] debugfs: Directory 'pd:146' with parent 'pm_genpd' already present!
    [    2.496538] ALSA device list:
    [    2.499529]   No soundcards found.
    [    2.519636] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    2.527848] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    2.542999] devtmpfs: mounted
    [    2.546895] Freeing unused kernel memory: 1856K
    [    2.551549] Run /sbin/init as init process
    [    2.939256] systemd[1]: System time before build time, advancing clock.
    [    3.056699] NET: Registered protocol family 10
    [    3.062277] Segment Routing with IPv6
    [    3.106164] systemd[1]: systemd 244.5+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
    [    3.128313] systemd[1]: Detected architecture arm64.
    
    Welcome to Arago 2020.09!
    
    [    3.178225] systemd[1]: Set hostname to <am65xx-evm>.
    [    3.756284] systemd[1]: /lib/systemd/system/docker.socket:6: ListenStream= references a path below legacy directory /var/run/, updating /var/run/docker.sock → /run/docker.sock; please update the unit file accordingly.
    [    3.914634] random: systemd: uninitialized urandom read (16 bytes read)
    [    3.921630] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
    [    3.933994] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
    [    3.946701] systemd[1]: Created slice system-getty.slice.
    [  OK  ] Created slice system-getty.slice.
    [    3.969374] random: systemd: uninitialized urandom read (16 bytes read)
    [    3.977995] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [    4.001338] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.009632] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    4.033643] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password …ts to Console Directory Watch.
    [    4.057491] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password R…uests to Wall Directory Watch.
    [    4.081466] systemd[1]: Reached target Paths.
    [  OK  ] Reached target Paths.
    [    4.101404] systemd[1]: Reached target Remote File Systems.
    [  OK  ] Reached target Remote File Systems.
    [    4.121320] systemd[1]: Reached target Slices.
    [  OK  ] Reached target Slices.
    [    4.141335] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    4.172785] systemd[1]: Listening on RPCbind Server Activation Socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [    4.193378] systemd[1]: Reached target RPC Port Mapper.
    [  OK  ] Reached target RPC Port Mapper.
    [    4.221952] systemd[1]: Listening on Process Core Dump Socket.
    [  OK  ] Listening on Process Core Dump Socket.
    [    4.245641] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [  OK  ] Listening on initctl Compatibility Named Pipe.
    [    4.287112] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
    [    4.296002] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    4.317946] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    4.338094] systemd[1]: Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [    4.361791] systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    [    4.381622] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    4.408060] systemd[1]: Mounting Huge Pages File System...
             Mounting Huge Pages File System...
    [    4.435709] systemd[1]: Mounting POSIX Message Queue File System...
             Mounting POSIX Message Queue File System...
    [    4.463780] systemd[1]: Mounting Kernel Debug File System...
             Mounting Kernel Debug File System...
    [    4.494207] systemd[1]: Mounting Temporary Directory (/tmp)...
             Mounting Temporary Directory (/tmp)...
    [    4.524454] systemd[1]: Starting Create list of static device nodes for the current kernel...
             Starting Create list of st…odes for the current kernel...
    [    4.555770] systemd[1]: Starting Start psplash boot splash screen...
             Starting Start psplash boot splash screen...
    [    4.599198] systemd[1]: Started Hardware RNG Entropy Gatherer Daemon.
    [  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
    [    4.644459] systemd[1]: Starting RPC Bind...
             Starting RPC Bind...
    [    4.661651] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [    4.679875] systemd[1]: Starting Journal Service...
             Starting Journal Service...
    [    4.722960] systemd[1]: Starting Load Kernel Modules...
             Starting Load Kernel Modules...
    [    4.756010] systemd[1]: Starting Remount Root and Kernel File Systems...
             Starting Remount Root and Kernel File Systems cryptodev: loading out-of-tree module taints kernel.
    [0m...
    [    4.784219] systemd[1]: Starting udev Coldplug all Devices...
             Starting udev Coldplug all Devices...
    [    4.816517] systemd[1]: Started Start psplash boot splash screen.
    [  OK  ] Started Start psplash boot splash s[    4.832956] cryptodev: driver 1.10 loaded.
    creen.
    [    4.850309] systemd[1]: Started RPC Bind.
    [  OK  ] Started RPC Bind.
    [    4.874114] systemd[1]: Mounted Huge Pages File System.
    [  OK  ] Mounted Huge Pages File System.
    [    4.900559] systemd[1]: Mounted POSIX Message Queue File System.
    [  OK  ] Mounted POSIX Message Queue File System.
    [    4.930242] systemd[1]: Started Journal Service.
    [  OK  ] Started Journal Service.[    4.936022] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    
    [  OK  ] Mounted Kernel Debug File System.
    [  OK  ] Mounted Temporary Directory (/tmp).
    [  OK  ] Started Create list of sta… nodes for the current kernel.
    [  OK  ] Started Load Kernel Modules.
    [  OK  ] Started Remount Root and Kernel File Systems.
             Mounting Kernel Configuration File System...
    [  OK  ] Started Start psplash-syst…progress communication helper.
             Starting Flush Journal to Persistent Storage...
             Starting Apply Kernel Variables...[    5.157357] systemd-journald[163]: Received client request to flush runtime journal.
    
             Starting Create Static Device Nodes in /dev...
    [  OK  ] Mounted Kernel Configuration File System.
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Apply Kernel Variables.
    [  OK  ] Started Create Static Device Nodes in /dev.
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
             Starting udev Kernel Device Manager...
    [  OK  ] Mounted /media/ram.
    [  OK  ] Mounted /var/volatile.
             Starting Load/Save Random Seed...
    [  OK  ] Reached target Local File Systems.
             Starting Create Volatile Files and Directories...
    [  OK  ] Started Create Volatile Files and Directories.
             Starting Network Time Synchronization...
             Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Reached target System Time Set.
    [  OK  ] Reached target System Time Synchronized.
    [  OK  ] Started udev Coldplug all Devices.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Started Daily rotation of log files.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
             Starting Docker Socket for the API.
    [  OK  ] Listening on dropbear.socket.
             Starting Reboot and dump vmcore via kexec...
    [  OK  ] Listening on Docker Socket for the API.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
    [  OK  ] Started Job spooling tools.
    [  OK  ] Started Periodic Command Scheduler.
    [  OK  ] Started D-Bus System Message Bus.
             Starting Print notice about GPLv3 packages...
             Starting IPv6 Packet Filtering Framework...
             Starting IPv4 Packet Filtering Framework...
    [  OK  ] Started irqbalance daemon.
             Starting Telephony service...
             Starting rc.pvr.service...
             Starting Login Service...
    [  OK  ] Started Reboot and dump vmcore via kexec.
    [  OK  ] Started IPv4 Packet Filtering Framework.
    [  OK  ] Started IPv6 Packet Filtering Framework.
    [  OK  ] Reached target Network (Pre).
             Starting Network Service...
    [    6.929605] [drm] Initialized pvr 1.17.4948957 20110701 for 7000000.gpu on minor 1
    [    7.047321] PVR_K: UM DDK-(4948957) and KM DDK-(4948957) match. [ OK ]
    [  OK  ] Started rc.pvr.service.
             Starting telnetd.service...
    [  OK  ] Started Telephony service.
    [  OK  ] Started telnetd.service.
    [    7.307493] Bluetooth: Core ver 2.22
    [    7.317427] NET: Registered protocol family 31
    [    7.322098] Bluetooth: HCI device and connection manager initialized
    [    7.332133] Bluetooth: HCI socket layer initialized
    [    7.340432] Bluetooth: L2CAP socket layer initialized
    [    7.345588] Bluetooth: SCO socket layer initialized
    [  OK  ] Created slice system-systemd\x2dbacklight.slice.
             Starting Load/Save Screen …ness of backlight:backlight...
    [  OK  ] Started Network Service.
             Starting Wait for Network to be Configured...
             Starting Network Name Resolution...
    [  OK  ] Started Load/Save Screen B…htness of backlight:backlight.
    [    7.981264] random: crng init done
    [    7.984704] random: 7 urandom warning(s) missed due to ratelimiting
    [  OK  ] Started Load/Save Random Seed.
    [  OK  ] Started Login Service.
    [    8.754806] rtc-pcf2127-i2c 3-0051: registered as rtc0
    [  OK  ] Started Network Name Resolution.
    [  OK  ] Reached target Network.
    [  OK  ] Reached target Host and Network Name Lookups.
             Starting Avahi mDNS/DNS-SD Stack...
             Starting Enable and configure wl18xx bluetooth stack...
    [  OK  ] Started NFS status monitor for NFSv2/3 locking..
             Starting Simple Network Ma…ent Protocol (SNMP) Daemon....
             Starting Permit User Sessions...
    [  OK  ] Started Permit User Sessions.
    [  OK  ] Started Getty on tty1.
    [  OK  ] Started Serial Getty on ttyS1.
    [  OK  ] Started Serial Getty on ttyS2.
    [  OK  ] Reached target Login Prompts.
             Starting Synchronize System and HW clocks...
    [  OK  ] Started Enable and configure wl18xx bluetooth stack.
    [  OK  ] Started Avahi mDNS/DNS-SD Stack.
    [    9.186448] rtc-pcf2127-i2c 3-0051: setting system clock to 2021-08-27T20:04:46 UTC (1630094686)
             Starting Rotate log files...
    [  OK  ] Started Synchronize System and HW clocks.
    [  OK  ] Started Rotate log files.
    [  OK  ] Started Simple Network Man…ement Protocol (SNMP) Daemon..
    [  OK  ] Created slice system-weston.slice.
    [  OK  ] Started Weston Wayland Compositor.
    [  OK  ] Created slice User Slice of UID 0.
             Starting User Runtime Directory /run/user/0...
    [  OK  ] Started User Runtime Directory /run/user/0.
             Starting User Manager for UID 0...
    [   10.998175] cal 6f03000.cal: Neither port is configured, no point in staying up
    [   11.193976] davinci_mdio b032400.mdio: davinci mdio revision 1.7, bus freq 1000000
    [  OK  ] Started User Manager for UID 0.
    [  OK  ] Started Session c1 of user root.
    [   11.393640] libphy: b032400.mdio: probed
    [   11.438167] davinci_mdio b032400.mdio: phy[1]: device b032400.mdio:01, driver TI DP83822
    [   11.794693] CAN device driver interface
    [   12.145448] m_can_platform 40528000.mcan: m_can device registered (irq=24, version=32)
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
            autoconf
            bash-dev
            bash
            bc
            binutils
            cifs-utils
            coreutils-stdbuf
            coreutils
            cpio
            cpp-symlinks
            cpp
            dosfstools
            elfutils
            g++-symlinks
            g++
            gawk
            gcc-symlinks
            gcc
            gdb
            gdbserver
            gettext
            glmark2
            gstreamer1.0-libav-dev
            gstreamer1.0-libav
            gzip
            less
            libasm1
            libbfd
            libdw1
            libelf1
            libgdbm-compat4
            libgdbm-dev
            libgdbm6
            libgettextlib
            libgettextsrc
            libgmp-dev
            libgmp10
            libgmpxx4
            libidn2[   12.994178] platform 41000000.r5f: configured R5F for remoteproc mode
    -0
            libidn2-dev
            libmpc3
            libmpfr6
            libreadline-dev
            libreadline8
            libunistring-dev
            libunistring2
            m4-dev
            m4
            make
            nettle-dev
            nettle
            parted
            pdm-anomaly-detection
            python3-rfc3987
            python3-strict-rfc3339
            tar
            which
            zeromq
    
    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
    ***************************************************************
    ***************************************************************
    [   13.081325] k3_r5_rproc bus@100000:bus@28380000:r5fss@41000000: lockstep mode not permitted, force configuring for split-mode
    [  OK  ] Started Print notice about GPLv3 packages.
    [   13.205430] platform 41000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000
    [   13.353568] remoteproc remoteproc0: 41000000.r5f is available
    [   13.493078] remoteproc remoteproc0: powering up 41000000.r5f
    [   13.498822] remoteproc remoteproc0: Booting fw image am65x-mcu-r5f0_0-fw, size 65268
    [   13.539604] platform 41400000.r5f: configured R5F for remoteproc mode
    [   13.540122] Generic PHY 46000f00.mdio:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=46000f00.mdio:00, irq=POLL)
    [   13.558560]  remoteproc0#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
    [   13.567794] am65-cpsw-nuss 46000000.ethernet eth0: Link is Down
    [   13.571459] virtio_rpmsg_bus virtio0: rpmsg host is online
    [   13.578682] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xd
    [   13.583998]  remoteproc0#vdev0buffer: registered virtio0 (type 7)
    [   13.589473] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xe
    [   13.597218] remoteproc remoteproc0: remote processor 41000000.r5f is now up
    [   13.665101] platform 41400000.r5f: assigned reserved memory node r5f-dma-memory@a1000000
    [   13.769544] remoteproc remoteproc1: 41400000.r5f is available
    [   13.853922] remoteproc remoteproc1: powering up 41400000.r5f
    [   13.859831] remoteproc remoteproc1: Booting fw image am65x-mcu-r5f0_1-fw, size 65268
    [   13.874986]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a1000000
    [   13.889818] virtio_rpmsg_bus virtio1: rpmsg host is online
    [   13.895414] virtio_rpmsg_bus virtio1: creating channel ti.ipc4.ping-pong addr 0xd
    [   13.895652] virtio_rpmsg_bus virtio1: creating channel rpmsg_chrdev addr 0xe
    [   13.907963]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
    [   13.921223] remoteproc remoteproc1: remote processor 41400000.r5f is now up
    [   14.745933] m_can_platform 40568000.mcan: m_can device registered (irq=26, version=32)
    [   14.884164] remoteproc remoteproc2: b034000.pru is available
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|[   15.023054] remoteproc remoteproc3: b004000.rtu is available
    _  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project http://arago-project.org am65xx-evm ttyS2
    
    Arago 2020.09 am65xx-evm ttyS2
    
    am65xx-evm login: [   15.159510] remoteproc remoteproc4: b038000.pru is available
    [   15.175958] remoteproc remoteproc5: b006000.rtu is available
    [   15.203129] remoteproc remoteproc6: b00c000.txpru is available
    [   15.283211] remoteproc remoteproc7: b134000.pru is available
    [   15.299057] remoteproc remoteproc8: b104000.rtu is available
    [   15.315151] remoteproc remoteproc9: b10a000.txpru is available
    [   15.341468] remoteproc remoteproc10: b138000.pru is available
    [   15.379889] remoteproc remoteproc11: b106000.rtu is available
    [   15.401635] remoteproc remoteproc12: b10c000.txpru is available
    [   15.431640] remoteproc remoteproc13: b234000.pru is available
    [   15.447006] remoteproc remoteproc14: b204000.rtu is available
    [   15.466926] remoteproc remoteproc15: b20a000.txpru is available
    [   15.501674] remoteproc remoteproc16: b238000.pru is available
    [   15.573014] remoteproc remoteproc17: b206000.rtu is available
    [   15.591012] remoteproc remoteproc18: b20c000.txpru is available
    [   18.177366] OF: graph: no port node found in /bus@100000/phy@4110000
    [   18.214476] pps pps0: new PPS source ptp2
    [   18.221670] pps pps1: new PPS source ptp3
    [   18.221709] omap_rng 4e10000.rng: Random Number Generator ver. 241b34c
    [   18.239555] icssg-prueth icssg0-eth: port 1: using random MAC addr: f2:8d:2d:6b:a3:ae
    [   18.254285] icssg-prueth icssg0-eth: TI PRU ethernet driver initialized: single EMAC mode
    [   19.949071] usbcore: registered new interface driver usbfs
    [   20.003533] usbcore: registered new interface driver hub
    [   20.013379] usbcore: registered new device driver usb
    [   20.112974] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
    [   20.137436] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 1
    [   20.197615] remoteproc remoteproc2: powering up b034000.pru
    [   20.206958] remoteproc remoteproc2: Booting fw image ti-pruss/am65x-pru0-prueth-fw.elf, size 16992
    [   20.213617] xhci-hcd xhci-hcd.2.auto: hcc params 0x0298fe6d hci version 0x110 quirks 0x0000000000010010
    [   20.221685] remoteproc remoteproc2: remote processor b034000.pru is now up
    [   20.237063] xhci-hcd xhci-hcd.2.auto: irq 590, io mem 0x04010000
    [   20.237635] remoteproc remoteproc3: powering up b004000.rtu
    [   20.258709] remoteproc remoteproc3: Booting fw image ti-pruss/am65x-rtu0-prueth-fw.elf, size 15588
    [   20.260632] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
    [   20.273210] remoteproc remoteproc3: remote processor b004000.rtu is now up
    [   20.289329] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [   20.297092] TI DP83822 b032400.mdio:01: attached PHY driver [TI DP83822] (mii_bus:phy_addr=b032400.mdio:01, irq=POLL)
    [   20.301175] usb usb1: Product: xHCI Host Controller
    [   20.315207] net eth1: started
    [   20.319800] usb usb1: Manufacturer: Linux 5.10.41-g4c2eade9f7 xhci-hcd
    [   20.319917] icssg-prueth icssg0-eth eth1: Link is Up - 100Mbps/Full - flow control off
    [   20.333179] usb usb1: SerialNumber: xhci-hcd.2.auto
    [   20.334328] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [   20.346070] hub 1-0:1.0: USB hub found
    [   20.358991] hub 1-0:1.0: 1 port detected
    [   20.393418] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
    [   20.405276] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 2
    [   20.417221] xhci-hcd xhci-hcd.2.auto: Host supports USB 3.0 SuperSpeed
    [   20.429271] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
    [   20.441401] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
    [   20.457174] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [   20.464632] usb usb2: Product: xHCI Host Controller
    [   20.473175] usb usb2: Manufacturer: Linux 5.10.41-g4c2eade9f7 xhci-hcd
    [   20.485181] usb usb2: SerialNumber: xhci-hcd.2.auto
    [   20.491014] hub 2-0:1.0: USB hub found
    [   20.495019] hub 2-0:1.0: 1 port detected
    

    Related DTS part already posted on my last thread, here I only updated the setting of DP83822 as you described:

    icssg0_phy0: ethernet-phy@1 {

                    reg = <1>;

                    rx-internal-delay-ps = <1>;

                    tx-internal-delay-ps = <1>;

            };

    Now if we configure this PRU ethernet( setting static ip address / udhcpc ) in console, it will display such information as follow:

    ------------[ cut here ]------------
    [ 70.997817] NETDEV WATCHDOG: eth1 (icssg-prueth): transmit queue 0 timed out
    [ 71.004941] WARNING: CPU: 1 PID: 0 at net/sched/sch_generic.c:442 dev_watchdog+0x300/0x308
    [ 71.013191] Modules linked in: xhci_plat_hcd xhci_hcd usbcore rpmsg_char ti_am335x_adc kfifo_buf irq_pruss_intc omap_rng rng_core dwc3 udc_core roles usb_common icssg_prueth crct10dif_ce snd_soc_simple_card snd_soc_simple_card_utils pru_rproc icss_iep phy_can_transceiver ti_k3_r5_remoteproc virtio_rpmsg_bus m_can_platform m_can can_dev ti_am335x_tscadc pruss ti_cal videobuf2_dma_contig v4l2_fwnode videobuf2_memops videobuf2_v4l2 videobuf2_common sa2ul sha512_generic authenc phy_omap_usb2 dwc3_keystone rtc_pcf2127 bluetooth ecdh_generic ecc rfkill pvrsrvkm(O) sch_fq_codel cryptodev(O) ipv6
    [ 71.065415] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G O 5.10.41-g4c2eade9f7 #17
    [ 71.073925] Hardware name: Texas Instruments AM654 Base Board (DT)
    [ 71.080105] pstate: 20000005 (nzCv daif -PAN -UAO -TCO BTYPE=--)
    [ 71.086115] pc : dev_watchdog+0x300/0x308
    [ 71.090119] lr : dev_watchdog+0x300/0x308
    [ 71.094121] sp : ffff80001138fdb0
    [ 71.097428] x29: ffff80001138fdb0 x28: ffff0000149e1f00
    1[ 71.102740] x27: 0000000000000004 x26: 0000000000000140
    [ 71.108132] x25: 00000000ffffffff x24: 0000000000000001
    [ 71.113441] x23: ffff00000de7239c x22: ffff00000de72000
    [ 71.118748] x21: ffff00000de72440 x20: ffff800011131000
    [ 71.124054] x19: 0000000000000000 x18: 0000000000000010
    [ 71.129361] x17: 0000000000000000 x16: 0000000000000000
    [ 71.134667] x15: ffff0000033cad30 x14: 00000000000001a8
    [ 71.139974] x13: ffff0000033cad30 x12: 00000000ffffffea
    [ 71.145280] x11: ffff8000111ba360 x10: ffff8000111a2320
    [ 71.150586] x9 : ffff8000111a2378 x8 : 0000000000017fe8
    [ 71.155892] x7 : c0000000ffffefff x6 : 0000000000000003
    [ 71.161198] x5 : 0000000000000000 x4 : 0000000000000000
    [ 71.166504] x3 : 0000000000000100 x2 : 0000000000000100
    [ 71.171809] x1 : 3dad5f348ad13d00 x0 : 0000000000000000
    [ 71.177117] Call trace:
    [ 71.179565] dev_watchdog+0x300/0x308
    [ 71.183227] call_timer_fn.isra.0+0x24/0x80
    [ 71.187404] run_timer_softirq+0x3f0/0x418
    [ 71.191496] efi_header_end+0x120/0x268
    [ 71.195325] irq_exit+0xc0/0xe0
    [ 71.198461] __handle_domain_irq+0x68/0xc0
    [ 71.202554] gic_handle_irq+0x58/0x128
    [ 71.206295] el1_irq+0xcc/0x180
    [ 71.209436] arch_cpu_idle+0x18/0x28
    [ 71.213006] default_idle_call+0x20/0x68
    [ 71.216921] do_idle+0xc0/0x128
    [ 71.220057] cpu_startup_entry+0x24/0x60
    [ 71.223975] secondary_start_kernel+0x15c/0x188
    [ 71.228496] ---[ end trace acab329dcda42610 ]---
    [ 71.233163] icssg-prueth icssg0-eth eth1: xmit timeout

    [ 87.121197] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 91.985184] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 97.105182] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 101.969185] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 107.089186] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 111.953181] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 117.073186] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 121.937183] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 127.057185] icssg-prueth icssg0-eth eth1: xmit timeout

    .........

    Console port will display this message " icssg-prueth icssg0-eth eth1: xmit timeout" constantly.

    thanks

    Kenn

  • Kenn, 

    Can you confirm if you assigned MAC address for pruss ports in uboot? You should have something like

    eth1addr=70:ff:76:1d:50:ec
    eth2addr=70:ff:76:1d:50:ed

    Otherwise you can compare printenv output from the EVM if you have access to a EVM. 

    Jian

  • Hi,

    Thanks for the posts. I would like to suggest for you to perform what we call ethernet triage steps. Please take a look at the attached steps in this link. The key step here is make sure there is a link established between the two link partners.

    Best Regards,

    Schuyler

  • Jian

    I had updated its related setting in u-boot, now boot log of u-boot can display some information as you described:

    U-Boot 2021.01-dirty (Apr 07 2022 - 11:18:06 +0800)

    SoC: AM65X SR2.0
    Model: Texas Instruments AM654 Base Board
    i2c_omap i2c@42120000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19
    Reading on-board EEPROM at 0x50 failed 1
    Board: AM6-COMPROCEVM rev E3
    DRAM: 1 GiB
    MMC: sdhci@4fa0000: 1
    Loading Environment from MMC... MMC Device 0 not found
    *** Warning - No MMC card found, using default environment

    In: serial
    Out: serial
    Err: serial
    Reading on-board EEPROM at 0x50 failed 1
    Detected: Silicon SR2.0
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@38: Error reading output register
    Net: am65_cpsw_nuss_slave ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA00102 cpsw_ver: 0x6BA80102 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
    eth0: ethernet@46000000
    Warning: icssg0-eth (eth1) using random MAC address - c6:0f:23:ca:65:67
    , eth1: icssg0-eth
    Hit any key to stop autoboot: 0
    switch to partitions #0, OK
    mmc1 is current device
    SD/MMC found on device 1
    Failed to load 'boot.scr'
    1011 bytes read in 3 ms (329.1 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    Running uenvcmd ...
    19141120 bytes read in 884 ms (20.6 MiB/s)
    69544 bytes read in 13 ms (5.1 MiB/s)
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Device Tree to 000000008feec000, end 000000008fffffff ... OK

     

    But this can not solved our problem, its failed phenomenon was the same as we posted in last thread.

    Thanks

    Kenn

  • Hi, Schuyler Patton

    Followed that checklist you provided , I should provide some information about ethtool eth1 and ethtool -S eth1 as follow:

    root@am65xx-evm:~# ethtool eth1
    Settings for eth1:
            Supported ports: [ TP    MII ]
            Supported link modes:   10baseT/Full
                                    100baseT/Full
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Supported FEC modes: Not reported
            Advertised link modes:  10baseT/Full
                                    100baseT/Full
            Advertised pause frame use: No
            Advertised auto-negotiation: Yes
            Advertised FEC modes: Not reported
            Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                 100baseT/Half 100baseT/Full
            Link partner advertised pause frame use: No
            Link partner advertised auto-negotiation: Yes
            Link partner advertised FEC modes: Not reported
            Speed: 100Mb/s
            Duplex: Full
            Auto-negotiation: on
            Port: Twisted Pair
            PHYAD: 1
            Transceiver: external
            MDI-X: Unknown
            Current message level: 0x00007fff (32767)
                                   drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
            Link detected: yes
    root@am65xx-evm:~# ethtool -S eth1
    NIC statistics:
         rx_good_frames: 0
         rx_broadcast_frames: 0
         rx_multicast_frames: 0
         rx_crc_error_frames: 0
         rx_mii_error_frames: 0
         rx_odd_nibble_frames: 0
         rx_frame_max_size: 2000
         rx_max_size_error_frames: 0
         rx_frame_min_size: 64
         rx_min_size_error_frames: 0
         rx_overrun_frames: 0
         rx_class0_hits: 0
         rx_class1_hits: 0
         rx_class2_hits: 0
         rx_class3_hits: 0
         rx_class4_hits: 0
         rx_class5_hits: 0
         rx_class6_hits: 0
         rx_class7_hits: 0
         rx_class8_hits: 0
         rx_class9_hits: 0
         rx_class10_hits: 0
         rx_class11_hits: 0
         rx_class12_hits: 0
         rx_class13_hits: 0
         rx_class14_hits: 0
         rx_class15_hits: 0
         rx_smd_frags: 0
         rx_bucket1_size: 64
         rx_bucket2_size: 128
         rx_bucket3_size: 256
         rx_bucket4_size: 512
         rx_64B_frames: 0
         rx_bucket1_frames: 0
         rx_bucket2_frames: 0
         rx_bucket3_frames: 0
         rx_bucket4_frames: 0
         rx_bucket5_frames: 0
         rx_total_bytes: 0
         rx_tx_total_bytes: 0
         tx_good_frames: 0
         tx_broadcast_frames: 0
         tx_multicast_frames: 0
         tx_odd_nibble_frames: 0
         tx_underflow_errors: 0
         tx_frame_max_size: 2000
         tx_max_size_error_frames: 0
         tx_frame_min_size: 64
         tx_min_size_error_frames: 0
         tx_bucket1_size: 64
         tx_bucket2_size: 128
         tx_bucket3_size: 256
         tx_bucket4_size: 512
         tx_64B_frames: 0
         tx_bucket1_frames: 0
         tx_bucket2_frames: 0
         tx_bucket3_frames: 0
         tx_bucket4_frames: 0
         tx_bucket5_frames: 0
         tx_total_bytes: 0
    

    and ifconfig eth1:

    ifconfig eth1
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 metric 1
    inet6 fe80::8caf:d2ff:feb8:d4df prefixlen 64 scopeid 0x20<link>
    ether 8e:af:d2:b8:d4:df txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 28 bytes 4924 (4.8 KiB)
    TX errors 33 dropped 0 overruns 0 carrier 0 collisions 0

    Thanks

    Kenn

  • Would we request a meeting to discuss this issue directly?

    Thanks

    Kenn

  • Hi,

    Apologies for the delay in responding to your previous post. Thank for you posting the results of the ethtool HW stats and interface commands.

    From the ehtool command I wanted to verify that a link was detected, this line indicates it is: Link detected: yes

    This line from the boot log also confirms that the link is up with a link partner 

    icssg-prueth icssg0-eth eth1: Link is Up - 100Mbps/Full - flow control off

    The ifconfig eth1 shows there are TX errors 33. This is network level of the interface which is indicating errors have occurred trying to send packets. When a link is established the dhcp client will try to send discover messages.

    Looking at the HW stats output of the ethtool command is this line:

    tx_good_frames: 0

    This indicates that there have not been any packets sent from the MAC (ICSSg). This is the likely cause of the watchdog timeout that you are seeing. This probably indicates an issue between the MAC and the PHY.  It kind of looks like the pin mux is not set correctly or the clocking is not working. Where are pin mux settings happening? The board dts file? Have there any modifications to the TI .dtsi files?

    Best Regards,

    Schuyler

  • Thanks Schuyler,

     Its dts pin mux definition was from the output of system config( schematic tool from TI ). 

    icssg0_mdio_pins_default: icssg0-mdio-pins-default {
    
                    pinctrl-single,pins = <
    
                            AM65X_IOPAD(0x0294, PIN_INPUT, 0) /* (AE26) PRG0_MDIO0_MDIO */
    
                            AM65X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AE28) PRG0_MDIO0_MDC */
    
                    >;
    
            };
    
     
    
        icssg0_mii_pins_default: icssg0-mii-pins-default {
    
           pinctrl-single,pins = <
    
               AM65X_IOPAD(0x0284, PIN_INPUT_PULLDOWN, 1) /* (AC24) PRG0_PRU1_GPO16.pr0_mii_mt0_clk */
    
                            AM65X_IOPAD(0x0280, PIN_OUTPUT_PULLDOWN, 0) /* (AE27) PRG0_PRU1_GPO15.pr0_mii0_txen */
    
                            AM65X_IOPAD(0x027c, PIN_OUTPUT_PULLDOWN, 0) /* (AD24) PRG0_PRU1_GPO14.pr0_mii0_txd3 */
    
                            AM65X_IOPAD(0x0278, PIN_OUTPUT_PULLDOWN, 0) /* (AD25) PRG0_PRU1_GPO13.pr0_mii0_txd2 */
    
                            AM65X_IOPAD(0x0274, PIN_OUTPUT_PULLDOWN, 0) /* (AC25) PRG0_PRU1_GPO12.pr0_mii0_txd1 */
    
                            AM65X_IOPAD(0x0270, PIN_OUTPUT_PULLDOWN, 0) /* (AB24) PRG0_PRU1_GPO11.pr0_mii0_txd0 */
    
                            AM65X_IOPAD(0x0204, PIN_INPUT_PULLDOWN, 1) /* (Y24) PRG0_PRU0_GPO4.pr0_mii0_rxdv */
    
                            AM65X_IOPAD(0x020c, PIN_INPUT_PULLDOWN, 1) /* (Y25) PRG0_PRU0_GPO6.pr0_mii_mr0_clk */
    
                            AM65X_IOPAD(0x0200, PIN_INPUT_PULLDOWN, 1) /* (AA27) PRG0_PRU0_GPO3.pr0_mii0_rxd3 */
    
                            AM65X_IOPAD(0x01fc, PIN_INPUT_PULLDOWN, 1) /* (W24) PRG0_PRU0_GPO2.pr0_mii0_rxd2 */
    
                            AM65X_IOPAD(0x021c, PIN_INPUT_PULLDOWN, 1) /* (U25) PRG0_PRU0_GPO10.pr0_mii0_crs */
    
                            AM65X_IOPAD(0x0208, PIN_INPUT_PULLDOWN, 1) /* (V28) PRG0_PRU0_GPO5.pr0_mii0_rxer */
    
                            AM65X_IOPAD(0x01f8, PIN_INPUT_PULLDOWN, 1) /* (W25) PRG0_PRU0_GPO1.pr0_mii0_rxd1 */
    
                            AM65X_IOPAD(0x01f4, PIN_INPUT_PULLDOWN, 1) /* (V24) PRG0_PRU0_GPO0.pr0_mii0_rxd0 */
    
                            AM65X_IOPAD(0x0218, PIN_INPUT_PULLDOWN, 1) /* (V26) PRG0_PRU0_GPO9.pr0_mii0_col */
    
                            AM65X_IOPAD(0x0214, PIN_INPUT_PULLDOWN, 1) /* (V27) PRG0_PRU0_GPO8.pr0_mii0_rxlink */
    
           >;
    
        };
    
       
    
        icssg0_iep0_pins_default: icssg0-iep0-pins-default {
    
                    pinctrl-single,pins = <
    
                            AM65X_IOPAD(0x0240, PIN_INPUT, 2) /* (U24) PRG0_PRU0_GPO19.PRG0_IEP0_EDC_SYNC_OUT0 */
    
                    >;
    
            };

    We didn't change the DSTI file of TI SDK.

    Thanks

    Kenn

  • We double-check the definition of icssg0's pin mux in TRM(Technical Reference Maunal), Apart from some unright comments, it's alright !

    mypru_icssg0_mii_g_rt1_pins_default: mypru_icssg0_mii_g_rt1_pins_default {
    		pinctrl-single,pins = <
    			AM65X_IOPAD(0x0284, PIN_INPUT_PULLDOWN, 1) /* (AC24) PRG0_PRU1_GPI16.pr0_mii_mt0_clk */
    			AM65X_IOPAD(0x0280, PIN_OUTPUT_PULLDOWN, 0) /* (AE27) PRG0_PRU1_GPO15.pr0_mii0_txen */
    			AM65X_IOPAD(0x027c, PIN_OUTPUT_PULLDOWN, 0) /* (AD24) PRG0_PRU1_GPO14.pr0_mii0_txd3 */
    			AM65X_IOPAD(0x0278, PIN_OUTPUT_PULLDOWN, 0) /* (AD25) PRG0_PRU1_GPO13.pr0_mii0_txd2 */
    			AM65X_IOPAD(0x0274, PIN_OUTPUT_PULLDOWN, 0) /* (AC25) PRG0_PRU1_GPO12.pr0_mii0_txd1 */
    			AM65X_IOPAD(0x0270, PIN_OUTPUT_PULLDOWN, 0) /* (AB24) PRG0_PRU1_GPO11.pr0_mii0_txd0 */
    			AM65X_IOPAD(0x0204, PIN_INPUT_PULLDOWN, 1) /* (Y24) PRG0_PRU0_GPI4.pr0_mii0_rxdv */
    			AM65X_IOPAD(0x020c, PIN_INPUT_PULLDOWN, 1) /* (Y25) PRG0_PRU0_GPI6.pr0_mii_mr0_clk */
    			AM65X_IOPAD(0x0200, PIN_INPUT_PULLDOWN, 1) /* (AA27) PRG0_PRU0_GPI3.pr0_mii0_rxd3 */
    			AM65X_IOPAD(0x01fc, PIN_INPUT_PULLDOWN, 1) /* (W24) PRG0_PRU0_GPI2.pr0_mii0_rxd2 */
    			AM65X_IOPAD(0x021c, PIN_INPUT_PULLDOWN, 1) /* (U25) PRG0_PRU0_GPI10.pr0_mii0_crs */
    			AM65X_IOPAD(0x0208, PIN_INPUT_PULLDOWN, 1) /* (V28) PRG0_PRU0_GPI5.pr0_mii0_rxer */
    			AM65X_IOPAD(0x01f8, PIN_INPUT_PULLDOWN, 1) /* (W25) PRG0_PRU0_GPI1.pr0_mii0_rxd1 */
    			AM65X_IOPAD(0x01f4, PIN_INPUT_PULLDOWN, 1) /* (V24) PRG0_PRU0_GPI0.pr0_mii0_rxd0 */
    			AM65X_IOPAD(0x0218, PIN_INPUT_PULLDOWN, 1) /* (V26) PRG0_PRU0_GPI9.pr0_mii0_col */
    			AM65X_IOPAD(0x0214, PIN_INPUT_PULLDOWN, 1) /* (V27) PRG0_PRU0_GPI8.pr0_mii0_rxlink */
    		>;
    	};

    Thanks

    Kenn

  • Hi,

    Thanks for confirming the dtsi file was not changed and re-verifying the pin mux. For the moment looking at original dts provided the second MAC is not being used. I see that it is commented out, to confirm though this second port is not intended to be used?

    I will need to confirm with the development team, in other ICCS implementation there have been different FWs required for single or dual mac operation modes. 

    Best Regards,

    Schuyler

  • Hi

    Yes, Our customized board had two ethernet ports: one from am65-cpsw-nuss( this port works fine), the other from PRU, we will not use the second port from PRU0.

    I had tried  to uncomment the second port from PRU0, it will display:

    [ 18.011720] icssg-prueth icssg0-eth: port 1: using random MAC addr: 36:05:e1:96:c4:1e
    [ 18.025391] icssg-prueth icssg0-eth: couldn't connect to phy ethernet-phy@3
    [ 18.107367] icssg-prueth icssg0-eth: port 1: using random MAC addr: ce:51:b4:ad:1f:ed
    [ 18.125264] icssg-prueth icssg0-eth: couldn't connect to phy ethernet-phy@3
    [ 18.195429] icssg-prueth icssg0-eth: port 1: using random MAC addr: b2:b4:ea:15:88:68
    [ 18.209101] icssg-prueth icssg0-eth: couldn't connect to phy ethernet-phy@3
    [ 18.456257] icssg-prueth icssg0-eth: port 1: using random MAC addr: 6e:85:8f:6d:eb:34
    [ 18.469174] icssg-prueth icssg0-eth: couldn't connect to phy ethernet-phy@3
    [ 18.583592] icssg-prueth icssg0-eth: port 1: using random MAC addr: 6a:3b:58:92:94:74
    [ 18.597135] icssg-prueth icssg0-eth: couldn't connect to phy ethernet-phy@3
    [ 19.499914] icssg-prueth icssg0-eth: port 1: using random MAC addr: 66:bd:bf:33:2f:82
    [ 19.513164] icssg-prueth icssg0-eth: couldn't connect to phy ethernet-phy@3
    [ 19.623630] icssg-prueth icssg0-eth: port 1: using random MAC addr: 16:f0:fc:86:77:0e
    [ 19.640339] icssg-prueth icssg0-eth: couldn't connect to phy ethernet-phy@3

    and system will not find eth1 at all:

    ifconfig eth1 up
    eth1: ERROR while getting interface flags: No such device

    Thanks

    Kenn

  • Hi, 

    I am looking again at the pin mux. I see you remark about the comments that are generated are unright. I did a quick experiment with the sysconfig tool and I get the same comments. This makes me think the sysconfig tool is expecting both interfaces to be used.

    As a quick experiment could you please try replacing these lines 

    AM65X_IOPAD(0x0284, PIN_INPUT_PULLDOWN, 1) /* (AC24) PRG0_PRU1_GPI16.pr0_mii_mt0_clk */
    AM65X_IOPAD(0x0280, PIN_OUTPUT_PULLDOWN, 0) /* (AE27) PRG0_PRU1_GPO15.pr0_mii0_txen */
    AM65X_IOPAD(0x027c, PIN_OUTPUT_PULLDOWN, 0) /* (AD24) PRG0_PRU1_GPO14.pr0_mii0_txd3 */
    AM65X_IOPAD(0x0278, PIN_OUTPUT_PULLDOWN, 0) /* (AD25) PRG0_PRU1_GPO13.pr0_mii0_txd2 */
    AM65X_IOPAD(0x0274, PIN_OUTPUT_PULLDOWN, 0) /* (AC25) PRG0_PRU1_GPO12.pr0_mii0_txd1 */
    AM65X_IOPAD(0x0270, PIN_OUTPUT_PULLDOWN, 0) /* (AB24) PRG0_PRU1_GPO11.pr0_mii0_txd0 */

    with these lines?   I took these lines from the sysconfig tool output. 

    AM65X_IOPAD(0x0234, PIN_INPUT, 1) /* (AD28) PRG0_PRU0_GPO16.pr0_mii_mt1_clk */
    AM65X_IOPAD(0x0230, PIN_OUTPUT, 0) /* (AA24) PRG0_PRU0_GPO15.pr0_mii1_txen */
    AM65X_IOPAD(0x022c, PIN_OUTPUT, 0) /* (AD26) PRG0_PRU0_GPO14.pr0_mii1_txd3 */
    AM65X_IOPAD(0x0228, PIN_OUTPUT, 0) /* (AC26) PRG0_PRU0_GPO13.pr0_mii1_txd2 */
    AM65X_IOPAD(0x0224, PIN_OUTPUT, 0) /* (AD27) PRG0_PRU0_GPO12.pr0_mii1_txd1 */
    AM65X_IOPAD(0x0220, PIN_OUTPUT, 0) /* (AB25) PRG0_PRU0_GPO11.pr0_mii1_txd0 */

    Best Regards,

    Schuyler

  • Hi Schuyler

    I had modified as you wished, but it still didn't work at all,

    [ 156.193695] icssg-prueth icssg0-eth eth1: Link is Up - 100Mbps/Full - flow control off
    [ 156.201661] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

    root@am65xx-evm:~# udhcpc -i eth1
    udhcpc: started, v1.31.1
    udhcpc: sending discover
    udhcpc: sending discover
    dhcpc: sending discover

    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    [ 238.144796] ------------[ cut here ]------------
    [ 238.149440] NETDEV WATCHDOG: eth1 (icssg-prueth): transmit queue 0 timed out
    [ 238.156584] WARNING: CPU: 1 PID: 0 at net/sched/sch_generic.c:442 dev_watchdog+0x300/0x308
    [ 238.164833] Modules linked in: xt_conntrack xt_MASQUERADE xt_addrtype iptable_filter iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c ip_tables x_tables bridge stp llc overlay xfrm_user xfrm_algo md5 ecb aes_neon_bs aes_neon_blk des_generic libdes cbc xhci_plat_hcd xhci_hcd usbcore rpmsg_char ti_am335x_adc kfifo_buf irq_pruss_intc omap_rng rng_core dwc3 udc_core roles usb_common icssg_prueth crct10dif_ce snd_soc_simple_card snd_soc_simple_card_utils pru_rproc icss_iep phy_can_transceiver ti_k3_r5_remoteproc virtio_rpmsg_bus m_can_platform m_can can_dev ti_am335x_tscadc ti_cal videobuf2_dma_contig pruss v4l2_fwnode videobuf2_memops videobuf2_v4l2 videobuf2_common sa2ul sha512_generic authenc phy_omap_usb2 dwc3_keystone rtc_pcf2127 bluetooth ecdh_generic ecc rfkill pvrsrvkm(O) sch_fq_codel cryptodev(O) ipv6
    [ 238.238315] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G O 5.10.41-g4c2eade9f7 #17
    [ 238.246837] Hardware name: Texas Instruments AM654 Base Board (DT)
    [ 238.253029] pstate: 40000005 (nZcv daif -PAN -UAO -TCO BTYPE=--)
    [ 238.259054] pc : dev_watchdog+0x300/0x308
    [ 238.263060] lr : dev_watchdog+0x300/0x308
    [ 238.267062] sp : ffff80001138fdb0
    [ 238.270369] x29: ffff80001138fdb0 x28: ffff000015127440
    [ 238.275677] x27: 0000000000000004 x26: 0000000000000140
    [ 238.280983] x25: 00000000ffffffff x24: 0000000000000001
    [ 238.286289] x23: ffff00001519439c x22: ffff000015194000
    [ 238.291596] x21: ffff000015194440 x20: ffff800011131000
    [ 238.296902] x19: 0000000000000000 x18: 0000000000000010
    [ 238.302208] x17: 0000000000000000 x16: 0000000000000000
    [ 238.307513] x15: ffff0000033cad30 x14: 00000000000001b3
    [ 238.312820] x13: ffff0000033cad30 x12: 00000000ffffffea
    [ 238.318126] x11: ffff8000111ba360 x10: ffff8000111a2320
    [ 238.323432] x9 : ffff8000111a2378 x8 : 0000000000017fe8
    [ 238.328738] x7 : c0000000ffffefff x6 : 0000000000000001
    [ 238.334043] x5 : 0000000000000000 x4 : ffff00003fe11aa8
    [ 238.339349] x3 : ffff00003fe189b0 x2 : ffff00003fe11aa8
    [ 238.344655] x1 : 3a64b8bf91ad9500 x0 : 0000000000000000
    [ 238.349962] Call trace:
    [ 238.352409] dev_watchdog+0x300/0x308
    [ 238.356070] call_timer_fn.isra.0+0x24/0x80
    [ 238.360247] run_timer_softirq+0x3f0/0x418
    [ 238.364338] efi_header_end+0x120/0x268
    [ 238.368168] irq_exit+0xc0/0xe0
    [ 238.371304] __handle_domain_irq+0x68/0xc0
    [ 238.375396] gic_handle_irq+0x58/0x128
    [ 238.379138] el1_irq+0xcc/0x180
    [ 238.382279] arch_cpu_idle+0x18/0x28
    [ 238.385848] default_idle_call+0x20/0x68
    [ 238.389764] do_idle+0xc0/0x128
    [ 238.392900] cpu_startup_entry+0x28/0x60
    [ 238.396818] secondary_start_kernel+0x15c/0x188
    [ 238.401339] ---[ end trace e9082c9c1cea55be ]---
    [ 238.406023] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 244.032794] icssg-prueth icssg0-eth eth1: xmit timeout
    [ 249.152797] icssg-prueth icssg0-eth eth1: xmit timeout

    it belong to pr0_mii1 , not pr0_mii0, right?

    Thanks

    Kenn

  • The ethtool command displays most of the relevant PHY information. The information reported from this command show link status, link speed. 

    After reviewing with colleagues please take a look at these links:

    Features - please look at the limitations in this section. 

    Fixed Link - the PRU requires both interfaces to be active so please follow this example on how to make the second interface active with a fixed link.

    Best Regards,

    Schuyler

  • I also noticed the limitation in Features section, to my understanding, only because 

    (AC24) PRG0_PRU1_GPI16.pr0_mii_mt0_clk

    (AE27) PRG0_PRU1_GPO15.pr0_mii0_txen

     (AD24) PRG0_PRU1_GPO14.pr0_mii0_txd3

    (AD25) PRG0_PRU1_GPO13.pr0_mii0_txd2

    (AC25) PRG0_PRU1_GPO12.pr0_mii0_txd1

     (AB24) PRG0_PRU1_GPO11.pr0_mii0_txd0

    all these mii0 tx group pins are located in PRG0_PRU1 part, so we had to enable PRG0_PRU0 and PRG_PRU1 at the same time.

    But our question is: how to use "Fixed link" for unused port as workaround?

    Thanks

    Kenn

  • Hi, 

    Please disregard my comment about the pin mux. I believe you have set up is correct.

    As per the limitation in the documentation both ICCSG MACs need to be defined. This structure is from the link in the previous post from me. It shows how a fixed link is added to a ICSSG node. A fixed linked is used there is no PHY attached. In the example from the documentation there is no PHY handle since there is not an external PHY. 

    icssg2_emac1: ethernet-mii1 {
       phy-mode = "rgmii-rxid";
       syscon-rgmii-delay = <&scm_conf 0x4124>;
       local-mac-address = [00 00 00 00 00 00];
    
       fixed-link {
          speed = <1000>;
          full-duplex;
       };
    };

    From the portion of the DTS provided earlier in the thread, this is a suggestion of how to remove the PHY handle and then add a fixed link node. I took the fixed-link node from the example.

     icssg0_emac1: ethernet-mii1 {

                  phy-handle = <&icssg0_phy1>;     // Delete this line

                  phy-mode = "rgmii-rxid";

                  syscon-rgmii-delay = <&scm_conf 0x4104>;

                  /* Filled in by bootloader

                  local-mac-address = [00 00 00 00 00 00];                      

           fixed-link {            //Add this node
              speed = <1000>;
              full-duplex;
           };

    };

    Please let us know if this enables the TX traffic from eth1.

    Best Regards,

    Schuyler

  • Hi Schuyler

    I followed your guide to add fixed-link:

    now system can have three ethernet ports:

    root@am65xx-evm:~# ifconfig
    eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500  metric 1
            ether 30:e2:83:b4:07:82  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500  metric 1
            ether 8e:af:d2:b8:d4:df  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
            inet6 fe80::c0d:f1ff:fe6f:cb27  prefixlen 64  scopeid 0x20<link>
            ether 0e:0d:f1:6f:cb:27  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 24  bytes 3852 (3.7 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536  metric 1
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 82  bytes 6220 (6.0 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 82  bytes 6220 (6.0 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    but eth1 also didn't work normally, the failed phenomena was the same as before:

    root@am65xx-evm:~# udhcpc -i eth1
    udhcpc: started, v1.31.1
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    [  270.156964] ------------[ cut here ]------------
    [  270.161621] NETDEV WATCHDOG: eth1 (icssg-prueth): transmit queue 0 timed out
    [  270.168742] WARNING: CPU: 1 PID: 0 at net/sched/sch_generic.c:442 dev_watchdog+0x300/0x308
    [  270.176992] Modules linked in: xt_conntrack xt_MASQUERADE xt_addrtype iptable_filter iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c ip_tables x_tables bridge stp llc overlay xfrm_user xfrm_algo md5 ecb aes_neon_bs aes_neon_blk des_generic libdes cbc xhci_plat_hcd xhci_hcd usbcore rpmsg_char ti_am335x_adc kfifo_buf irq_pruss_intc omap_rng rng_core dwc3 udc_core roles usb_common icssg_prueth crct10dif_ce snd_soc_simple_card snd_soc_simple_card_utils pru_rproc icss_iep phy_can_transceiver ti_k3_r5_remoteproc virtio_rpmsg_bus m_can_platform m_can can_dev ti_am335x_tscadc ti_cal pruss videobuf2_dma_contig v4l2_fwnode videobuf2_memops videobuf2_v4l2 videobuf2_common sa2ul sha512_generic authenc phy_omap_usb2 dwc3_keystone rtc_pcf2127 bluetooth ecdh_generic ecc rfkill pvrsrvkm(O) sch_fq_codel cryptodev(O) ipv6
    [  270.250471] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G           O      5.10.41-g4c2eade9f7 #17
    [  270.258984] Hardware name: Texas Instruments AM654 Base Board (DT)
    [  270.265159] pstate: 20000005 (nzCv daif -PAN -UAO -TCO BTYPE=--)
    [  270.271167] pc : dev_watchdog+0x300/0x308
    [  270.275170] lr : dev_watchdog+0x300/0x308
    [  270.279171] sp : ffff80001138fdb0
    [  270.282477] x29: ffff80001138fdb0 x28: ffff0000169e3440
    [  270.287784] x27: 0000000000000004 x26: 0000000000000140
    [  270.293091] x25: 00000000ffffffff x24: 0000000000000001
    [  270.298396] x23: ffff00001746039c x22: ffff000017460000
    [  270.303703] x21: ffff000017460440 x20: ffff800011131000
    [  270.309009] x19: 0000000000000000 x18: 0000000000000010
    [  270.314314] x17: 0000000000000000 x16: 0000000000000000
    [  270.319620] x15: ffff0000033cad30 x14: 00000000000001be
    [  270.324926] x13: ffff0000033cad30 x12: 00000000ffffffea
    [  270.330232] x11: ffff8000111ba360 x10: ffff8000111a2320
    [  270.335538] x9 : ffff8000111a2378 x8 : 0000000000017fe8
    [  270.340844] x7 : c0000000ffffefff x6 : 0000000000000003
    [  270.346150] x5 : 0000000000000000 x4 : 0000000000000000
    [  270.351456] x3 : 0000000000000100 x2 : 0000000000000100
    [  270.356762] x1 : ebd6924cb7b0c300 x0 : 0000000000000000
    [  270.362068] Call trace:
    [  270.364516]  dev_watchdog+0x300/0x308
    [  270.368177]  call_timer_fn.isra.0+0x24/0x80
    [  270.372355]  run_timer_softirq+0x3f0/0x418
    [  270.376444]  efi_header_end+0x120/0x268
    [  270.380274]  irq_exit+0xc0/0xe0
    [  270.383411]  __handle_domain_irq+0x68/0xc0
    [  270.387503]  gic_handle_irq+0x58/0x128
    [  270.391244]  el1_irq+0xcc/0x180
    [  270.394383]  arch_cpu_idle+0x18/0x28
    [  270.397952]  default_idle_call+0x20/0x68
    [  270.401867]  do_idle+0xc0/0x128
    [  270.405003]  cpu_startup_entry+0x24/0x60
    [  270.408921]  secondary_start_kernel+0x15c/0x188
    [  270.413443] ---[ end trace f211e1d6a5de1cda ]---
    [  270.418102] icssg-prueth icssg0-eth eth1: xmit timeout
    [  275.020965] icssg-prueth icssg0-eth eth1: xmit timeout
    

    From dmesg | grep icssg-prueth:

    [ 18.151890] icssg-prueth icssg0-eth: port 1: using random MAC addr: 2e:80:8e:7e:2b:c3
    [ 18.181383] icssg-prueth icssg0-eth: port 2: using random MAC addr: ee:eb:e7:d4:53:aa
    [ 18.194831] icssg-prueth icssg0-eth: TI PRU ethernet driver initialized: dual EMAC mode
    [ 20.374018] icssg-prueth icssg0-eth: settime timeout
    [ 20.428032] icssg-prueth icssg0-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [ 132.269732] icssg-prueth icssg0-eth eth1: Link is Up - 100Mbps/Full - flow control off
    [ 270.161621] NETDEV WATCHDOG: eth1 (icssg-prueth): transmit queue 0 timed out

    Thanks

    Kenn

  • Hi,

    Thank you for posted information. I see that you still experiencing the timeout issue. I want to confirm that the PRU MAC is not sending any packets. So could you please post the results to the following commands:

    ethtool eth1

    and ifconfig eth1 after the udhcpc command?

    Would you be able to attach a scope and verify that tx clock between the PHY and the MAC?

    Best Regards,

    Schuyler

  • thanks Schuyler

    ethtool eth1 and ifconfig eth1 after the udhcpc command:

    root@am65xx-evm:~# ethtool eth1
    Settings for eth1:
            Supported ports: [ TP    MII ]
            Supported link modes:   10baseT/Full
                                    100baseT/Full
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Supported FEC modes: Not reported
            Advertised link modes:  10baseT/Full
                                    100baseT/Full
            Advertised pause frame use: No
            Advertised auto-negotiation: Yes
            Advertised FEC modes: Not reported
            Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                 100baseT/Half 100baseT/Full
            Link partner advertised pause frame use: No
            Link partner advertised auto-negotiation: Yes
            Link partner advertised FEC modes: Not reported
            Speed: 100Mb/s
            Duplex: Full
            Auto-negotiation: on
            Port: Twisted Pair
            PHYAD: 1
            Transceiver: external
            MDI-X: Unknown
            Current message level: 0x00007fff (32767)
                                   drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
            Link detected: yes
    root@am65xx-evm:~# udhcpc -i eth1
    udhcpc: started, v1.31.1
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    ^C
    root@am65xx-evm:~# ifconfig eth1
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
            inet6 fe80::8caf:d2ff:feb8:d4df  prefixlen 64  scopeid 0x20<link>
            ether 8e:af:d2:b8:d4:df  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 32  bytes 6572 (6.4 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    Thanks

    Kenn

  • Hi,

    I apologize, I need to ethtool -S eth1 as well. I am looking to see if the TX packet Count is greater than 0.

    Best Regards,

    Schuyler

  • Ok, see the result below:

    ethtool -S eth1
    NIC statistics:
         rx_good_frames: 0
         rx_broadcast_frames: 0
         rx_multicast_frames: 0
         rx_crc_error_frames: 0
         rx_mii_error_frames: 0
         rx_odd_nibble_frames: 0
         rx_frame_max_size: 2000
         rx_max_size_error_frames: 0
         rx_frame_min_size: 64
         rx_min_size_error_frames: 0
         rx_overrun_frames: 0
         rx_class0_hits: 0
         rx_class1_hits: 0
         rx_class2_hits: 0
         rx_class3_hits: 0
         rx_class4_hits: 0
         rx_class5_hits: 0
         rx_class6_hits: 0
         rx_class7_hits: 0
         rx_class8_hits: 0
         rx_class9_hits: 0
         rx_class10_hits: 0
         rx_class11_hits: 0
         rx_class12_hits: 0
         rx_class13_hits: 0
         rx_class14_hits: 0
         rx_class15_hits: 0
         rx_smd_frags: 0
         rx_bucket1_size: 64
         rx_bucket2_size: 128
         rx_bucket3_size: 256
         rx_bucket4_size: 512
         rx_64B_frames: 0
         rx_bucket1_frames: 0
         rx_bucket2_frames: 0
         rx_bucket3_frames: 0
         rx_bucket4_frames: 0
         rx_bucket5_frames: 0
         rx_total_bytes: 0
         rx_tx_total_bytes: 98
         tx_good_frames: 1
         tx_broadcast_frames: 0
         tx_multicast_frames: 1
         tx_odd_nibble_frames: 0
         tx_underflow_errors: 0
         tx_frame_max_size: 2000
         tx_max_size_error_frames: 0
         tx_frame_min_size: 64
         tx_min_size_error_frames: 0
         tx_bucket1_size: 64
         tx_bucket2_size: 128
         tx_bucket3_size: 256
         tx_bucket4_size: 512
         tx_64B_frames: 0
         tx_bucket1_frames: 0
         tx_bucket2_frames: 1
         tx_bucket3_frames: 0
         tx_bucket4_frames: 0
         tx_bucket5_frames: 0
         tx_total_bytes: 98
    
    ifconfig  eth1
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
            inet6 fe80::8caf:d2ff:feb8:d4df  prefixlen 64  scopeid 0x20<link>
            ether 8e:af:d2:b8:d4:df  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 36  bytes 6480 (6.3 KiB)
            TX errors 27  dropped 0 overruns 0  carrier 0  collisions 0
    

  • Hello Wan Kun

    We have reverified MII working on the EVM (requires modifications) and the latest 8.02 SDK.The MII support was added to the kernel in v5.10.59 but 8.0 SDK has v5.10.42, so it will not work. So you will need to move to 08.02 SDK.

    Will share the DT patches in a day or two but wanted to keep you posted on the progress.

    Regards

    Mukul 

  • Hello Mukul

    We had applied the DT patch( from Tony) into the 8.02 sdk, but it also didn't work, it almost had the same failed phnomena with 8.0 sdk:

    root@am65xx-evm:~# udhcpc -i eth1
    udhcpc: started, v1.31.1
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending discover
    ^C
    root@am65xx-evm:~#
    root@am65xx-evm:~# ifconfig
    docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500  metric 1
            inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
            ether 02:42:c8:db:3b:ef  txqueuelen 0  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500  metric 1
            ether 30:e2:83:b4:07:82  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
            inet6 fe80::d4b7:4bff:fea5:9a22  prefixlen 64  scopeid 0x20<link>
            ether d6:b7:4b:a5:9a:22  txqueuelen 1000  (Ethernet)
            RX packets 365  bytes 32233 (31.4 KiB)
            RX errors 0  dropped 9  overruns 0  frame 0
            TX packets 31  bytes 6230 (6.0 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
            inet6 fe80::6873:c0ff:fe79:500  prefixlen 64  scopeid 0x20<link>
            ether 6a:73:c0:79:05:00  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 27  bytes 4566 (4.4 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536  metric 1
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 82  bytes 6220 (6.0 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 82  bytes 6220 (6.0 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            
    [  270.147584] ------------[ cut here ]------------
    [  270.152236] NETDEV WATCHDOG: eth1 (icssg-prueth): transmit queue 0 timed out
    [  270.159370] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:467 dev_watchdog+0x300/0x308
    [  270.167621] Modules linked in: xt_conntrack xt_MASQUERADE xt_addrtype iptable_filter iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c ip_tables x_tables bridge stp llc overlay xfrm_user xfrm_algo md5 ecb aes_neon_bs aes_neon_blk des_generic libdes cbc bluetooth ecdh_generic ecc rfkill xhci_plat_hcd xhci_hcd usbcore rpmsg_char ti_am335x_adc kfifo_buf omap_rng rng_core irq_pruss_intc dwc3 udc_core roles usb_common icssg_prueth crct10dif_ce snd_soc_simple_card snd_soc_simple_card_utils pru_rproc icss_iep phy_can_transceiver ti_k3_r5_remoteproc virtio_rpmsg_bus m_can_platform m_can can_dev ti_am335x_tscadc ti_cal videobuf2_dma_contig v4l2_fwnode pruss videobuf2_memops videobuf2_v4l2 videobuf2_common pvrsrvkm(O) sa2ul sha512_generic authenc phy_omap_usb2 dwc3_keystone rtc_pcf2127 sch_fq_codel cryptodev(O) ipv6
    [  270.241092] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O      5.10.100-g7a7a3af903 #1
    [  270.249600] Hardware name: Texas Instruments AM654 Base Board (DT)
    [  270.255771] pstate: 20000005 (nzCv daif -PAN -UAO -TCO BTYPE=--)
    [  270.261771] pc : dev_watchdog+0x300/0x308
    [  270.265773] lr : dev_watchdog+0x300/0x308
    [  270.269773] sp : ffff8000113afdb0
    [  270.273079] x29: ffff8000113afdb0 x28: ffff000005bdcc40
    [  270.278385] x27: 0000000000000004 x26: 0000000000000140
    [  270.283691] x25: 00000000ffffffff x24: 0000000000000000
    [  270.288997] x23: ffff000005f8239c x22: ffff000005f82000
    [  270.294303] x21: ffff000005f82440 x20: ffff800011171000
    [  270.299609] x19: 0000000000000000 x18: 0000000000000010
    [  270.304914] x17: 0000000000000000 x16: 0000000000000000
    [  270.310220] x15: ffff80001117beb0 x14: 00000000000001c4
    [  270.315526] x13: ffff80001117beb0 x12: 00000000ffffffea
    [  270.320831] x11: ffff8000111fa3e0 x10: ffff8000111e23a0
    [  270.326137] x9 : ffff8000111e23f8 x8 : 0000000000017fe8
    [  270.331442] x7 : c0000000ffffefff x6 : 0000000000000003
    [  270.336748] x5 : 0000000000000000 x4 : 0000000000000000
    [  270.342053] x3 : 0000000000000100 x2 : 0000000000000100
    [  270.347359] x1 : 950309abaccff900 x0 : 0000000000000000
    [  270.352666] Call trace:
    [  270.355111]  dev_watchdog+0x300/0x308
    [  270.358772]  call_timer_fn.isra.0+0x24/0x80
    [  270.362949]  run_timer_softirq+0x3f0/0x418
    [  270.367039]  efi_header_end+0x120/0x268
    [  270.370870]  irq_exit+0xc0/0xe0
    [  270.374007]  __handle_domain_irq+0x68/0xc0
    [  270.378099]  gic_handle_irq+0x58/0x128
    [  270.381841]  el1_irq+0xcc/0x180
    [  270.384980]  arch_cpu_idle+0x18/0x28
    [  270.388549]  default_idle_call+0x20/0x68
    [  270.392466]  do_idle+0xc0/0x128
    [  270.395600]  cpu_startup_entry+0x24/0x60
    [  270.399515]  rest_init+0xd4/0xe4
    [  270.402740]  arch_call_rest_init+0x10/0x1c
    [  270.406829]  start_kernel+0x48c/0x4c4
    [  270.410483] ---[ end trace e77b3a4ca47e5e10 ]---
    [  270.415121] icssg-prueth icssg0-eth eth1: xmit timeout
    [  275.011594] icssg-prueth icssg0-eth eth1: xmit timeout
    [  280.131599] icssg-prueth icssg0-eth eth1: xmit timeout
    [  284.995594] icssg-prueth icssg0-eth eth1: xmit timeout
    [  290.115600] icssg-prueth icssg0-eth eth1: xmit timeout
    [  294.979595] icssg-prueth icssg0-eth eth1: xmit timeout
    [  300.099610] icssg-prueth icssg0-eth eth1: xmit timeout
    [  304.963593] icssg-prueth icssg0-eth eth1: xmit timeout
    [  310.083595] icssg-prueth icssg0-eth eth1: xmit timeout
    [  314.947593] icssg-prueth icssg0-eth eth1: xmit timeout
    [  320.067594] icssg-prueth icssg0-eth eth1: xmit timeout
    [  324.931598] icssg-prueth icssg0-eth eth1: xmit timeout
    [  330.051595] icssg-prueth icssg0-eth eth1: xmit timeout
    [  335.171595] icssg-prueth icssg0-eth eth1: xmit timeout
    [  341.059601] icssg-prueth icssg0-eth eth1: xmit timeout
    [  345.923594] icssg-prueth icssg0-eth eth1: xmit timeout
    [  351.043597] icssg-prueth icssg0-eth eth1: xmit timeout
    [  356.163597] icssg-prueth icssg0-eth eth1: xmit timeout
    [  362.051598] icssg-prueth icssg0-eth eth1: xmit timeout
    [  367.171598] icssg-prueth icssg0-eth eth1: xmit timeout
    [  373.059597] icssg-prueth icssg0-eth eth1: xmit timeout
    [  377.923598] icssg-prueth icssg0-eth eth1: xmit timeout
    [  383.043604] icssg-prueth icssg0-eth eth1: xmit timeout
    [  388.163597] icssg-prueth icssg0-eth eth1: xmit timeout
    
    
    root@am65xx-evm:~# [16481.863578] rcu: INFO: rcu_preempt self-detected stall on CPU
    [16481.869346] rcu:     0-....: (5249 ticks this GP) idle=73a/0/0x7 softirq=45193/45193 fqs=1862
    [16481.877683]  (t=5250 jiffies g=78905 q=771)
    [16481.881858] Task dump for CPU 0:
    [16481.885080] task:swapper/0       state:R  running task     stack:    0 pid:    0 ppid:     0 flags:0x0000002a
    [16481.894986] Call trace:
    [16481.897441]  dump_backtrace+0x0/0x1a0
    [16481.901099]  show_stack+0x18/0x68
    [16481.904411]  sched_show_task+0x13c/0x168
    [16481.908329]  dump_cpu_task+0x44/0x54
    [16481.911899]  rcu_dump_cpu_stacks+0xb0/0xf0
    [16481.915991]  rcu_sched_clock_irq+0x94c/0xc68
    [16481.920256]  update_process_times+0x60/0xa0
    [16481.924433]  tick_sched_handle.isra.0+0x34/0x50
    [16481.928955]  tick_sched_timer+0x4c/0xa8
    [16481.932784]  __hrtimer_run_queues+0x114/0x1b8
    [16481.937133]  hrtimer_interrupt+0xe8/0x248
    [16481.941139]  arch_timer_handler_phys+0x34/0x48
    [16481.945578]  handle_percpu_devid_irq+0x84/0x148
    [16481.950102]  generic_handle_irq+0x30/0x48
    [16481.954104]  __handle_domain_irq+0x64/0xc0
    [16481.958197]  gic_handle_irq+0x58/0x128
    [16481.961939]  el1_irq+0xcc/0x180
    [16481.965073]  efi_header_end+0x148/0x268
    [16481.968902]  irq_exit+0xc0/0xe0
    [16481.972038]  __handle_domain_irq+0x68/0xc0
    [16481.976128]  gic_handle_irq+0x58/0x128
    [16481.979869]  el1_irq+0xcc/0x180
    [16481.983006]  arch_cpu_idle+0x18/0x28
    [16481.986575]  default_idle_call+0x20/0x68
    [16481.990492]  do_idle+0xc0/0x128
    [16481.993626]  cpu_startup_entry+0x28/0x60
    [16481.997541]  rest_init+0xd4/0xe4
    [16482.000764]  arch_call_rest_init+0x10/0x1c
    [16482.004852]  start_kernel+0x48c/0x4c4
    
    

    the last rcu info didn't appear last time, it's new failed info.

    Other attentions: we commented some pins definition(blue parts below) in icssg-eth2 because of conflicts with mcasp1( we used), it should be ok because we don't use icssg-eth2, right?

    icssg0_mii_pins_default: icssg0-mii-pins-default {
    pinctrl-single,pins = <
    AM65X_IOPAD(0x0284, PIN_INPUT_PULLDOWN, 1) /* (AC24) PRG0_PRU1_GPO16.pr0_mii_mt0_clk */
    AM65X_IOPAD(0x0280, PIN_OUTPUT_PULLDOWN, 0) /* (AE27) PRG0_PRU1_GPO15.pr0_mii0_txen */
    AM65X_IOPAD(0x027c, PIN_OUTPUT_PULLDOWN, 0) /* (AD24) PRG0_PRU1_GPO14.pr0_mii0_txd3 */
    AM65X_IOPAD(0x0278, PIN_OUTPUT_PULLDOWN, 0) /* (AD25) PRG0_PRU1_GPO13.pr0_mii0_txd2 */
    AM65X_IOPAD(0x0274, PIN_OUTPUT_PULLDOWN, 0) /* (AC25) PRG0_PRU1_GPO12.pr0_mii0_txd1 */
    AM65X_IOPAD(0x0270, PIN_OUTPUT_PULLDOWN, 0) /* (AB24) PRG0_PRU1_GPO11.pr0_mii0_txd0 */
    AM65X_IOPAD(0x0204, PIN_INPUT_PULLDOWN, 1) /* (Y24) PRG0_PRU0_GPO4.pr0_mii0_rxdv */
    AM65X_IOPAD(0x020c, PIN_INPUT_PULLDOWN, 1) /* (Y25) PRG0_PRU0_GPO6.pr0_mii_mr0_clk */
    AM65X_IOPAD(0x0200, PIN_INPUT_PULLDOWN, 1) /* (AA27) PRG0_PRU0_GPO3.pr0_mii0_rxd3 */
    AM65X_IOPAD(0x01fc, PIN_INPUT_PULLDOWN, 1) /* (W24) PRG0_PRU0_GPO2.pr0_mii0_rxd2 */
    /*AM65X_IOPAD(0x021c, PIN_INPUT_PULLDOWN, 1) /* (U25) PRG0_PRU0_GPO10.pr0_mii0_crs */
    AM65X_IOPAD(0x0208, PIN_INPUT_PULLDOWN, 1) /* (V28) PRG0_PRU0_GPO5.pr0_mii0_rxer */
    AM65X_IOPAD(0x01f8, PIN_INPUT_PULLDOWN, 1) /* (W25) PRG0_PRU0_GPO1.pr0_mii0_rxd1 */
    AM65X_IOPAD(0x01f4, PIN_INPUT_PULLDOWN, 1) /* (V24) PRG0_PRU0_GPO0.pr0_mii0_rxd0 */
    /*AM65X_IOPAD(0x0218, PIN_INPUT_PULLDOWN, 1) /* (V26) PRG0_PRU0_GPO9.pr0_mii0_col */
    AM65X_IOPAD(0x0214, PIN_INPUT_PULLDOWN, 1) /* (V27) PRG0_PRU0_GPO8.pr0_mii0_rxlink */

    AM65X_IOPAD(0x0234, PIN_INPUT, 1) /* (AD28) PRG0_PRU0_GPO16.pr0_mii_mt1_clk */
    AM65X_IOPAD(0x0230, PIN_OUTPUT, 0) /* (AA24) PRG0_PRU0_GPO15.pr0_mii1_txen */
    AM65X_IOPAD(0x022c, PIN_OUTPUT, 0) /* (AD26) PRG0_PRU0_GPO14.pr0_mii1_txd3 */
    AM65X_IOPAD(0x0228, PIN_OUTPUT, 0) /* (AC26) PRG0_PRU0_GPO13.pr0_mii1_txd2 */
    AM65X_IOPAD(0x0224, PIN_OUTPUT, 0) /* (AD27) PRG0_PRU0_GPO12.pr0_mii1_txd1 */
    AM65X_IOPAD(0x0220, PIN_OUTPUT, 0) /* (AB25) PRG0_PRU0_GPO11.pr0_mii1_txd0 */
    /*AM65X_IOPAD(0x0254, PIN_INPUT, 1) (AA25) PRG0_PRU1_GPO4.pr0_mii1_rxdv */
    AM65X_IOPAD(0x025c, PIN_INPUT, 1) /* (AB27) PRG0_PRU1_GPO6.pr0_mii_mr1_clk */
    AM65X_IOPAD(0x0250, PIN_INPUT, 1) /* (AB26) PRG0_PRU1_GPO3.pr0_mii1_rxd3 */
    AM65X_IOPAD(0x024c, PIN_INPUT, 1) /* (AC27) PRG0_PRU1_GPO2.pr0_mii1_rxd2 */
    AM65X_IOPAD(0x0258, PIN_INPUT, 1) /* (U23) PRG0_PRU1_GPO5.pr0_mii1_rxer */
    /*AM65X_IOPAD(0x0248, PIN_INPUT, 1) (AC28) PRG0_PRU1_GPO1.pr0_mii1_rxd1 */
    /*AM65X_IOPAD(0x0244, PIN_INPUT, 1) (AB28) PRG0_PRU1_GPO0.pr0_mii1_rxd0 */
    AM65X_IOPAD(0x0264, PIN_INPUT, 1) /* (W27) PRG0_PRU1_GPO8.pr0_mii1_rxlink */
    >;
    };

    Thanks

    Kenn