This thread has been locked.

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

Linux/AM6548: AM6548 PRU, RGMII with 100 MBit for DP83TC811 PHY won't work

Part Number: AM6548
Other Parts Discussed in Thread: DP83TC811

Tool/software: Linux

Hello,

I need to get an RGMII connection between PRU0/ICSSG1 of the AM6548 and a DP83TC811 PHY to work.

I'm running a debian Linux with kernel version 4.14.79 on the AM654x EVM. I'm using the PHY driver which can be found here:
https://github.com/torvalds/linux/blob/00f553660a7f524a3b913cb5cf6c5f33f9638f09/drivers/net/phy/dp83tc811.c

I can't get the RGMII connection up and runnig with 25 MHz clock/100 Mbit. No matter what connection speed I enforce within the driver, I always get 125 MHz RGMII clock from the AM6548.

When manually changing the RGMII0_GIG_IN bit of the ICSSG_RGMII_CFG register to 0, the RGMII output clock of the AM6548 is set to 25 MHz, but there is no communication going on towards the PHY.

When the PHY on the other hand receives an ethernet packet, it can be correctly received by the linux OS.

I'm currently running out of ideas how to fix this. It would be great if anyone got some useful tips how to solve this problem.

Best Regards,

Björn

  • Hi,

    I am sorry, Debian is not supported by TI. Please use the Processor SDK: www.ti.com/.../PROCESSOR-SDK-AM65X
  • I did use the SDK with exact same issue. Im using Debian with the exact same kernel and drivers provided by the SDK, therefore I think the problem is independent of the Linux distribution.

    Best Regards,
    Björn
  • Hello Bjoern,

    Please attach your boot log and dts file.

    Regards,
    Nick
  • Hi Nick,

    here are my DTS and the boot log. I'm having the problem with PRU0 of ICSSG0 and ICSSG1.

    // SPDX-License-Identifier: GPL-2.0
    /*
     * Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
     */
    
    /dts-v1/;
    
    #include "k3-am654.dtsi"
    #include <dt-bindings/net/ti-dp83867.h>
    #include <dt-bindings/input/input.h>
    
    / {
        compatible =  "ti,am654-evm", "ti,am654";
        model = "Texas Instruments AM654 Base Board";
    
        aliases {
            ethernet1 = &pruss2_emac0;
            ethernet2 = &pruss2_emac1;
            ethernet3 = &pruss0_emac0;
            ethernet4 = &pruss1_emac0;
            spi0 = &main_spi0;
        };
    
        chosen {
            stdout-path = "serial2:115200n8";
            bootargs = "earlycon=ns16550a,mmio32,0x02800000";
        };
    
        memory@80000000 {
            device_type = "memory";
            /* 4G RAM */
            reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
                  <0x00000008 0x80000000 0x00000000 0x80000000>;
        };
    
        reserved-memory {
            #address-cells = <2>;
            #size-cells = <2>;
            ranges;
    
            r5f1_dma_memory_region: r5f1-dma-memory@9b000000 {
                compatible = "shared-dma-pool";
                reg = <0 0x9b000000 0 0x100000>;
                no-map;
            };
    
            r5f1_memory_region: r5f1-memory@9b100000 {
                compatible = "shared-dma-pool";
                reg = <0 0x9b100000 0 0xf00000>;
                no-map;
            };
    
            r5f0_dma_memory_region: r5f0-dma-memory@9c000000 {
                compatible = "shared-dma-pool";
                reg = <0 0x9c000000 0 0x100000>;
                no-map;
            };
    
            r5f0_memory_region: r5f0-memory@9c100000 {
                compatible = "shared-dma-pool";
                reg = <0 0x9c100000 0 0x700000>;
                no-map;
            };
    
            secure_ddr: secure_ddr@9e800000 {
                reg = <0 0x9e800000 0 0x01800000>; /* for OP-TEE */
                alignment = <0x1000>;
                no-map;
            };
        };
    
        /* Dual Ethernet application node on PRU-ICSSG2 */
        pruss2_eth: pruss2_eth {
            compatible = "ti,am654-icssg-prueth";
            pinctrl-names = "default";
            pinctrl-0 = <&icssg2_rgmii_pins_default>;
            sram = <&msmc_ram>;
            interrupt-parent = <&main_udmass_inta>;
    
            prus = <&pru2_0>, <&rtu2_0>, <&pru2_1>, <&rtu2_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";
            mii-g-rt = <&icssg2_mii_g_rt>;
            dma-coherent;
            dmas = <&main_udmap &pruss2_eth 0 UDMA_DIR_TX>,    /* SLICE 0 */
                   <&main_udmap &pruss2_eth 0 UDMA_DIR_RX>,
                   <&main_udmap &pruss2_eth 4 UDMA_DIR_TX>,    /* SLICE 1 */
                   <&main_udmap &pruss2_eth 1 UDMA_DIR_RX>;
            dma-names = "tx0", "rx0", "tx1", "rx1";
    
            ti,psil-base = <0x4300>;    /* ICSSG2 PSIL thread start */
            ti,psil-config0 {
                linux,udma-mode = <UDMA_PKT_MODE>;
                ti,psd-size = <0>;
            };
    
            ti,psil-config1 {
                linux,udma-mode = <UDMA_PKT_MODE>;
                ti,psd-size = <0>;
            };
    
            ti,psil-config4 {
                linux,udma-mode = <UDMA_PKT_MODE>;
                ti,psd-size = <0>;
            };
    
            pruss2_emac0: ethernet-mii0 {
                phy-handle = <&pruss2_eth0_phy>;
                phy-mode = "rgmii-id";
                syscon-rgmii-delay = <&scm_conf 0x4120>;
                /* Filled in by bootloader */
                local-mac-address = [00 00 00 00 00 00];
            };
    
            pruss2_emac1: ethernet-mii1 {
                phy-handle = <&pruss2_eth1_phy>;
                phy-mode = "rgmii-id";
                syscon-rgmii-delay = <&scm_conf 0x4124>;
                /* Filled in by bootloader */
                local-mac-address = [00 00 00 00 00 00];
            };
        };
    
        /* Single Ethernet application node on PRU-ICSSG1 */
                    pruss1_eth: pruss1_eth {
                            compatible = "ti,am654-icssg-prueth";
                            pinctrl-names = "default";
                            pinctrl-0 = <&icssg1_rgmii_pins_default>;
                            sram = <&msmc_ram>;
                            interrupt-parent = <&main_udmass_inta>;
    
                            prus = <&pru1_0>, <&rtu1_0>;
                            firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
                                            "ti-pruss/am65x-rtu0-prueth-fw.elf";
                            mii-g-rt = <&icssg1_mii_g_rt>;
                            dma-coherent;
                            dmas = <&main_udmap &pruss1_eth 0 UDMA_DIR_TX>, /* SLICE 0 */
                                   <&main_udmap &pruss1_eth 0 UDMA_DIR_RX>,
                                   <&main_udmap &pruss1_eth 4 UDMA_DIR_TX>, /* SLICE 1 */
                                   <&main_udmap &pruss1_eth 1 UDMA_DIR_RX>;
                            dma-names = "tx0", "rx0", "tx1", "rx1";
    
                            ti,psil-base = <0x4200>;        /* ICSSG1 PSIL thread start */
                            ti,psil-config0 {
                                    linux,udma-mode = <UDMA_PKT_MODE>;
                                    ti,psd-size = <0>;
                            };
    
                            ti,psil-config1 {
                                    linux,udma-mode = <UDMA_PKT_MODE>;
                                    ti,psd-size = <0>;
                            };
    
                            ti,psil-config4 {
                                    linux,udma-mode = <UDMA_PKT_MODE>;
                                    ti,psd-size = <0>;
                            };
    
                            pruss1_emac0: ethernet-mii0 {
                                    phy-handle = <&pruss1_eth0_phy>;
                                    phy-mode = "rgmii-id";
                                    syscon-rgmii-delay = <&scm_conf 0x4110>;
                                    /* Filled in by bootloader */
                                    local-mac-address = [00 00 00 00 00 00];
                            };
    
                       /*     pruss1_emac1: ethernet-mii1 {
                                    phy-handle = <&pruss1_eth1_phy>;
                                    phy-mode = "rgmii-id";
                                    /* Filled in by bootloader */
                       /*             syscon-rgmii-delay = <&scm_conf 0x4114>;
                                    local-mac-address = [00 00 00 00 00 00];
                            }; */
                    };
    
    
    
          /* Single Ethernet application node on PRU-ICSSG0 */
                    pruss0_eth: pruss0_eth {
                            compatible = "ti,am654-icssg-prueth";
                            pinctrl-names = "default";
                            pinctrl-0 = <&icssg0_rgmii_pins_default>;
                            sram = <&msmc_ram>;
                            interrupt-parent = <&main_udmass_inta>;
    
                            prus = <&pru0_0>, <&rtu0_0>;
                            firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
                                            "ti-pruss/am65x-rtu0-prueth-fw.elf";
                            mii-g-rt = <&icssg0_mii_g_rt>;
                            dma-coherent;
                            dmas = <&main_udmap &pruss0_eth 0 UDMA_DIR_TX>, /* SLICE 0 */
                                   <&main_udmap &pruss0_eth 0 UDMA_DIR_RX>,
                                   <&main_udmap &pruss0_eth 4 UDMA_DIR_TX>, /* SLICE 1 */
                                   <&main_udmap &pruss0_eth 1 UDMA_DIR_RX>;
                            dma-names = "tx0", "rx0", "tx1", "rx1";
    
                            ti,psil-base = <0x4100>;        /* ICSSG0 PSIL thread start */
                            ti,psil-config0 {
                                    linux,udma-mode = <UDMA_PKT_MODE>;
                                    ti,psd-size = <0>;
                            };
    
                            ti,psil-config1 {
                                    linux,udma-mode = <UDMA_PKT_MODE>;
                                    ti,psd-size = <0>;
                            };
    
                            ti,psil-config4 {
                                    linux,udma-mode = <UDMA_PKT_MODE>;
                                    ti,psd-size = <0>;
                            };
    
                            pruss0_emac0: ethernet-mii0 {
                                    phy-handle = <&pruss0_eth0_phy>;
                                    phy-mode = "rgmii-id";
                                    syscon-rgmii-delay = <&scm_conf 0x4100>;
                                    /* Filled in by bootloader */
                                    local-mac-address = [00 00 00 00 00 00];
                            };
        
                        /*    pruss0_emac1: ethernet-mii1 {
                                    phy-handle = <&pruss0_eth1_phy>;
                                    phy-mode = "rgmii-id";
                                    syscon-rgmii-delay = <&scm_conf 0x4104>;
                                    /* Filled in by bootloader */
                          /*          local-mac-address = [00 00 00 00 00 00];
                            };*/
                    };
    
    
        gpio-keys {
            compatible = "gpio-keys";
            autorepeat;
            pinctrl-names = "default";
            pinctrl-0 = <&push_button_pins_default>;
    
            sw5 {
                label = "GPIO Key USER1";
                linux,code = <BTN_0>;
                gpios = <&wkup_gpio0 24 GPIO_ACTIVE_LOW>;
            };
    
            sw6 {
                label = "GPIO Key USER2";
                linux,code = <BTN_1>;
                gpios = <&wkup_gpio0 27 GPIO_ACTIVE_LOW>;
            };
        };
    };
    
    &mcu_r5f0 {
        memory-region = <&r5f0_dma_memory_region>, <&r5f0_memory_region>;
    };
    
    &mcu_r5f1 {
        memory-region = <&r5f1_dma_memory_region>, <&r5f1_memory_region>;
    };
    
    &main_uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart0_pins_default>;
        status = "okay";
    };
    
    &main_pmx0 {
        main_uart0_pins_default: main_uart0_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x01e4, PIN_INPUT | MUX_MODE0)    /* (AF11) UART0_RXD */
                AM65X_IOPAD(0x01e8, PIN_OUTPUT | MUX_MODE0)    /* (AE11) UART0_TXD */
                AM65X_IOPAD(0x01ec, PIN_INPUT | MUX_MODE0)    /* (AG11) UART0_CTSn */
                AM65X_IOPAD(0x01f0, PIN_OUTPUT | MUX_MODE0)    /* (AD11) UART0_RTSn */
            >;
        };
    
        main_i2c2_pins_default: main_i2c2_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x0074, PIN_INPUT | MUX_MODE5) /* (T27) GPMC0_CSn3.I2C2_SCL */
                AM65X_IOPAD(0x0070, PIN_INPUT | MUX_MODE5) /* (R25) GPMC0_CSn2.I2C2_SDA */
            >;
        };
    
        usb1_pins_default: usb1_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x02c0, PIN_OUTPUT | MUX_MODE0) /* (AC8) USB1_DRVVBUS */
            >;
        };
    
        main_mmc0_pins_default: main_mmc0_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (B25) MMC0_CLK */
                AM65X_IOPAD(0x01aC, PIN_INPUT_PULLUP | MUX_MODE0) /* (B27) MMC0_CMD */
                AM65X_IOPAD(0x01a4, PIN_INPUT_PULLUP | MUX_MODE0) /* (A26) MMC0_DAT0 */
                AM65X_IOPAD(0x01a0, PIN_INPUT_PULLUP | MUX_MODE0) /* (E25) MMC0_DAT1 */
                AM65X_IOPAD(0x019c, PIN_INPUT_PULLUP | MUX_MODE0) /* (C26) MMC0_DAT2 */
                AM65X_IOPAD(0x0198, PIN_INPUT_PULLUP | MUX_MODE0) /* (A25) MMC0_DAT3 */
                AM65X_IOPAD(0x0194, PIN_INPUT_PULLUP | MUX_MODE0) /* (E24) MMC0_DAT4 */
                AM65X_IOPAD(0x0190, PIN_INPUT_PULLUP | MUX_MODE0) /* (A24) MMC0_DAT5 */
                AM65X_IOPAD(0x018c, PIN_INPUT_PULLUP | MUX_MODE0) /* (B26) MMC0_DAT6 */
                AM65X_IOPAD(0x0188, PIN_INPUT_PULLUP | MUX_MODE0) /* (D25) MMC0_DAT7 */
                AM65X_IOPAD(0x01b0, PIN_INPUT | MUX_MODE0) /* (C25) MMC0_DS */
            >;
        };
    
        main_mmc1_pins_default: main_mmc1_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (C27) MMC1_CLK */
                AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP | MUX_MODE0) /* (C28) MMC1_CMD */
                AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP | MUX_MODE0) /* (D28) MMC1_DAT0 */
                AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP | MUX_MODE0) /* (E27) MMC1_DAT1 */
                AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP | MUX_MODE0) /* (D26) MMC1_DAT2 */
                AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP | MUX_MODE0) /* (D27) MMC1_DAT3 */
                AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP | MUX_MODE0) /* (B24) MMC1_SDCD */
                AM65X_IOPAD(0x02e0, PIN_INPUT | MUX_MODE0) /* (C24) MMC1_SDWP */
            >;
        };
    
         icssg0_mdio_pins_default: icssg0_mdio_pins_default {
                    pinctrl-single,pins = <
                            AM65X_IOPAD(0x0294, PIN_INPUT | MUX_MODE0) /* (AE26) PRG0_MDIO0_MDIO */
                            AM65X_IOPAD(0x0298, PIN_OUTPUT | MUX_MODE0) /* (AE28) PRG0_MDIO0_MDC */
                    >;
            };
    
         icssg1_mdio_pins_default: icssg1_mdio_pins_default {
                    pinctrl-single,pins = <
                            AM65X_IOPAD(0x0180, PIN_INPUT | MUX_MODE0) /* (AD18) PRG1_MDIO0_MDIO */
                            AM65X_IOPAD(0x0184, PIN_OUTPUT | MUX_MODE0) /* (AH18) PRG1_MDIO0_MDC */
                    >;
            };
    
    
        icssg2_mdio_pins_default: icssg2_mdio_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x0094, PIN_INPUT | MUX_MODE2) /* (AC19) PRG2_PRU0_GPO7.PRG2_MDIO0_MDIO */
                AM65X_IOPAD(0x00c8, PIN_OUTPUT | MUX_MODE2) /* (AE15) PRG2_PRU1_GPO7.PRG2_MDIO0_MDC */
            >;
        };
    
         icssg0_rgmii_pins_default: icssg0_rgmii_pins_default {
                    pinctrl-single,pins = <
                            AM65X_IOPAD(0x01f4, PIN_INPUT | MUX_MODE2) /* (V24) PRG0_PRU0_GPO0.PRG0_RGMII1_RD0 */
                            AM65X_IOPAD(0x01f8, PIN_INPUT | MUX_MODE2) /* (W25) PRG0_PRU0_GPO1.PRG0_RGMII1_RD1 */
                            AM65X_IOPAD(0x01fc, PIN_INPUT | MUX_MODE2) /* (W24) PRG0_PRU0_GPO2.PRG0_RGMII1_RD2 */
                            AM65X_IOPAD(0x0200, PIN_INPUT | MUX_MODE2) /* (AA27) PRG0_PRU0_GPO3.PRG0_RGMII1_RD3 */
                            AM65X_IOPAD(0x0224, PIN_OUTPUT | MUX_MODE2) /* (AD27) PRG0_PRU0_GPO12.PRG0_RGMII1_TD0 */
                            AM65X_IOPAD(0x0228, PIN_OUTPUT | MUX_MODE2) /* (AC26) PRG0_PRU0_GPO13.PRG0_RGMII1_TD1 */
                            AM65X_IOPAD(0x022c, PIN_OUTPUT | MUX_MODE2) /* (AD26) PRG0_PRU0_GPO14.PRG0_RGMII1_TD2 */
                            AM65X_IOPAD(0x0230, PIN_OUTPUT | MUX_MODE2) /* (AA24) PRG0_PRU0_GPO15.PRG0_RGMII1_TD3 */
                            AM65X_IOPAD(0x0234, PIN_INPUT | MUX_MODE2) /* (AD28) PRG0_PRU0_GPO16.PRG0_RGMII1_TXC */
                            AM65X_IOPAD(0x0220, PIN_OUTPUT | MUX_MODE2) /* (AB25) PRG0_PRU0_GPO11.PRG0_RGMII1_TX_CTL */
                            AM65X_IOPAD(0x020c, PIN_INPUT | MUX_MODE2) /* (Y25) PRG0_PRU0_GPO6.PRG0_RGMII1_RXC */
                            AM65X_IOPAD(0x0204, PIN_INPUT | MUX_MODE2) /* (Y24) PRG0_PRU0_GPO4.PRG0_RGMII1_RX_CTL */
                    >;
            };
    
    
         icssg1_rgmii_pins_default: icssg1_rgmii_pins_default {
                    pinctrl-single,pins = <
                            AM65X_IOPAD(0x00e0, PIN_INPUT | MUX_MODE2) /* (AE22) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
                            AM65X_IOPAD(0x00e4, PIN_INPUT | MUX_MODE2) /* (AG24) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
                            AM65X_IOPAD(0x00e8, PIN_INPUT | MUX_MODE2) /* (AF23) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
                            AM65X_IOPAD(0x00ec, PIN_INPUT | MUX_MODE2) /* (AD21) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
                            AM65X_IOPAD(0x0110, PIN_OUTPUT | MUX_MODE2) /* (AH20) PRG1_PRU0_GPO12.PRG1_RGMII1_TD0 */
                            AM65X_IOPAD(0x0114, PIN_OUTPUT | MUX_MODE2) /* (AH21) PRG1_PRU0_GPO13.PRG1_RGMII1_TD1 */
                            AM65X_IOPAD(0x0118, PIN_OUTPUT | MUX_MODE2) /* (AG20) PRG1_PRU0_GPO14.PRG1_RGMII1_TD2 */
                            AM65X_IOPAD(0x011c, PIN_OUTPUT | MUX_MODE2) /* (AD19) PRG1_PRU0_GPO15.PRG1_RGMII1_TD3 */
                            AM65X_IOPAD(0x0120, PIN_INPUT | MUX_MODE2) /* (AD20) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
                            AM65X_IOPAD(0x010c, PIN_OUTPUT | MUX_MODE2) /* (AF21) PRG1_PRU0_GPO11.PRG1_RGMII1_TX_CTL */
                            AM65X_IOPAD(0x00f8, PIN_INPUT | MUX_MODE2) /* (AF22) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
                            AM65X_IOPAD(0x00f0, PIN_INPUT | MUX_MODE2) /* (AG23) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
                    >;
            };
    
    
        icssg2_rgmii_pins_default: icssg2_rgmii_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x00ac, PIN_INPUT | MUX_MODE2) /* (AH15) PRG2_PRU1_GPO0.PRG2_RGMII2_RD0 */
                AM65X_IOPAD(0x00b0, PIN_INPUT | MUX_MODE2) /* (AC16) PRG2_PRU1_GPO1.PRG2_RGMII2_RD1 */
                AM65X_IOPAD(0x00b4, PIN_INPUT | MUX_MODE2) /* (AD17) PRG2_PRU1_GPO2.PRG2_RGMII2_RD2 */
                AM65X_IOPAD(0x00b8, PIN_INPUT | MUX_MODE2) /* (AH14) PRG2_PRU1_GPO3.PRG2_RGMII2_RD3 */
                AM65X_IOPAD(0x00cc, PIN_OUTPUT | MUX_MODE2) /* (AD15) PRG2_PRU1_GPO8.PRG2_RGMII2_TD0 */
                AM65X_IOPAD(0x00d0, PIN_OUTPUT | MUX_MODE2) /* (AF14) PRG2_PRU1_GPO9.PRG2_RGMII2_TD1 */
                AM65X_IOPAD(0x00d4, PIN_OUTPUT | MUX_MODE2) /* (AC15) PRG2_PRU1_GPO10.PRG2_RGMII2_TD2 */
                AM65X_IOPAD(0x00d8, PIN_OUTPUT | MUX_MODE2) /* (AD14) PRG2_PRU1_GPO11.PRG2_RGMII2_TD3 */
                AM65X_IOPAD(0x00dc, PIN_INPUT | MUX_MODE2) /* (AE14) PRG2_PRU1_GPO16.PRG2_RGMII2_TXC */
                AM65X_IOPAD(0x00c4, PIN_OUTPUT | MUX_MODE2) /* (AC17) PRG2_PRU1_GPO6.PRG2_RGMII2_TX_CTL */
                AM65X_IOPAD(0x00c0, PIN_INPUT | MUX_MODE2) /* (AG15) PRG2_PRU1_GPO5.PRG2_RGMII2_RXC */
                AM65X_IOPAD(0x00bc, PIN_INPUT | MUX_MODE2) /* (AG14) PRG2_PRU1_GPO4.PRG2_RGMII2_RX_CTL */
    
                AM65X_IOPAD(0x0078, PIN_INPUT | MUX_MODE2) /* (AF18) PRG2_PRU0_GPO0.PRG2_RGMII1_RD0 */
                AM65X_IOPAD(0x007c, PIN_INPUT | MUX_MODE2) /* (AE18) PRG2_PRU0_GPO1.PRG2_RGMII1_RD1 */
                AM65X_IOPAD(0x0080, PIN_INPUT | MUX_MODE2) /* (AH17) PRG2_PRU0_GPO2.PRG2_RGMII1_RD2 */
                AM65X_IOPAD(0x0084, PIN_INPUT | MUX_MODE2) /* (AG18) PRG2_PRU0_GPO3.PRG2_RGMII1_RD3 */
                AM65X_IOPAD(0x0098, PIN_OUTPUT | MUX_MODE2) /* (AH16) PRG2_PRU0_GPO8.PRG2_RGMII1_TD0 */
                AM65X_IOPAD(0x009c, PIN_OUTPUT | MUX_MODE2) /* (AG16) PRG2_PRU0_GPO9.PRG2_RGMII1_TD1 */
                AM65X_IOPAD(0x00a0, PIN_OUTPUT | MUX_MODE2) /* (AF16) PRG2_PRU0_GPO10.PRG2_RGMII1_TD2 */
                AM65X_IOPAD(0x00a4, PIN_OUTPUT | MUX_MODE2) /* (AE16) PRG2_PRU0_GPO11.PRG2_RGMII1_TD3 */
                AM65X_IOPAD(0x00a8, PIN_INPUT | MUX_MODE2) /* (AD16) PRG2_PRU0_GPO16.PRG2_RGMII1_TXC */
                AM65X_IOPAD(0x0090, PIN_OUTPUT | MUX_MODE2) /* (AE17) PRG2_PRU0_GPO6.PRG2_RGMII1_TX_CTL */
                AM65X_IOPAD(0x008c, PIN_INPUT | MUX_MODE2) /* (AF17) PRG2_PRU0_GPO5.PRG2_RGMII1_RXC */
                AM65X_IOPAD(0x0088, PIN_INPUT | MUX_MODE2) /* (AG17) PRG2_PRU0_GPO4.PRG2_RGMII1_RX_CTL */
            >;
        };
    
        main_spi0_pins_default: main_spi0_pins_default {
            pinctrl-single,pins = <
                /*AM65X_IOPAD(0x01c4, PIN_INPUT | MUX_MODE0) /* (AH13) SPI0_CLK */
                /*AM65X_IOPAD(0x01c8, PIN_INPUT | MUX_MODE0) /* (AE13) SPI0_D0 */
                /*AM65X_IOPAD(0x01cc, PIN_INPUT | MUX_MODE0) /* (AD13) SPI0_D1 */
                /*AM65X_IOPAD(0x01bc, PIN_OUTPUT | MUX_MODE0) /* (AG13) SPI0_CS0 */
            >;
        };
    };
    
    &main_pmx1 {
        main_i2c0_pins_default: main_i2c0_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x0000, PIN_INPUT | MUX_MODE0) /* (D20) I2C0_SCL */
                AM65X_IOPAD(0x0004, PIN_INPUT | MUX_MODE0) /* (C21) I2C0_SDA */
            >;
        };
    
        main_i2c1_pins_default: main_i2c1_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x0008, PIN_INPUT | MUX_MODE0) /* (B21) I2C1_SCL */
                AM65X_IOPAD(0x000c, PIN_INPUT | MUX_MODE0) /* (E21) I2C1_SDA */
            >;
        };
    
        ecap0_pins_default: ecap0_pins_default {
            pinctrl-single,pins = <
                AM65X_IOPAD(0x0010, PIN_INPUT | MUX_MODE0) /* (D21) ECAP0_IN_APWM_OUT */
            >;
        };
    };
    
    &wkup_pmx0 {
        wkup_i2c0_pins_default: wkup_i2c0_pins_default {
            pinctrl-single,pins = <
                AM65X_WKUP_IOPAD(0x00e0, PIN_INPUT | MUX_MODE0) /* (AC7) WKUP_I2C0_SCL */
                AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT | MUX_MODE0) /* (AD6) WKUP_I2C0_SDA */
            >;
        };
    
        mcu_i2c0_pins_default: mcu_i2c0_pins_default {
            pinctrl-single,pins = <
                AM65X_WKUP_IOPAD(0x00e8, PIN_INPUT | MUX_MODE0) /* (AD8) MCU_I2C0_SCL */
                AM65X_WKUP_IOPAD(0x00ec, PIN_INPUT | MUX_MODE0) /* (AD7) MCU_I2C0_SDA */
            >;
        };
    
        push_button_pins_default: push_button__pins_default {
            pinctrl-single,pins = <
                AM65X_WKUP_IOPAD(0x0030, PIN_INPUT | MUX_MODE7) /* (R5) WKUP_GPIO0_24 */
                AM65X_WKUP_IOPAD(0x003c, PIN_INPUT | MUX_MODE7) /* (P2) WKUP_GPIO0_27 */
            >;
        };
    
        wkup_pca554_default: wkup_pca554_default {
            pinctrl-single,pins = <
                AM65X_WKUP_IOPAD(0x0034, PIN_INPUT | MUX_MODE7) /* (T1) MCU_OSPI1_CLK.WKUP_GPIO0_25 */
            >;
        };
    
        mcu_fss0_ospi0_pins_default: mcu_fss0_ospi0_pins_default {
            pinctrl-single,pins = <
                AM65X_WKUP_IOPAD(0x0000, PIN_OUTPUT | MUX_MODE0) /* (V1) MCU_OSPI0_CLK */
                AM65X_WKUP_IOPAD(0x0008, PIN_INPUT | MUX_MODE0)     /* (U2) MCU_OSPI0_DQS */
                AM65X_WKUP_IOPAD(0x000c, PIN_INPUT | MUX_MODE0)  /* (U4) MCU_OSPI0_D0 */
                AM65X_WKUP_IOPAD(0x0010, PIN_INPUT | MUX_MODE0)  /* (U5) MCU_OSPI0_D1 */
                AM65X_WKUP_IOPAD(0x0014, PIN_INPUT | MUX_MODE0)  /* (T2) MCU_OSPI0_D2 */
                AM65X_WKUP_IOPAD(0x0018, PIN_INPUT | MUX_MODE0)  /* (T3) MCU_OSPI0_D3 */
                AM65X_WKUP_IOPAD(0x001c, PIN_INPUT | MUX_MODE0)  /* (T4) MCU_OSPI0_D4 */
                AM65X_WKUP_IOPAD(0x0020, PIN_INPUT | MUX_MODE0)  /* (T5) MCU_OSPI0_D5 */
                AM65X_WKUP_IOPAD(0x0024, PIN_INPUT | MUX_MODE0)  /* (R2) MCU_OSPI0_D6 */
                AM65X_WKUP_IOPAD(0x0028, PIN_INPUT | MUX_MODE0)  /* (R3) MCU_OSPI0_D7 */
                AM65X_WKUP_IOPAD(0x002c, PIN_OUTPUT | MUX_MODE0) /* (R4) MCU_OSPI0_CSn0 */
            >;
        };
    
        mcu_cpsw_pins_default: mcu_cpsw_pins_default {
            pinctrl-single,pins = <
                AM65X_WKUP_IOPAD(0x0058, PIN_OUTPUT | MUX_MODE0) /* (N4) MCU_RGMII1_TX_CTL */
                AM65X_WKUP_IOPAD(0x005c, PIN_INPUT | MUX_MODE0) /* (N5) MCU_RGMII1_RX_CTL */
                AM65X_WKUP_IOPAD(0x0060, PIN_OUTPUT | MUX_MODE0) /* (M2) MCU_RGMII1_TD3 */
                AM65X_WKUP_IOPAD(0x0064, PIN_OUTPUT | MUX_MODE0) /* (M3) MCU_RGMII1_TD2 */
                AM65X_WKUP_IOPAD(0x0068, PIN_OUTPUT | MUX_MODE0) /* (M4) MCU_RGMII1_TD1 */
                AM65X_WKUP_IOPAD(0x006c, PIN_OUTPUT | MUX_MODE0) /* (M5) MCU_RGMII1_TD0 */
                AM65X_WKUP_IOPAD(0x0078, PIN_INPUT | MUX_MODE0) /* (L2) MCU_RGMII1_RD3 */
                AM65X_WKUP_IOPAD(0x007c, PIN_INPUT | MUX_MODE0) /* (L5) MCU_RGMII1_RD2 */
                AM65X_WKUP_IOPAD(0x0080, PIN_INPUT | MUX_MODE0) /* (M6) MCU_RGMII1_RD1 */
                AM65X_WKUP_IOPAD(0x0084, PIN_INPUT | MUX_MODE0) /* (L6) MCU_RGMII1_RD0 */
                AM65X_WKUP_IOPAD(0x0070, PIN_INPUT | MUX_MODE0) /* (N1) MCU_RGMII1_TXC */
                AM65X_WKUP_IOPAD(0x0074, PIN_INPUT | MUX_MODE0) /* (M1) MCU_RGMII1_RXC */
            >;
        };
    
        mcu_mdio_pins_default: mcu_mdio1_pins_default {
            pinctrl-single,pins = <
                AM65X_WKUP_IOPAD(0x008c, PIN_OUTPUT | MUX_MODE0) /* (L1) MCU_MDIO0_MDC */
                AM65X_WKUP_IOPAD(0x0088, PIN_INPUT | MUX_MODE0) /* (L4) MCU_MDIO0_MDIO */
            >;
        };
    };
    
    &wkup_i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&wkup_i2c0_pins_default>;
        status = "okay";
        clock-frequency = <400000>;
    
        eeprom@50 {
            compatible = "atmel,24c1024";
            reg = <0x50>;
        };
    
        pca9554: gpio@39 {
            compatible = "nxp,pca9554";
            pinctrl-names = "default";
            pinctrl-0 = <&wkup_pca554_default>;
            reg = <0x39>;
            gpio-controller;
            #gpio-cells = <2>;
            interrupt-parent = <&wkup_gpio0>;
            interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
            interrupt-controller;
            #interrupt-cells = <2>;
        };
    };
    
    &mcu_i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mcu_i2c0_pins_default>;
        status = "okay";
        clock-frequency = <400000>;
    };
    
    &main_i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_i2c0_pins_default>;
        status = "okay";
        clock-frequency = <400000>;
    
        pca9555: gpio@21 {
            compatible = "nxp,pca9555";
            reg = <0x21>;
            gpio-controller;
            #gpio-cells = <2>;
        };
    };
    
    &main_i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_i2c1_pins_default>;
        status = "okay";
        clock-frequency = <400000>;
    };
    
    &main_i2c2 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_i2c2_pins_default>;
        status = "okay";
        clock-frequency = <400000>;
    };
    
    &ecap0 {
        pinctrl-names = "default";
        pinctrl-0 = <&ecap0_pins_default>;
        status = "okay";
    };
    
    &dwc3_1 {
        status = "okay";
    };
    
    &usb1 {
        pinctrl-names = "default";
        pinctrl-0 = <&usb1_pins_default>;
        dr_mode = "otg";
    };
    
    &usb1_phy {
        status = "okay";
    };
    
    &ospi0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&mcu_fss0_ospi0_pins_default>;
    
        flash@0{
            compatible = "jedec,spi-nor";
            reg = <0x0>;
            spi-tx-bus-width = <1>;
            spi-rx-bus-width = <8>;
            spi-max-frequency = <50000000>;
            spi-dqs;
            cdns,tshsl-ns = <60>;
            cdns,tsd2d-ns = <60>;
            cdns,tchsh-ns = <60>;
            cdns,tslch-ns = <60>;
            cdns,read-delay = <2>;
            cdns,phy-mode;
            #address-cells = <1>;
            #size-cells = <1>;
        };
    };
    
    &mcu_cpsw {
        pinctrl-names = "default";
        pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
    };
    
    &davinci_mdio {
        phy0: ethernet-phy@0 {
            reg = <0>;
            /* TODO: phy reset: TCA9555RTWR(i2c:0x21)[p04].GPIO_MCU_RGMII_RSTN */
            ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
            ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
            ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
        };
    };
    
    &cpsw_port1 {
        phy-mode = "rgmii-id";
        phy-handle = <&phy0>;
    };
    
    &sdhci0 {
        status = "okay";
        non-removable;
        xlnx,fails-without-test-cd;
        bus-width = <8>;
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc0_pins_default>;
    };
    
    &mmc_phy0 {
        status = "okay";
        ti,driver-strength-ohm = <50>;
    };
    
    &sdhci1 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc1_pins_default>;
    };
    
    &mmc_phy1 {
        status = "okay";
        ti,driver-strength-ohm = <50>;
    };
    
    &gpu {
        status = "okay";
    };
    
    &icssg2_mdio {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&icssg2_mdio_pins_default>;
    
        pruss2_eth0_phy: ethernet-phy@0 {
            reg = <0>;
            ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
            ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
            ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
        };
    
        pruss2_eth1_phy: ethernet-phy@3 {
            reg = <3>;
            ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
            ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
            ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
        };
    };
    
    &icssg1_mdio {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&icssg1_mdio_pins_default>;
    
            pruss1_eth0_phy: ethernet-phy@0 {
                    reg = <0>;
                    ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
            };
    /*
            pruss2_eth1_phy: ethernet-phy@3 {
                    reg = <3>;
                    ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
            };*/
    };
    
    &icssg0_mdio {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&icssg0_mdio_pins_default>;
    
            pruss0_eth0_phy: ethernet-phy@0 {
                    reg = <0>;
                    ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
            };
    
          /*  pruss2_eth1_phy: ethernet-phy@3 {
                    reg = <3>;
                    ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                    ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
            };*/
    };
    
    
    
    &tscadc0 {
        status = "okay";
    
        adc {
            ti,adc-channels = <0 1 2 3 4 5 6 7>;
        };
    };
    
    &tscadc1 {
        status = "okay";
    
        adc {
            ti,adc-channels = <0 1 2 3 4 5 6 7>;
        };
    };
    
    &main_spi0 {
        status = "okay";
        pinctrl-name = "default";
        pinctrl-0 = <&main_spi0_pins_default>;
    /*    #address-cells = <1>;*/
    /*    #size-cells = <0>;*/
        ti,pindir-d0-out-d1-in = <1>;
    
        spidev@0{
            compatible = "spidev";
            reg = <0x0>;
            spi-tx-bus-width = <1>;
            spi-rx-bus-width = <1>;
            spi-max-frequency = <1000000>;
        /*    #address-cells = <1>;
            #size-cells = <1>;*/
        };
    };
    
    /*
    
    &main_spi0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_spi0_pins_default>;
        #address-cells = <1>;
        #size-cells= <0>;
        ti,pindir-d0-out-d1-in = <1>;
    
        flash@0{
            compatible = "jedec,spi-nor";
            reg = <0x0>;
            spi-tx-bus-width = <1>;
            spi-rx-bus-width = <1>;
            spi-max-frequency = <48000000>;
            #address-cells = <1>;
            #size-cells= <1>;
        };
    };*/

    Bootlog:

    [    0.000000] Boot CPU: AArch64 Processor [410fd034]
    [    0.000000] Machine model: Texas Instruments AM654 Base Board
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] bootconsole [ns16550a0] enabled
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f1-dma-memory@9b000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f1-memory@9b100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f0-dma-memory@9c000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c100000, size 7 MiB
    [    0.000000] OF: reserved mem: initialized node r5f0-memory@9c100000, compatible id shared-dma-pool
    [    0.000000] cma: Reserved 512 MiB at 0x00000000c0000000
    [    0.000000] On node 0 totalpages: 64768
    [    0.000000]   DMA zone: 32 pages used for memmap
    [    0.000000]   DMA zone: 0 pages reserved
    [    0.000000]   DMA zone: 32000 pages, LIFO batch:1
    [    0.000000]   Normal zone: 32 pages used for memmap
    [    0.000000]   Normal zone: 32768 pages, LIFO batch:1
    [    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.1
    [    0.000000] percpu: Embedded 2 pages/cpu @ffff80087feb0000 s38936 r8192 d83944 u131072
    [    0.000000] pcpu-alloc: s38936 r8192 d83944 u131072 alloc=2*65536
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: enabling workaround for ARM erratum 845719
    [    0.000000] Speculative Store Bypass Disable mitigation not required
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64704
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=47040000.ospi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),128k(ospi.env),128k(ospi.env.backup),1m(ospi.sysfw),-@8m(ospi.rootfs) root=PARTUUID=0486f650-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 4096 (order: -1, 32768 bytes)
    [    0.000000] Dentry cache hash table entries: 524288 (order: 6, 4194304 bytes)
    [    0.000000] Inode-cache hash table entries: 262144 (order: 5, 2097152 bytes)
    [    0.000000] software IO TLB [mem 0xf9db0000-0xfddb0000] (64MB) mapped at [ffff800079db0000-ffff80007ddaffff]
    [    0.000000] Memory: 3529792K/4145152K available (7358K kernel code, 660K rwdata, 2752K rodata, 448K init, 654K bss, 91072K reserved, 524288K cma-reserved)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     modules : 0xffff000000000000 - 0xffff000008000000   (   128 MB)
    [    0.000000]     vmalloc : 0xffff000008000000 - 0xffff7bdfffff0000   (126847 GB)
    [    0.000000]       .text : 0xffff000008080000 - 0xffff0000087b0000   (  7360 KB)
    [    0.000000]     .rodata : 0xffff0000087b0000 - 0xffff000008a70000   (  2816 KB)
    [    0.000000]       .init : 0xffff000008a70000 - 0xffff000008ae0000   (   448 KB)
    [    0.000000]       .data : 0xffff000008ae0000 - 0xffff000008b85008   (   661 KB)
    [    0.000000]        .bss : 0xffff000008b85008 - 0xffff000008c28a60   (   655 KB)
    [    0.000000]     fixed   : 0xffff7fdffe7b0000 - 0xffff7fdffec00000   (  4416 KB)
    [    0.000000]     PCI I/O : 0xffff7fdffee00000 - 0xffff7fdfffe00000   (    16 MB)
    [    0.000000]     vmemmap : 0xffff7fe000000000 - 0xffff800000000000   (   128 GB maximum)
    [    0.000000]               0xffff7fe000000000 - 0xffff7fe002200000   (    34 MB actual)
    [    0.000000]     memory  : 0xffff800000000000 - 0xffff800880000000   ( 34816 MB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
    [    0.000000]  Tasks RCU enabled.
    [    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [    0.000000] GICv3: no VLPI support, no direct LPI support
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: allocated 1048576 Devices @8c0800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GIC: using LPI property table @0x00000008c00b0000
    [    0.000000] ITS: Allocated 1792 chunks for LPIs
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
    [    0.000000] CPU0: using LPI pending table @0x00000008c00c0000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    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.000005] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008627] Console: colour dummy device 80x25
    [    0.013213] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023914] pid_max: default: 32768 minimum: 301
    [    0.028777] Security Framework initialized
    [    0.033039] Mount-cache hash table entries: 8192 (order: 0, 65536 bytes)
    [    0.039925] Mountpoint-cache hash table entries: 8192 (order: 0, 65536 bytes)
    [    0.063346] ASID allocator initialised with 32768 entries
    [    0.068994] Hierarchical SRCU implementation.
    [    0.081562] PCI/MSI: /soc0/interrupt-controller@1800000/gic-its@1000000 domain created
    [    0.089958] Platform MSI: /soc0/interrupt-controller@1800000/gic-its@1000000 domain created
    [    0.106554] smp: Bringing up secondary CPUs ...
    [    0.139684] Detected VIPT I-cache on CPU1
    [    0.139719] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [    0.139770] CPU1: using LPI pending table @0x00000008c0360000
    [    0.139815] CPU1: Booted secondary processor [410fd034]
    [    0.196706] Detected VIPT I-cache on CPU2
    [    0.196745] GICv3: CPU2: found redistributor 100 region 0:0x00000000018c0000
    [    0.196797] CPU2: using LPI pending table @0x00000008c03d0000
    [    0.196843] CPU2: Booted secondary processor [410fd034]
    [    0.225118] Detected VIPT I-cache on CPU3
    [    0.225144] GICv3: CPU3: found redistributor 101 region 0:0x00000000018e0000
    [    0.225190] CPU3: using LPI pending table @0x00000008c0430000
    [    0.225220] CPU3: Booted secondary processor [410fd034]
    [    0.225353] smp: Brought up 1 node, 4 CPUs
    [    0.297100] SMP: Total of 4 processors activated.
    [    0.301920] CPU features: detected feature: GIC system register CPU interface
    [    0.309237] CPU features: detected feature: 32-bit EL0 Support
    [    0.315217] CPU features: detected feature: Kernel page table isolation (KPTI)
    [    0.346589] CPU: All CPU(s) started at EL2
    [    0.350812] alternatives: patching kernel code
    [    0.356787] devtmpfs: initialized
    [    0.369767] random: get_random_u32 called from bucket_table_alloc+0xf8/0x280 with crng_init=0
    [    0.379307] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.389321] futex hash table entries: 1024 (order: 1, 131072 bytes)
    [    0.397147] pinctrl core: initialized pinctrl subsystem
    [    0.403138] NET: Registered protocol family 16
    [    0.409633] vdso: 2 pages (1 code @ ffff0000087c0000, 1 data @ ffff000008b00000)
    [    0.423238] DMA: preallocated 256 KiB pool for atomic allocations
    [    0.433690] davinci_gpio 600000.main_gpio0: IRQ not populated, err = -517
    [    0.440863] davinci_gpio 601000.main_gpio1: IRQ not populated, err = -517
    [    0.448039] davinci_gpio 42110000.: IRQ not populated, err = -517
    [    0.465343] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.472231] HugeTLB registered 512 MiB page size, pre-allocated 0 pages
    [    0.481447] omap_i2c 42120000.i2c: could not find pctldev for node /soc0/pinmux@4301c000/wkup_i2c0_pins_default, deferring probe
    [    0.493372] omap_i2c 40b00000.i2c: could not find pctldev for node /soc0/pinmux@4301c000/mcu_i2c0_pins_default, deferring probe
    [    0.505163] omap_i2c 2000000.i2c: could not find pctldev for node /soc0/pinmux@11c2e8/main_i2c0_pins_default, deferring probe
    [    0.516778] omap_i2c 2010000.i2c: could not find pctldev for node /soc0/pinmux@11c2e8/main_i2c1_pins_default, deferring probe
    [    0.528389] omap_i2c 2020000.i2c: could not find pctldev for node /soc0/pinmux@11c000/main_i2c2_pins_default, deferring probe
    [    0.540103] media: Linux media interface: v0.10
    [    0.544775] Linux video capture interface: v2.00
    [    0.549543] pps_core: LinuxPPS API ver. 1 registered
    [    0.554628] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.564000] PTP clock support registered
    [    0.568042] EDAC MC: Ver: 3.0.0
    [    0.572152] Advanced Linux Sound Architecture Driver Initialized.
    [    0.579142] clocksource: Switched to clocksource arch_sys_counter
    [    0.585569] VFS: Disk quotas dquot_6.6.0
    [    0.589695] VFS: Dquot-cache hash table entries: 8192 (order 0, 65536 bytes)
    [    0.603762] NET: Registered protocol family 2
    [    0.608753] TCP established hash table entries: 32768 (order: 2, 262144 bytes)
    [    0.616471] TCP bind hash table entries: 32768 (order: 3, 524288 bytes)
    [    0.623906] TCP: Hash tables configured (established 32768 bind 32768)
    [    0.630748] UDP hash table entries: 2048 (order: 0, 65536 bytes)
    [    0.637026] UDP-Lite hash table entries: 2048 (order: 0, 65536 bytes)
    [    0.643909] NET: Registered protocol family 1
    [    0.648868] RPC: Registered named UNIX socket transport module.
    [    0.654954] RPC: Registered udp transport module.
    [    0.659779] RPC: Registered tcp transport module.
    [    0.664600] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.671210] PCI: CLS 0 bytes, default 128
    [    0.676187] workingset: timestamp_bits=46 max_order=16 bucket_order=0
    [    0.688167] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.694760] NFS: Registering the id_resolver key type
    [    0.699968] Key type id_resolver registered
    [    0.704264] Key type id_legacy registered
    [    0.708387] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.715446] 9p: Installing v9fs 9p2000 file system support
    [    0.725692] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
    [    0.733308] io scheduler noop registered
    [    0.737442] io scheduler cfq registered (default)
    [    0.742265] io scheduler mq-deadline registered
    [    0.746910] io scheduler kyber registered
    [    0.753049] pinctrl-single 11c000.pinmux: 185 pins at pa ffff000009c2c000 size 740
    [    0.760948] pinctrl-single 11c2e8.pinmux: 9 pins at pa ffff000009c4c2e8 size 36
    [    0.768672] pinctrl-single 4301c000.pinmux: 70 pins at pa ffff000009c6c000 size 280
    [    0.783476] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.792894] console [ttyS2] disabled
    [    0.796622] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 10, base_baud = 3000000) is a 8250
    [    0.805430] console [ttyS2] enabled
    [    0.812491] bootconsole [ns16550a0] disabled
    [    0.832411] loop: module loaded
    [    0.836845] pinctrl-single 11c000.pinmux: Invalid number of rows: 0
    [    0.843163] pinctrl-single 11c000.pinmux: no pins entries for main_spi0_pins_default
    [    0.850909] omap2_mcspi: probe of 2100000.spi failed with error -22
    [    0.857606] libphy: Fixed MDIO Bus: probed
    [    0.862238] tun: Universal TUN/TAP device driver, 1.6
    [    0.867482] igbvf: Intel(R) Gigabit Virtual Function Network Driver - version 2.4.0-k
    [    0.875309] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.881280] sky2: driver version 1.30
    [    0.886138] VFIO - User Level meta-driver version: 0.3
    [    0.892003] i2c /dev entries driver
    [    0.896359] sdhci: Secure Digital Host Controller Interface driver
    [    0.902543] sdhci: Copyright(c) Pierre Ossman
    [    0.906919] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.913788] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.919879] ti-sci soc0:dmsc: invalid resource
    [    0.925026] optee: probing for conduit method from DT.
    [    0.934114] optee: initialized driver
    [    0.938963] NET: Registered protocol family 17
    [    0.943494] 9pnet: Installing 9P2000 support
    [    0.947827] Key type dns_resolver registered
    [    0.952715] registered taskstats version 1
    [    0.957447] davinci_gpio 600000.main_gpio0: IRQ not populated, err = -517
    [    0.964633] davinci_gpio 601000.main_gpio1: IRQ not populated, err = -517
    [    0.971636] davinci_gpio 42110000.: IRQ not populated, err = -517
    [    0.982454] ti-sci soc0:dmsc: invalid resource
    [    0.987090] ti-sci soc0:dmsc: ABI: 2.5 (firmware rev 0x0012 '18.10.0-v2018.10 (Curious Crow)')
    [    1.013086] random: fast init done
    [    1.335990] davinci_gpio 600000.main_gpio0: IRQ not populated, err = -517
    [    1.343195] davinci_gpio 601000.main_gpio1: IRQ not populated, err = -517
    [    1.350192] davinci_gpio 42110000.: IRQ not populated, err = -517
    [    1.357673] omap_i2c 42120000.i2c: bus 0 rev0.12 at 400 kHz
    [    1.364030] omap_i2c 40b00000.i2c: bus 1 rev0.12 at 400 kHz
    [    1.394074] omap_i2c 2000000.i2c: bus 2 rev0.12 at 400 kHz
    [    1.400280] omap_i2c 2010000.i2c: bus 3 rev0.12 at 400 kHz
    [    1.406437] omap_i2c 2020000.i2c: bus 4 rev0.12 at 400 kHz
    [    1.413450] ti-sci-inta 33d00000.interrupt-controller: ti,sci-dst-irq-type resource type ids not available
    [    1.424095] k3-navss-ringacc 3c000000.ringacc: Ring Accelerator probed rings:818, gp-rings[304,464] sci-dev-id:187
    [    1.434454] k3-navss-ringacc 3c000000.ringacc: dma-ring-reset-quirk: enabled
    [    1.441502] k3-navss-ringacc 3c000000.ringacc: RA Proxy rev. 66344100, num_proxies:64
    [    1.449515] k3-navss-ringacc 2b800000.ringacc: Ring Accelerator probed rings:286, gp-rings[96,255] sci-dev-id:195
    [    1.459772] k3-navss-ringacc 2b800000.ringacc: dma-ring-reset-quirk: enabled
    [    1.466817] k3-navss-ringacc 2b800000.ringacc: RA Proxy rev. 66344100, num_proxies:64
    [    1.476417] cadence-qspi 47040000.ospi: mt35xu512 (65536 Kbytes)
    [    1.482451] 7 cmdlinepart partitions found on MTD device 47040000.ospi.0
    [    1.489150] Creating 7 MTD partitions on "47040000.ospi.0":
    [    1.494726] 0x000000000000-0x000000080000 : "ospi.tiboot3"
    [    1.501020] 0x000000080000-0x000000280000 : "ospi.tispl"
    [    1.506961] 0x000000280000-0x000000680000 : "ospi.u-boot"
    [    1.512955] 0x000000680000-0x0000006a0000 : "ospi.env"
    [    1.518749] 0x0000006a0000-0x0000006c0000 : "ospi.env.backup"
    [    1.525099] 0x0000006c0000-0x0000007c0000 : "ospi.sysfw"
    [    1.530991] 0x000000800000-0x000004000000 : "ospi.rootfs"
    [    1.663381] cadence-qspi 47040000.ospi: Cadence QSPI NOR probe failed -517
    [    1.671511] am65-cpsw-nuss 46000000.ethernet: rx-flow-id-base is not set -22
    [    1.678688] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA07100, cpsw version 0x6BA80100 Ports: 2
    [    1.690267] UDMA has not been proped
    [    1.693869] am65-cpsw-nuss 46000000.ethernet: Failed to request tx dma channel -517
    [    1.703506] am65-cpts 310d0000.cpts: CPTS ver 0x4e8a2109, freq:200000000, add_val:4
    [    1.713382] mmc0: Unknown controller version (4). You may experience problems.
    [    1.763154] mmc0: SDHCI controller on 4f80000.sdhci [4f80000.sdhci] using ADMA 64-bit
    [    1.775811] mmc1: Unknown controller version (4). You may experience problems.
    [    1.827165] mmc1: SDHCI controller on 4fa0000.sdhci [4fa0000.sdhci] using ADMA 64-bit
    [    1.837347] mmc0: new HS200 MMC card at address 0001
    [    1.844650] mmcblk0: mmc0:0001 R1J56L 14.7 GiB
    [    1.849584] mmcblk0boot0: mmc0:0001 R1J56L partition 1 8.00 MiB
    [    1.858722] mmcblk0boot1: mmc0:0001 R1J56L partition 2 8.00 MiB
    [    1.865184] mmcblk0rpmb: mmc0:0001 R1J56L partition 3 4.00 MiB
    [    1.904619] mmc1: Problem switching card into high-speed mode!
    [    1.911887] omap-mailbox 31f80000.mailbox: omap mailbox rev 0x66fc5900
    [    1.918831] omap-mailbox 31f81000.mailbox: omap mailbox rev 0x66fc5900
    [    1.925377] mmc1: new SDHC card at address 0001
    [    1.930213] mmcblk1: mmc1:0001 00000 14.9 GiB
    [    1.935944] ti-udma 31150000.udmap: Channels: 267 (tchan: 120, echan: 32, rchan: 150, rflow: 300)
    [    1.944922]  mmcblk1: p1 p2
    [    1.963538] ti-udma 285c0000.udmap: Channels: 96 (tchan: 48, echan: 0, rchan: 48, rflow: 96)
    [    1.978544] cadence-qspi 47040000.ospi: mt35xu512 (65536 Kbytes)
    [    1.984589] 7 cmdlinepart partitions found on MTD device 47040000.ospi.0
    [    1.991286] Creating 7 MTD partitions on "47040000.ospi.0":
    [    1.996862] 0x000000000000-0x000000080000 : "ospi.tiboot3"
    [    2.003185] 0x000000080000-0x000000280000 : "ospi.tispl"
    [    2.009089] 0x000000280000-0x000000680000 : "ospi.u-boot"
    [    2.015252] 0x000000680000-0x0000006a0000 : "ospi.env"
    [    2.021095] 0x0000006a0000-0x0000006c0000 : "ospi.env.backup"
    [    2.027457] 0x0000006c0000-0x0000007c0000 : "ospi.sysfw"
    [    2.033356] 0x000000800000-0x000004000000 : "ospi.rootfs"
    [    2.041641] am65-cpsw-nuss 46000000.ethernet: rx-flow-id-base is not set -22
    [    2.048828] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA07100, cpsw version 0x6BA80100 Ports: 2
    [    2.066501] am65-cpsw-nuss 46000000.ethernet: set new flow-id-base 48
    [    2.077752] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a2109, freq:200000000, add_val:4
    [    2.086219] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 0.4
    [    2.093443] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
    [    2.139156] am65-cpsw-nuss 46000000.ethernet: davinci mdio revision 9.7, bus freq 1000000
    [    2.147331] libphy: 46000000.ethernet: probed
    [    2.154552] input: gpio-keys as /devices/platform/gpio-keys/input/input0
    [    2.161484] hctosys: unable to open rtc device (rtc0)
    [    2.258679] ALSA device list:
    [    2.261661]   No soundcards found.
    [    2.290208] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
    [    2.298381] VFS: Mounted root (ext4 filesystem) on device 179:130.
    [    2.305993] devtmpfs: mounted
    [    2.309158] Freeing unused kernel memory: 448K
    [    3.080486] systemd[1]: System time before build time, advancing clock.
    [    4.533445] NET: Registered protocol family 10
    [    4.538984] Segment Routing with IPv6
    [    4.658187] ip_tables: (C) 2000-2006 Netfilter Core Team
    [    4.694828] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.711326] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.733839] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
    [    4.752448] systemd[1]: Detected architecture arm64.
    [    4.777182] systemd[1]: Set hostname to <AM654x>.
    [    4.806118] random: systemd: uninitialized urandom read (16 bytes read)
    [    5.332990] systemd[1]: Reached target Swap.
    [    5.351543] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    5.398802] systemd[1]: Listening on Syslog Socket.
    [    5.415990] systemd[1]: Created slice System Slice.
    [    5.431809] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [    5.450279] systemd[1]: Mounting Debug File System...
    [    5.471519] systemd[1]: dev-hugepages.mount: Couldn't determine result for ConditionVirtualization=!private-users, assuming failed: No such file or directory
    [    6.027477] systemd-journald[150]: Received request to flush runtime journal from PID 1
    [    6.956208] at24 0-0050: 131072 byte 24c1024 EEPROM, writable, 1 bytes/write
    [    7.143887] k3_r5_rproc soc0:mcu_r5f_cluster@41000000: creating child devices for R5F cores
    [    7.157502] platform 41000000.r5f: boot_vector = 0x41c00000, cfg = 0x1903 ctrl = 0x0 stat = 0x104
    [    7.170297] platform 41000000.r5f: assigned reserved memory node r5f0-dma-memory@9c000000
    [    7.180140] remoteproc remoteproc0: 41000000.r5f is available
    [    7.192648] omap_rng 4e10000.trng: Random Number Generator ver. 230b34c
    [    7.248237] pruss b000000.icssg: creating PRU cores and other child platform devices
    [    7.307230] davinci_mdio b032400.mdio: davinci mdio revision 1.7, bus freq 1000000
    [    7.314944] libphy: b032400.mdio: probed
    [    7.320525] davinci_mdio: probe of b032400.mdio failed with error -5
    [    7.331838] pruss b100000.icssg: creating PRU cores and other child platform devices
    [    7.391480] davinci_mdio b132400.mdio: davinci mdio revision 1.7, bus freq 1000000
    [    7.404524] libphy: b132400.mdio: probed
    [    7.661815] remoteproc remoteproc0: powering up 41000000.r5f
    [    7.667530] remoteproc remoteproc0: Booting fw image am65x-mcu-r5f0-fw, size 3864336
    [    7.676316] platform 41000000.r5f: booting R5F core using boot addr = 0x0
    [    7.683657] remoteproc remoteproc0: registered virtio0 (type 7)
    [    7.689667] remoteproc remoteproc0: remote processor 41000000.r5f is now up
    [    7.724124] davinci_mdio b132400.mdio: phy[0]: device b132400.mdio:00, driver TI DP83TC811
    [    7.732844] pruss b200000.icssg: creating PRU cores and other child platform devices
    [    7.783217] davinci_mdio b232400.mdio: davinci mdio revision 1.7, bus freq 1000000
    [    7.790841] libphy: b232400.mdio: probed
    [    7.795381] davinci_mdio: probe of b232400.mdio failed with error -5
    [    7.969059] remoteproc remoteproc1: b034000.pru is available
    [    7.974836] pru-rproc b034000.pru: PRU rproc node /soc0/pruss_soc_bus@b026004/icssg@0/pru@34000 probed successfully
    [    7.985697] remoteproc remoteproc2: b004000.rtu is available
    [    7.991433] pru-rproc b004000.rtu: PRU rproc node /soc0/pruss_soc_bus@b026004/icssg@0/rtu@4000 probed successfully
    [    8.002109] remoteproc remoteproc3: b038000.pru is available
    [    8.007829] pru-rproc b038000.pru: PRU rproc node /soc0/pruss_soc_bus@b026004/icssg@0/pru@38000 probed successfully
    [    8.018568] remoteproc remoteproc4: b006000.rtu is available
    [    8.024339] pru-rproc b006000.rtu: PRU rproc node /soc0/pruss_soc_bus@b026004/icssg@0/rtu@6000 probed successfully
    [    8.035191] remoteproc remoteproc5: b134000.pru is available
    [    8.040930] pru-rproc b134000.pru: PRU rproc node /soc0/pruss_soc_bus@b126004/icssg@0/pru@34000 probed successfully
    [    8.051756] remoteproc remoteproc6: b104000.rtu is available
    [    8.057614] pru-rproc b104000.rtu: PRU rproc node /soc0/pruss_soc_bus@b126004/icssg@0/rtu@4000 probed successfully
    [    8.068412] remoteproc remoteproc7: b138000.pru is available
    [    8.074143] pru-rproc b138000.pru: PRU rproc node /soc0/pruss_soc_bus@b126004/icssg@0/pru@38000 probed successfully
    [    8.084876] remoteproc remoteproc8: b106000.rtu is available
    [    8.090603] pru-rproc b106000.rtu: PRU rproc node /soc0/pruss_soc_bus@b126004/icssg@0/rtu@6000 probed successfully
    [    8.101265] remoteproc remoteproc9: b234000.pru is available
    [    8.106986] pru-rproc b234000.pru: PRU rproc node /soc0/pruss_soc_bus@b226004/icssg@0/pru@34000 probed successfully
    [    8.117841] remoteproc remoteproc10: b204000.rtu is available
    [    8.123666] pru-rproc b204000.rtu: PRU rproc node /soc0/pruss_soc_bus@b226004/icssg@0/rtu@4000 probed successfully
    [    8.134420] remoteproc remoteproc11: b238000.pru is available
    [    8.140259] pru-rproc b238000.pru: PRU rproc node /soc0/pruss_soc_bus@b226004/icssg@0/pru@38000 probed successfully
    [    8.151053] remoteproc remoteproc12: b206000.rtu is available
    [    8.156864] pru-rproc b206000.rtu: PRU rproc node /soc0/pruss_soc_bus@b226004/icssg@0/rtu@6000 probed successfully
    [    8.808344] usbcore: registered new interface driver usbfs
    [    8.813958] usbcore: registered new interface driver hub
    [    8.819431] usbcore: registered new device driver usb
    [    8.960730] virtio_rpmsg_bus virtio0: rpmsg host is online
    [    8.961495] virtio_rpmsg_bus virtio0: creating channel rpmsg-proto addr 0x3d
    [    9.153707] NET: Registered protocol family 44
    [    9.219519] 811er dp83811_phy_reset
    [    9.223294] 811er dp83811_config_init
    [    9.228450] 811er dp83811_resume
    [    9.233853] icssg-prueth pruss1_eth: port 1: using random MAC addr: 5a:b0:d4:16:9a:24
    [    9.242635] icssg-prueth pruss1_eth: TI PRU ethernet driver initialized: single EMAC mode
    [    9.280528] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [    9.286150] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
    [    9.295242] xhci-hcd xhci-hcd.0.auto: hcc params 0x0298fe6d hci version 0x110 quirks 0x00010010
    [    9.304761] xhci-hcd xhci-hcd.0.auto: irq 319, io mem 0x04030000
    [    9.315089] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [    9.321932] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    9.329191] usb usb1: Product: xHCI Host Controller
    [    9.329200] usb usb1: Manufacturer: Linux 4.14.79gbde58ab01e-gbde58ab01e xhci-hcd
    [    9.329211] usb usb1: SerialNumber: xhci-hcd.0.auto
    [    9.329904] hub 1-0:1.0: USB hub found
    [    9.329938] hub 1-0:1.0: 1 port detected
    [    9.333186] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [    9.333206] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
    [    9.333223] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0  SuperSpeed
    [    9.333317] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
    [    9.333433] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
    [    9.333440] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    9.333445] usb usb2: Product: xHCI Host Controller
    [    9.333449] usb usb2: Manufacturer: Linux 4.14.79gbde58ab01e-gbde58ab01e xhci-hcd
    [    9.333454] usb usb2: SerialNumber: xhci-hcd.0.auto
    [    9.334019] hub 2-0:1.0: USB hub found
    [    9.334050] hub 2-0:1.0: 1 port detected
    [   10.189431] am65-cpsw-nuss 46000000.ethernet: Phy mode driver DT not found
    [   10.204869] TI DP83867 k3-cpsw-mdio:00: attached PHY driver [TI DP83867] (mii_bus:phy_addr=k3-cpsw-mdio:00, irq=POLL)
    [   10.216066] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   11.232506] am65-cpsw-nuss 46000000.ethernet eth0: Link is Down
    [   14.304711] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [   14.311510] am65-cpsw-nuss 46000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
    

  • Hello Bjoern,

    Let's back up. What hardware are you using? If you are using a TI EVM, what modifications have you made to it?

    One reference for you is in your SDK under arch/arm64/boot/dts/ti/k3-am654-idk.dtso. I have not looked in depth at the difference between your DTS file and that file, but one difference that popped out is you removed references to mii-rt in your nodes (unsure if that would affect or not).

    FYI, single EMAC only works properly on Linux Processor SDK 5.3 and later. I am not sure whether the bug fixes applied to Linux 4.14.79 in Processor SDK 5.3 would have also been applied in Linux 4.14.79 that you got from a different source.

    Regards,
    Nick
  • Hi Nick,

    thank you for your fast response!
    I'm using the bootable image provided here

    http://software-dl.ti.com/processor-sdk-linux/esd/AM57X/latest/exports/am57xx-evm-linux-05.02.00.10.img.zip

    because it was the newest one when I started working on the project. My DTS the k3-am654-base-board.dts, I've just added the two MAC interfaces.
    I'm using the AM6548 IDK

    http://www.ti.com/tool/tmdx654idkevm

    with some custom expansion boards. The IDK is not modified in any way.

    Best Regards,
    Björn

  • Hello Björn,

    It looks like we added functionality for 100M links in SDK 5.3. The commit details say

    arm64: dts: ti: add mii-rt phandles in prueth device nodes

    To allow configure mii_rt interface TX_IPG0/1 values differently
    for 100M link vs 1G link, add phandle for mii_rt regmap node.
    For interposer card, also add the mii_rt_paired phandle for the
    paired icssg.

    You can see the difference between SDK 5.2 and SDK 5.3 in k3-am654-idk.dtso.

    Regards,
    Nick
  • For future readers:

    1) Customers can use 100M PHYs with AM65x PRU Ethernet starting in SDK 5.3. The driver does not have a way to negotiate down to 100M in SDK 5.2 or earlier. Note that 10M links are not supported in any Processor SDK that is currently released (5.3 and earlier).

    2) The device tree settings are the same for 100M connections and 1G connections. mii-rt and mii-g-rt are both mandatory in the device tree from SDK 5.3 onward. The driver auto-detects the link speed.

    3) Backward compatibility is not maintained with the change to the PRU Ethernet nodes when going from SDK 5.2 -> SDK 5.3.

    Regards,
    Nick
  • Hi Nick,

    thank you for your help, using SDK5.3 solved the problem.

    Best Regards,

    Björn