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.

DRA821U: How to modify SDK7.3 to use multiple RGMII interfaces

Part Number: DRA821U
Other Parts Discussed in Thread: DRA821

HI Technical Support.

I am using the hardware scheme as shown in the picture below on DRA821. I would like to know how I should modify it to support such two RGMII scenarios.

RGMII1 is connected with a switch chip, RGMII4 is connected with a phy chip.

  • Hi,

    SDK supports multiple RGMII's out of the box. May I know what problem you are facing ? Please take a look at this E2E on how to enable RGMII on DRA821 EVM, this will probably help you.

    Regards

    Vineet

  • Hi:

    I have seen this E2E, I have seen the following code in the RTOS file ethfw/apps/app_remoteswitchcfg_server/mcu_2_0/main_tirtos.c

    #if defined(SOC_J7200)
    #if defined(ENABLE_QSGMII_PORTS)
        /* On J7200 to use all 4 ports simultaneously, we use below configuration
         * QSGMII ports - 0, 1, 2, 3 */
        {
            .portNum    = ENET_MAC_PORT_1, /* QSGMII main */
            .vlanCfg = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
        {
            .portNum    = ENET_MAC_PORT_2, /* QSGMII sub */
            .vlanCfg = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
        {
            .portNum    = ENET_MAC_PORT_3, /* QSGMII sub */
            .vlanCfg = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
        {
            .portNum    = ENET_MAC_PORT_4, /* QSGMII sub */
            .vlanCfg = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
    #else
        /* For internal testing only - Alternatively, a single RGMII port
         * configuration via GESI board is also available */
        {
            .portNum    = ENET_MAC_PORT_2, /* RGMII */
            .vlanCfg = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
    #endif
    #endif

    My problem is that only ENET_MAC_PORT_2 is configured as RGMII mode. Now I need to configure both RGMII1 and RGMII4 interfaces at the same time. What modifications should I make to realize the application scene in the picture above.

  • Hi Vineet:

    Is ENET_MAC_PORT_2 the same as RGMII2 in the hardware block diagram, ENET_MAC_PORT_1~ENET_MAC_PORT_4 corresponds to RGMII1~RGMII4?

  • Hi,

    On DRA821 EVM, only RGMII2 is pinned out to GESI card and other ports are pinned to QSGMII card (hence the limitation), but if you are doing this for your custom board then you can go ahead and enable all the other ports as required.

    Please refer to how RGMII1 and RGMII4 are enabled for J721E and use it as a reference. I cannot test it on EVM due to HW limitations but you should be able to.

    Regards

    Vineet

  • Hi Vineet:

    My current problem is not clear how to modify the DRA821 SDK7.3 to enable RGMII1 and RGMII4, Could you please provide the specific modification method?I will verify our custom veneer after it comes back.

    Thanks.

  • Hi,

    Ok, let me check and provide you a patch but I can't verify it on EVM

    Regards

    Vineet

  • Hi Vineet:

    OK, I will do the actual development verification after I get the custom board.

  • Hi,

    See attached patches (applied on sdk 7.3)

    You will have to do set the PHY addresses correctly for your board and do correct pinmuxing.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/rgmii1_5F00_4_5F00_ethfw.patch

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/rgmii1_5F00_4_5F00_enet.patch

    Regards

    Vineet

  • Hi Vineet:

    I would like to know whether the connection scheme in our picture can realize the use of Ethernet under UBoot.

    Because I saw the previous design and demo board in the UBOOT phase of the use of the network are MCU_RGMII connected out.

  • Hi,

    I do not see MCU_RGMII1 pins in this picture. That's what you need for enabling ethernet under Uboot

    Regards

    Vineet

  • Hi Vineet:

    This is my question, if you want to use Ethernet under UBOOT words can only use MCU_RGMII1 external chip to achieve?

    I can see from the PCB drawing provided by our hardware engineer that we use DRA821_RGMII4 in the above picture to external connect PHY chip.

    So I want to confirm that this scheme is not able to meet the requirements of using Ethernet under UBoot.

    Thanks.

  • Supplement a picture of our scheme.

  • Hi,

    So I want to confirm that this scheme is not able to meet the requirements of using Ethernet under UBoot.

    That's right. You cannot do Ethernet under Uboot with this.

    DRA821_RGMII4 is for CPSW 5G

    Regards

    Vineet

  • Hi Vineet:

    Can we support CPSW5G in uboot? Is that difficult?

  • Hi Vineet:

    No network adapter is generated after I replace app_remoterswitchcfg_server_strip.xer5f the patch as above, and i cannot see any network adapter print output when using cat /sys/kernel/debug/remoteproc/remoteproc1/trace0.

    It is possible to generate a network card on the EVM board using the same app_remoterswitchcfg_server_strip.xer5f.

    Please tell me wthere i need to check, thanks.

  • Hi Vineet:

    I have some doubts about the implementation method of our Ethernet scheme. Here is the patch I modified now.

    Index: apps/app_remoteswitchcfg_server/mcu_2_0/concerto.mak
    ===================================================================
    --- apps/app_remoteswitchcfg_server/mcu_2_0/concerto.mak	(revision 2630)
    +++ apps/app_remoteswitchcfg_server/mcu_2_0/concerto.mak	(working copy)
    @@ -45,9 +45,9 @@
     STATIC_LIBS += lib_remote_device
     STATIC_LIBS += lib_remoteswitchcfg_server
     
    -ifeq ($(TARGET_PLATFORM),J7200)
    -    DEFS += ENABLE_QSGMII_PORTS
    -endif
    +#ifeq ($(TARGET_PLATFORM),J7200)
    +#    DEFS += ENABLE_QSGMII_PORTS
    +#endif
     
     CPSW_APPUTILS_LIB = enet_example_utils
     
    @@ -102,7 +102,7 @@
     STATIC_LIBS += lib_remoteswitchcfg_server
     
     ifeq ($(TARGET_PLATFORM),J7200)
    -    DEFS += ENABLE_QSGMII_PORTS
    +#    DEFS += ENABLE_QSGMII_PORTS
         CPSW_APPUTILS_LIB = enet_example_utils_full
     else
         CPSW_APPUTILS_LIB = enet_example_utils
    Index: apps/app_remoteswitchcfg_server/mcu_2_0/main_tirtos.c
    ===================================================================
    --- apps/app_remoteswitchcfg_server/mcu_2_0/main_tirtos.c	(revision 2630)
    +++ apps/app_remoteswitchcfg_server/mcu_2_0/main_tirtos.c	(working copy)
    @@ -294,9 +294,13 @@
         /* For internal testing only - Alternatively, a single RGMII port
          * configuration via GESI board is also available */
         {
    -        .portNum    = ENET_MAC_PORT_2, /* RGMII */
    +        .portNum    = ENET_MAC_PORT_1, /* RGMII */
             .vlanCfg = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
         },
    +	{
    +		.portNum	= ENET_MAC_PORT_4, /* RGMII */
    +		.vlanCfg = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
    +	},
     #endif
     #endif
     };
    @@ -737,7 +741,7 @@
     #if defined(ENABLE_QSGMII_PORTS)
         macPort = ENET_MAC_PORT_1;
     #else
    -    macPort = ENET_MAC_PORT_2;
    +    macPort = ENET_MAC_PORT_1;
     #endif
     #endif
     
    

    Index: ti/board/src/j7200_evm/J7200_pinmux_data_cpsw.c
    ===================================================================
    --- ti/board/src/j7200_evm/J7200_pinmux_data_cpsw.c	(revision 2630)
    +++ ti/board/src/j7200_evm/J7200_pinmux_data_cpsw.c	(working copy)
    @@ -66,34 +66,6 @@
         {PINMUX_END}
     };
     
    -
    -static pinmuxPerCfg_t gGpio0PinCfg[] =
    -{
    -    /* MyGPIO1 -> GPIO0_4 -> AA20 */
    -    {
    -        PIN_RMII1_CRS_DV, PIN_MODE(7) | \
    -        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    -    },
    -    /* MyGPIO1 -> GPIO0_27 -> T14 */
    -    {
    -        PIN_MCAN9_TX, PIN_MODE(7) | \
    -        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    -    },
    -    /* MyGPIO1 -> GPIO0_28 -> U18 */
    -    {
    -        PIN_MCAN9_RX, PIN_MODE(7) | \
    -        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    -    },
    -    {PINMUX_END}
    -};
    -
    -static pinmuxModuleCfg_t gGpioPinCfg[] =
    -{
    -    {0, TRUE, gGpio0PinCfg},
    -    {PINMUX_END}
    -};
    -
    -
     static pinmuxPerCfg_t gI2c0PinCfg[] =
     {
         /* MyI2C0 -> I2C0_SCL -> V3 */
    @@ -138,78 +110,143 @@
     };
     
     
    -static pinmuxPerCfg_t gRgmii2PinCfg[] =
    +static pinmuxPerCfg_t gRgmii1PinCfg[] =
     {
    -    /* MyRGMII2 -> RGMII2_RD0 -> Y13 */
    +    /* MyRGMII1 -> RGMII1_RD0 -> AA17 */
         {
    -        PIN_MCAN11_RX, PIN_MODE(4) | \
    +        PIN_RMII1_RXD0, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
         },
    -    /* MyRGMII2 -> RGMII2_RD1 -> AA15 */
    +    /* MyRGMII1 -> RGMII1_RD1 -> Y15 */
         {
    -        PIN_MCAN12_TX, PIN_MODE(4) | \
    +        PIN_RMII1_RXD1, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
         },
    -    /* MyRGMII2 -> RGMII2_RD2 -> AA14 */
    +    /* MyRGMII1 -> RGMII1_RD2 -> AA20 */
         {
    -        PIN_MCAN12_RX, PIN_MODE(4) | \
    +        PIN_RMII1_CRS_DV, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
         },
    -    /* MyRGMII2 -> RGMII2_RD3 -> AA18 */
    +    /* MyRGMII1 -> RGMII1_RD3 -> Y17 */
         {
    -        PIN_MCAN13_TX, PIN_MODE(4) | \
    +        PIN_RMII1_RX_ER, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
         },
    -    /* MyRGMII2 -> RGMII2_RXC -> Y14 */
    +    /* MyRGMII1 -> RGMII1_RXC -> AA19 */
         {
    -        PIN_MCAN11_TX, PIN_MODE(4) | \
    +        PIN_RMII1_TXD1, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
         },
    -    /* MyRGMII2 -> RGMII2_RX_CTL -> AA16 */
    +    /* MyRGMII1 -> RGMII1_RX_CTL -> Y16 */
         {
    -        PIN_MCAN13_RX, PIN_MODE(4) | \
    +        PIN_RMII1_TXD0, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
         },
    -    /* MyRGMII2 -> RGMII2_TD0 -> W17 */
    +    /* MyRGMII1 -> RGMII1_TD0 -> Y18 */
         {
    -        PIN_MCAN15_TX, PIN_MODE(4) | \
    +        PIN_MCAN2_TX, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
         },
    -    /* MyRGMII2 -> RGMII2_TD1 -> W20 */
    +    /* MyRGMII1 -> RGMII1_TD1 -> Y19 */
         {
    -        PIN_MCAN15_RX, PIN_MODE(4) | \
    +        PIN_MCAN2_RX, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
         },
    -    /* MyRGMII2 -> RGMII2_TD2 -> V14 */
    +    /* MyRGMII1 -> RGMII1_TD2 -> Y21 */
         {
    -        PIN_UART2_RXD, PIN_MODE(4) | \
    +        PIN_MCAN3_TX, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
         },
    -    /* MyRGMII2 -> RGMII2_TD3 -> V13 */
    +    /* MyRGMII1 -> RGMII1_TD3 -> W16 */
         {
    -        PIN_UART2_TXD, PIN_MODE(4) | \
    +        PIN_MCAN3_RX, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
         },
    -    /* MyRGMII2 -> RGMII2_TXC -> W21 */
    +    /* MyRGMII1 -> RGMII1_TXC -> Y20 */
         {
    -        PIN_MCAN1_TX, PIN_MODE(4) | \
    +        PIN_MCAN4_RX, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
         },
    -    /* MyRGMII2 -> RGMII2_TX_CTL -> U12 */
    +    /* MyRGMII1 -> RGMII1_TX_CTL -> W15 */
         {
    -        PIN_GPIO0_41, PIN_MODE(4) | \
    +        PIN_MCAN4_TX, PIN_MODE(4) | \
             ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
         },
         {PINMUX_END}
     };
     
    +static pinmuxPerCfg_t gRgmii4PinCfg[] =
    +{
    +    /* MyRGMII4 -> RGMII4_RD0 -> V18 */
    +    {
    +        PIN_MCAN0_TX, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    +    },
    +    /* MyRGMII4 -> RGMII4_RD1 -> V20 */
    +    {
    +        PIN_MCAN0_RX, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    +    },
    +    /* MyRGMII4 -> RGMII4_RD2 -> V16 */
    +    {
    +        PIN_MCAN1_RX, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    +    },
    +    /* MyRGMII4 -> RGMII4_RD3 -> U13 */
    +    {
    +        PIN_GPMC0_CLK, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    +    },
    +    /* MyRGMII4 -> RGMII4_RXC -> V17 */
    +    {
    +        PIN_RMII1_TX_EN, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    +    },
    +    /* MyRGMII4 -> RGMII4_RX_CTL -> V15 */
    +    {
    +        PIN_MCAN16_TX, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    +    },
    +    /* MyRGMII4 -> RGMII4_TD0 -> U21 */
    +    {
    +        PIN_MCAN16_RX, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
    +    },
    +    /* MyRGMII4 -> RGMII4_TD1 -> T19 */
    +    {
    +        PIN_PMIC_WAKE0, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
    +    },
    +    /* MyRGMII4 -> RGMII4_TD2 -> T17 */
    +    {
    +        PIN_UART0_TXD, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
    +    },
    +    /* MyRGMII4 -> RGMII4_TD3 -> T18 */
    +    {
    +        PIN_UART1_RXD, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
    +    },
    +    /* MyRGMII4 -> RGMII4_TXC -> T16 */
    +    {
    +        PIN_UART0_RXD, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
    +    },
    +    /* MyRGMII4 -> RGMII4_TX_CTL -> T20 */
    +    {
    +        PIN_UART1_TXD, PIN_MODE(4) | \
    +        ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
    +    },
    +    {PINMUX_END}
    +};
    +
     static pinmuxModuleCfg_t gRgmiiPinCfg[] =
     {
    -    {2, TRUE, gRgmii2PinCfg},
    +    {1, TRUE, gRgmii1PinCfg},
    +    {4, TRUE, gRgmii4PinCfg},
         {PINMUX_END}
     };
     
    -
     static pinmuxPerCfg_t gSystem0PinCfg[] =
     {
         /* MySYSTEM1 -> EXTINTn -> U6 */
    @@ -236,29 +273,6 @@
         {PINMUX_END}
     };
     
    -
    -static pinmuxPerCfg_t gUart3PinCfg[] =
    -{
    -    /* MyUART3 -> UART3_RXD -> Y18 */
    -    {
    -        PIN_MCAN2_TX, PIN_MODE(11) | \
    -        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    -    },
    -    /* MyUART3 -> UART3_TXD -> Y19 */
    -    {
    -        PIN_MCAN2_RX, PIN_MODE(11) | \
    -        ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
    -    },
    -    {PINMUX_END}
    -};
    -
    -static pinmuxModuleCfg_t gUartPinCfg[] =
    -{
    -    {3, TRUE, gUart3PinCfg},
    -    {PINMUX_END}
    -};
    -
    -
     static pinmuxPerCfg_t gWkup_i2c0PinCfg[] =
     {
         /* MyWKUP_I2C0 -> WKUP_I2C0_SCL -> F20 */
    @@ -284,12 +298,10 @@
     pinmuxBoardCfg_t gJ7200_MainPinmuxDataCpsw[] =
     {
         {0, gDebugssPinCfg},
    -    {1, gGpioPinCfg},
    -    {2, gI2cPinCfg},
    -    {3, gMdioPinCfg},
    -    {4, gRgmiiPinCfg},
    -    {5, gSystemPinCfg},
    -    {6, gUartPinCfg},
    +    {1, gI2cPinCfg},
    +    {2, gMdioPinCfg},
    +    {3, gRgmiiPinCfg},
    +    {4, gSystemPinCfg},
         {PINMUX_END}
     };
    
    Index: ti/drv/enet/examples/utils/V1/enet_appboardutils_j721e_evm.c
    ===================================================================
    --- ti/drv/enet/examples/utils/V1/enet_appboardutils_j721e_evm.c	(revision 2630)
    +++ ti/drv/enet/examples/utils/V1/enet_appboardutils_j721e_evm.c	(working copy)
    @@ -214,8 +214,7 @@
         uint32_t clkModuleId[] = { TISCI_DEV_DDR0,
                                    TISCI_DEV_TIMER12,
                                    TISCI_DEV_TIMER13,
    -                               TISCI_DEV_UART2,
    -                               TISCI_DEV_I2C0, };
    +                               TISCI_DEV_UART2,};
     
         appFlags = 0U;
         moduleCnt = ENET_ARRAYSIZE(clkModuleId);
    @@ -291,8 +290,13 @@
                 switch (portNum)
                 {
                     case ENET_MAC_PORT_1:
    +#if defined(ENETAPPUTILS_BYPASS_QSGMII)
    +					/* RGMII port, set correct PHY address */
    +					phyAddr = 2U;
    +#else
                         /* QSGMII port */
                         phyAddr = 16U;
    +#endif
                         break;
     
                     case ENET_MAC_PORT_2:
    @@ -312,8 +316,13 @@
                         break;
     
                     case ENET_MAC_PORT_4:
    +#if defined(ENETAPPUTILS_BYPASS_QSGMII)
    +					/* RGMII port, set correct PHY address */
    +					phyAddr = 0U;
    +#else
                         /* QSGMII port */
                         phyAddr = 19U;
    +#endif
                         break;
     
                     default:
    @@ -544,7 +553,7 @@
         }
         else if (enetType == ENET_CPSW_5G)
         {
    -        EnetAppUtils_assert(portNum == ENET_MAC_PORT_2);
    +        EnetAppUtils_assert(portNum == ENET_MAC_PORT_1 || portNum == ENET_MAC_PORT_4);
             /* Override the ENET control set by board lib */
             EnetBoard_setEnetControl(enetType, 0U/* instId */, portNum, RGMII);
         }
    @@ -606,7 +615,7 @@
             case ENET_CPSW_5G:
                 /* Use RGMII port in GESI board when QSGMII is disabled */
     #if defined(ENETAPPUTILS_BYPASS_QSGMII)
    -            if (ENET_MAC_PORT_2 == portNum)
    +            if (ENET_MAC_PORT_1 == portNum || ENET_MAC_PORT_4 == portNum)
                 {
                     EnetBoard_setPhyConfigRgmii(enetType,
                                                         portNum,
    Index: ti/drv/enet/examples/utils/makefile
    ===================================================================
    --- ti/drv/enet/examples/utils/makefile	(revision 2630)
    +++ ti/drv/enet/examples/utils/makefile	(working copy)
    @@ -29,11 +29,12 @@
       ifeq ($(APPUTILS_TYPE),full)
         MODULE_NAME = enet_example_utils_full
         ENET_CFLAGS += -DENETAPPUTILS_UART_ALLOWED
    +	ENET_CFLAGS += -DENETAPPUTILS_BYPASS_QSGMII
       else
         MODULE_NAME = enet_example_utils
         ENET_CFLAGS += -DSDK_6_2_CORE_SDK_IMAGE
         ifeq ($(CORE),$(filter $(CORE), mcu2_0))
    -      #ENET_CFLAGS += -DENETAPPUTILS_BYPASS_I2C
    +      ENET_CFLAGS += -DENETAPPUTILS_BYPASS_I2C
           ifeq ($(SOC),$(filter $(SOC), j721e))
             ENET_CFLAGS += -DENETAPPUTILS_BYPASS_QSGMII
           endif
    @@ -40,6 +41,9 @@
           ifneq ($(SOC),$(filter $(SOC), j7200))
             ENET_CFLAGS += -DENETAPPUTILS_UART_ALLOWED
           endif
    +	  ifeq ($(SOC),$(filter $(SOC), j7200))
    +        ENET_CFLAGS += -DENETAPPUTILS_BYPASS_QSGMII
    +      endif
         else
           ENET_CFLAGS += -DENETAPPUTILS_UART_ALLOWED
         endif
    

    However, after booting to the kernel, I read the pin reuse information related to RGMII4/RGMII1 and found that the pin reuse did not seem to take effect

    The following is the startup information and example MDIO pin information as well as the reuse configuration information for RGMII4_RXC, all found not configured for correct reuse as per the code.

    U-Boot SPL 2020.01-dirty (Jul 21 2021 - 10:20:23 +0800)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
    ti_power_domain_probe(dev=41c85db8)
    Reading on-board EEPROM at 0x50 failed 1
    i2c_write: error waiting for data ACK (status=0x116)
    read error from device: 41c86438 register: x!
    Trying to boot from MMC1
    Loading Environment from MMC... *** Warning - bad CRC, using default environment
    
    init_env from device 17 not supported!
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.4(release):07.03.00.005-dirty
    NOTICE:  BL31: Built : 14:27:49, Jul 20 2021
    
    U-Boot SPL 2020.01-dirty (Jul 21 2021 - 10:20:09 +0800)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
    Reading on-board EEPROM at 0x50 failed 1
    Trying to boot from MMC1
    
    
    U-Boot 2020.01-dirty (Jul 21 2021 - 10:20:09 +0800)
    
    SoC:   J7200 SR1.0
    Model: Texas Instruments K3 J7200 SoC
    Reading on-board EEPROM at 0x50 failed 1
    Board: J721EX-PM1-SOM rev E2
    DRAM:  2 GiB
    not found for dev hbmc-mux
    Flash: 0 Bytes
    MMC:   sdhci@4f80000: 0, sdhci@4fb0000: 1
    Loading Environment from MMC... OK
    In:    serial@40a00000
    Out:   serial@40a00000
    Err:   serial@40a00000
    Reading on-board EEPROM at 0x50 failed 1
    Net:   Could not get PHY for ethernet@46000000: addr 0
    phy_connect() failed
    No ethernet found.
    
    Hit any key to stop autoboot:  0
    switch to partitions #0, OK
    mmc0(part 0) is current device
    SD/MMC found on device 0
    Unknown command 'load mmc 0 0x82000000 uEnv.txt' - try 'help'
    16799752 bytes read in 58 ms (276.2 MiB/s)
    44357 bytes read in 4 ms (10.6 MiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 000000008fef2000, end 000000008fffffff ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd080]
    [    0.000000] Linux version 5.4.106-g023faefa70 (haiqing.song@ubuntu-PowerEdge-R740) (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 SMP PREEMPT Thu Jul 22 11:32:02 CST 2021
    [    0.000000] Machine model: Texas Instruments K3 J7200 SoC
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000040a00000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    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] Reserved memory: created DMA memory pool at 0x00000000a2000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a2000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a2100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a3000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a3100000, compatible id shared-dma-pool
    [    0.000000] cma: Reserved 512 MiB at 0x00000000e0000000
    [    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.0
    [    0.000000] percpu: Embedded 2 pages/cpu s48472 r8192 d74408 u131072
    [    0.000000] Detected PIPT I-cache on CPU0
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] CPU features: detected: EL2 vector hardening
    [    0.000000] Built 1 zonelists, mobility grouping off.  Total pages: 17135
    [    0.000000] Kernel command line: console=ttyS1,115200n8 earlycon=ns16550a,mmio32,0x40a00000 mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);47034000.hyperbus:512k(hbmc.tiboot3),2m(hbmc.tispl),4m(hbmc.u-boot),256k(hbmc.env),-@8m(hbmc.rootfs) root=PARTUUID=ed6196a4-c34f-4d76-bdf1-63bde0646461 rw rootfstype=ext4 rootwait
    [    0.000000] Dentry cache hash table entries: 262144 (order: 5, 2097152 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 131072 (order: 4, 1048576 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] software IO TLB: mapped [mem 0xbbff0000-0xbfff0000] (64MB)
    [    0.000000] Memory: 1385408K/1097728K available (9662K kernel code, 854K rwdata, 3840K rodata, 1664K init, 681K bss, 18446744073708739648K reserved, 524288K 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 restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
    [    0.000000]  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: no VLPI support, no direct LPI support
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001900000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: allocated 1048576 Devices @df000000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x00000000df810000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000000df820000
    [    0.000000] random: get_random_bytes called from start_kernel+0x2b8/0x42c 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.000001] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008282] Console: colour dummy device 80x25
    [    0.012833] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023492] pid_max: default: 32768 minimum: 301
    [    0.028233] LSM: Security Framework initializing
    [    0.032981] Mount-cache hash table entries: 8192 (order: 0, 65536 bytes, linear)
    [    0.040549] Mountpoint-cache hash table entries: 8192 (order: 0, 65536 bytes, linear)
    [    0.050009] ASID allocator initialised with 32768 entries
    [    0.055642] rcu: Hierarchical SRCU implementation.
    [    0.060759] Platform MSI: msi-controller@1820000 domain created
    [    0.066915] PCI/MSI: /bus@100000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.076397] smp: Bringing up secondary CPUs ...
    [    0.081715] Detected PIPT I-cache on CPU1
    [    0.081738] GICv3: CPU1: found redistributor 1 region 0:0x0000000001920000
    [    0.081751] GICv3: CPU1: using allocated LPI pending table @0x00000000df830000
    [    0.081779] CPU1: Booted secondary processor 0x0000000001 [0x411fd080]
    [    0.081844] smp: Brought up 1 node, 2 CPUs
    [    0.111176] SMP: Total of 2 processors activated.
    [    0.115977] CPU features: detected: 32-bit EL0 Support
    [    0.121226] CPU features: detected: CRC32 instructions
    [    0.132618] CPU: All CPU(s) started at EL2
    [    0.136821] alternatives: patching kernel code
    [    0.142048] devtmpfs: initialized
    [    0.148173] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.158139] futex hash table entries: 512 (order: -1, 32768 bytes, linear)
    [    0.166133] pinctrl core: initialized pinctrl subsystem
    [    0.172020] NET: Registered protocol family 16
    [    0.179942] DMA: preallocated 256 KiB pool for atomic allocations
    [    0.186580] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.200002] HugeTLB registered 16.0 GiB page size, pre-allocated 0 pages
    [    0.206861] HugeTLB registered 512 MiB page size, pre-allocated 0 pages
    [    0.213611] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.221652] cryptd: max_cpu_qlen set to 1000
    [    0.228376] iommu: Default domain type: Translated
    [    0.233555] SCSI subsystem initialized
    [    0.237731] mc: Linux media interface: v0.10
    [    0.242114] videodev: Linux video capture interface: v2.00
    [    0.247721] pps_core: LinuxPPS API ver. 1 registered
    [    0.252788] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.262118] PTP clock support registered
    [    0.266127] EDAC MC: Ver: 3.0.0
    [    0.269940] FPGA manager framework
    [    0.273473] Advanced Linux Sound Architecture Driver Initialized.
    [    0.280175] clocksource: Switched to clocksource arch_sys_counter
    [    0.286502] VFS: Disk quotas dquot_6.6.0
    [    0.290560] VFS: Dquot-cache hash table entries: 8192 (order 0, 65536 bytes)
    [    0.300148] thermal_sys: Registered thermal governor 'step_wise'
    [    0.300151] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.306477] NET: Registered protocol family 2
    [    0.317935] tcp_listen_portaddr_hash hash table entries: 4096 (order: 0, 65536 bytes, linear)
    [    0.326701] TCP established hash table entries: 16384 (order: 1, 131072 bytes, linear)
    [    0.334848] TCP bind hash table entries: 16384 (order: 2, 262144 bytes, linear)
    [    0.342464] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.349221] UDP hash table entries: 2048 (order: 0, 65536 bytes, linear)
    [    0.356115] UDP-Lite hash table entries: 2048 (order: 0, 65536 bytes, linear)
    [    0.363538] NET: Registered protocol family 1
    [    0.368416] RPC: Registered named UNIX socket transport module.
    [    0.374470] RPC: Registered udp transport module.
    [    0.379270] RPC: Registered tcp transport module.
    [    0.384067] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.390645] PCI: CLS 0 bytes, default 64
    [    0.394983] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
    [    0.405501] Initialise system trusted keyrings
    [    0.410169] workingset: timestamp_bits=46 max_order=15 bucket_order=0
    [    0.418956] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.425291] NFS: Registering the id_resolver key type
    [    0.430480] Key type id_resolver registered
    [    0.434749] Key type id_legacy registered
    [    0.438843] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.445830] 9p: Installing v9fs 9p2000 file system support
    [    0.458454] Key type asymmetric registered
    [    0.462644] Asymmetric key parser 'x509' registered
    [    0.467651] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
    [    0.475205] io scheduler mq-deadline registered
    [    0.479826] io scheduler kyber registered
    [    0.484923] pinctrl-single 4301c000.pinmux: 94 pins, size 376
    [    0.491020] pinctrl-single 11c000.pinmux: 173 pins, size 692
    [    0.497192] pinctrl-single a40000.timesync_router: 512 pins, size 2048
    [    0.505987] k3-ringacc 2b800000.ringacc: Failed to get MSI domain
    [    0.512272] k3-ringacc 3c000000.ringacc: Failed to get MSI domain
    [    0.519992] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.533350] brd: module loaded
    [    0.540851] loop: module loaded
    [    0.545371] libphy: Fixed MDIO Bus: probed
    [    0.549791] tun: Universal TUN/TAP device driver, 1.6
    [    0.555226] igbvf: Intel(R) Gigabit Virtual Function Network Driver - version 2.4.0-k
    [    0.563236] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.569306] sky2: driver version 1.30
    [    0.573489] VFIO - User Level meta-driver version: 0.3
    [    0.579165] i2c /dev entries driver
    [    0.583167] sdhci: Secure Digital Host Controller Interface driver
    [    0.589482] sdhci: Copyright(c) Pierre Ossman
    [    0.594098] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.600264] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.607078] optee: probing for conduit method from DT.
    [    0.612368] optee: revision 3.11 (c4def2a8)
    [    0.612784] optee: initialized driver
    [    0.621904] NET: Registered protocol family 17
    [    0.626571] 9pnet: Installing 9P2000 support
    [    0.630973] Key type dns_resolver registered
    [    0.635521] registered taskstats version 1
    [    0.639715] Loading compiled-in X.509 certificates
    [    0.648657] k3-ringacc 2b800000.ringacc: Failed to get MSI domain
    [    0.655019] k3-ringacc 3c000000.ringacc: Failed to get MSI domain
    [    0.661993] ti-sci 44083000.dmsc: ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')
    [    0.681307] omap_i2c 40b00000.i2c: bus 0 rev0.12 at 100 kHz
    [    0.687446] omap_i2c 40b10000.i2c: bus 1 rev0.12 at 100 kHz
    [    0.693565] omap_i2c 42120000.i2c: bus 2 rev0.12 at 100 kHz
    [    0.699687] omap_i2c 2020000.i2c: bus 3 rev0.12 at 100 kHz
    [    0.705711] omap_i2c 2030000.i2c: bus 4 rev0.12 at 100 kHz
    [    0.711768] omap_i2c 2040000.i2c: bus 5 rev0.12 at 100 kHz
    [    0.717802] omap_i2c 2050000.i2c: bus 6 rev0.12 at 100 kHz
    [    0.723820] omap_i2c 2060000.i2c: bus 7 rev0.12 at 100 kHz
    [    0.729886] ti-sci-intr bus@100000:bus@28380000:interrupt-controller2: Interrupt Router 137 domain created
    [    0.739854] ti-sci-intr bus@100000:interrupt-controller0: Interrupt Router 131 domain created
    [    0.748647] ti-sci-intr bus@100000:navss@30000000:interrupt-controller1: Interrupt Router 213 domain created
    [    0.758808] ti-sci-inta 33d00000.interrupt-controller: Interrupt Aggregator domain -1 created
    [    0.770758] k3-ringacc 2b800000.ringacc: Ring Accelerator probed rings:286, gp-rings[96,32] sci-dev-id:235
    [    0.780654] k3-ringacc 2b800000.ringacc: dma-ring-reset-quirk: disabled
    [    0.787407] k3-ringacc 2b800000.ringacc: RA Proxy rev. 66349100, num_proxies:64
    [    0.796950] k3-ringacc 3c000000.ringacc: Ring Accelerator probed rings:1024, gp-rings[120,200] sci-dev-id:211
    [    0.807096] k3-ringacc 3c000000.ringacc: dma-ring-reset-quirk: disabled
    [    0.813847] k3-ringacc 3c000000.ringacc: RA Proxy rev. 66349100, num_proxies:64
    [    0.821740] printk: console [ttyS1] disabled
    [    0.826130] 40a00000.serial: ttyS1 at MMIO 0x40a00000 (irq = 7, base_baud = 6000000) is a 8250
    [    0.834950] printk: console [ttyS1] enabled
    [    0.834950] printk: console [ttyS1] enabled
    [    0.843383] printk: bootconsole [ns16550a0] disabled
    [    0.843383] printk: bootconsole [ns16550a0] disabled
    [    0.853895] 2810000.serial: ttyS3 at MMIO 0x2810000 (irq = 13, base_baud = 3000000) is a 8250
    [    0.863304] am65-cpts 310d0000.cpts: CPTS ver 0x4e8a010b, freq:200000000, add_val:4 pps:0
    [    0.871908] mmc0: CQHCI version 5.10
    [    0.916427] mmc0: SDHCI controller on 4f80000.sdhci [4f80000.sdhci] using ADMA 64-bit
    [    0.927987] omap-mailbox 31f80000.mailbox: omap mailbox rev 0x66fc8900
    [    0.934860] omap-mailbox 31f81000.mailbox: omap mailbox rev 0x66fc8900
    [    0.942031] random: fast init done
    [    0.945753] ti-udma 285c0000.dma-controller: Channels: 26 (tchan: 13, rchan: 13, gp-rflow: 8)
    [    0.955644] ti-udma 31150000.dma-controller: Channels: 50 (tchan: 25, rchan: 25, gp-rflow: 8)
    [    0.966498] debugfs: Directory 'pd:240' with parent 'pm_genpd' already present!
    [    0.974623] hctosys: unable to open rtc device (rtc0)
    [    0.981973] ALSA device list:
    [    0.984942]   No soundcards found.
    [    0.988632] Waiting for root device PARTUUID=ed6196a4-c34f-4d76-bdf1-63bde0646461...
    [    1.048810] mmc0: Command Queue Engine enabled
    [    1.053263] mmc0: new HS400 MMC card at address 0001
    [    1.058594] mmcblk0: mmc0:0001 S0J56X 14.8 GiB
    [    1.063311] mmcblk0boot0: mmc0:0001 S0J56X partition 1 31.5 MiB
    [    1.069432] mmcblk0boot1: mmc0:0001 S0J56X partition 2 31.5 MiB
    [    1.075484] mmcblk0rpmb: mmc0:0001 S0J56X partition 3 4.00 MiB, chardev (240:0)
    [    1.084602]  mmcblk0: p1
    [    1.230058] EXT4-fs (mmcblk0p1): 1 orphan inode deleted
    [    1.235313] EXT4-fs (mmcblk0p1): recovery complete
    [    1.245129] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
    [    1.253254] VFS: Mounted root (ext4 filesystem) on device 179:1.
    [    1.259748] devtmpfs: mounted
    [    1.263761] Freeing unused kernel memory: 1664K
    [    1.268340] Run /sbin/init as init process
    [    1.318491] systemd[1]: System time before build time, advancing clock.
    [    1.345019] NET: Registered protocol family 10
    [    1.349970] Segment Routing with IPv6
    [    1.362878] 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)
    [    1.384735] systemd[1]: Detected architecture arm64.
    
    Welcome to Arago 2020.09!
    
    [    1.428730] systemd[1]: Set hostname to <j7200-evm>.
    [    1.594841] 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.
    [    1.660564] random: systemd: uninitialized urandom read (16 bytes read)
    [    1.667324] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
    [    1.679661] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
    [    1.690058] systemd[1]: Created slice system-getty.slice.
    [  OK  ] Created slice system-getty.slice.
    [    1.712308] random: systemd: uninitialized urandom read (16 bytes read)
    [    1.719809] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [    1.740304] random: systemd: uninitialized urandom read (16 bytes read)
    [    1.747844] systemd[1]: Created slice system-syslog\x2dng.slice.
    [  OK  ] Created slice system-syslog\x2dng.slice.
    [    1.765269] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    1.788619] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password …ts to Console Directory Watch.
    [    1.812434] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password R…uests to Wall Directory Watch.
    [    1.836385] systemd[1]: Reached target Paths.
    [  OK  ] Reached target Paths.
    [    1.852307] systemd[1]: Reached target Remote File Systems.
    [  OK  ] Reached target Remote File Systems.
    [    1.872296] systemd[1]: Reached target Slices.
    [  OK  ] Reached target Slices.
    [    1.888303] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    1.907355] systemd[1]: Listening on RPCbind Server Activation Socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [    1.928324] systemd[1]: Reached target RPC Port Mapper.
    [  OK  ] Reached target RPC Port Mapper.
    [    1.950603] systemd[1]: Listening on Process Core Dump Socket.
    [  OK  ] Listening on Process Core Dump Socket.
    [    1.972468] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [  OK  ] Listening on initctl Compatibility Named Pipe.
    [    2.000781] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
    [    2.009235] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    2.028635] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    2.044670] systemd[1]: Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [    2.064611] systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    [    2.080505] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    2.100146] systemd[1]: Mounting Huge Pages File System...
             Mounting Huge Pages File System...
    [    2.119842] systemd[1]: Mounting POSIX Message Queue File System...
             Mounting POSIX Message Queue File System...
    [    2.143443] systemd[1]: Mounting Kernel Debug File System...
             Mounting Kernel Debug File System...
    [    2.165875] systemd[1]: Mounting Temporary Directory (/tmp)...
             Mounting Temporary Directory (/tmp)...
    [    2.184321] systemd[1]: Starting Create list of static device nodes for the current kernel...
             Starting Create list of st…odes for the current kernel...
    [    2.212762] systemd[1]: Started Hardware RNG Entropy Gatherer Daemon.
    [  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
    [    2.239393] systemd[1]: Starting RPC Bind...
             Starting RPC Bind...
    [    2.252447] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [    2.268609] systemd[1]: Starting Journal Service...
             Starting Journal Service...
    [    2.289326] systemd[1]: Starting Load Kernel Modules...
             Starting Load Kernel Modules...
    [    2.315548] 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...
    [    2.346249] EXT4-fs (mmcblk0p1): re-mounted. Opts: (null)
    [    2.356736] systemd[1]: Starting udev Coldplug all Devices...
             Starting udev Coldplug all Devices...
    [    2.363139] cryptodev: driver 1.10 loaded.
    [    2.377615] systemd[1]: Started RPC Bind.
    [  OK  ] Started RPC Bind.
    [    2.405429] systemd[1]: Started Journal Service.
    [  OK  ] Started Journal Service.
    [  OK  ] Mounted Huge Pages File System.
    [  OK  ] Mounted POSIX Message Queue File System.
    [  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...
             Starting Flush Journal to Persistent Storage...
             Starting Apply Kernel Variables...
    [    2.586902] systemd-journald[146]: 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 udev Coldplug all Devices.
    [  OK  ] Started Create Volatile Files and Directories.
    [  OK  ] Started udev Kernel Device Manager.
             Starting Network Time Synchronization...
             Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target System Time Set.
    [  OK  ] Reached target System Time Synchronized.
    [  OK  ] Started Daily rotation of log files.
    [  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  ] Started Reboot and dump vmcore via kexec.
    [  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 Ethernet Bridge Filtering Tables...
             Starting Print notice about GPLv3 packages...
             Starting IPv6 Packet Filtering Framework...
             Starting IPv4 Packet Filtering Framework...
    [  OK  ] Started irqbalance daemon.
             Starting System Logger Daemon "default" instance...
             Starting Login Service...
             Starting telnetd.service...
    [  OK  ] Started Ethernet Bridge Filtering Tables.
    [  OK  ] Started IPv6 Packet Filtering Framework.
    [  OK  ] Started IPv4 Packet Filtering Framework.
    [  OK  ] Reached target Network (Pre).
             Starting Network Service...
    [  OK  ] Started telnetd.service.
             Starting syslog.service...
    [    3.556665] rti-wdt 2200000.watchdog: heartbeat 60 sec
    [  OK  ] Started Network Service.
             Starting Wait for Network to be Configured...
             Starting Network Name Resolution...
    [  OK  ] Started Login Service.
    [    3.828244] rti-wdt 2210000.watchdog: heartbeat 60 sec
    [  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 Vsftpd ftp daemon.
    [  OK  ] Started Permit User Sessions.
    [  OK  ] Started Getty on tty1.
    [  OK  ] Started Serial Getty on ttyS1.
    [  OK  ] Started Serial Getty on ttyS2.
    [  OK  ] Started Serial Getty on ttyS3.
    [  OK  ] Reached target Login Prompts.
             Starting Synchronize System and HW clocks...
    [  OK  ] Started Avahi mDNS/DNS-SD Stack.
    [FAILED] Failed to start Synchronize System and HW clocks.
    See 'systemctl status sync-clocks.service' for details.
    [  OK  ] Started Enable and configure wl18xx bluetooth stack.
    [    4.736222] random: crng init done
    [    4.739624] random: 7 urandom warning(s) missed due to ratelimiting
    [  OK  ] Started Load/Save Random Seed.
    [    4.840852] platform 41000000.r5f: R5F core may have been powered on by a different host, programmed state (0) != actual state (1)
    [  OK  ] Started System Logger Daemon "default" instance.
    [  OK  ] Started syslog.service.
    [    4.926175] platform 41000000.r5f: configured R5F for IPC-only mode
    [  OK  ] Started Simple Network Man…ement Protocol (SNMP) Daemon..
    [    5.090491] platform 41000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000
    [    5.303983] remoteproc remoteproc0: 41000000.r5f is available
    [    5.356516] remoteproc remoteproc0: powering up 41000000.r5f
    [    5.362250] remoteproc remoteproc0: Booting fw image j7200-mcu-r5f0_0-fw, size 163752
    [    5.376466] platform 41000000.r5f: R5F core initialized in IPC-only mode
    [    5.387097]  remoteproc0#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
    [    5.400558] virtio_rpmsg_bus virtio0: rpmsg host is online
    [    5.406140]  remoteproc0#vdev0buffer: registered virtio0 (type 7)
    [    5.418348] remoteproc remoteproc0: remote processor 41000000.r5f is now up
    [    5.432345] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xd
    [    5.439961] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xe
    [    5.472840] platform 5c00000.r5f: configured R5F for remoteproc mode
    [    5.689627] platform 5c00000.r5f: assigned reserved memory node r5f-dma-memory@a2000000
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages[    5.715228] remoteproc remoteproc1: 5c00000.r5f is available
    :
            autoconf
            bash-dev
            bash
            bc
            binutils
            cifs-utils
            coreutils-stdbuf
            coreutils
            cpio
            cpp-symlinks
            cpp
            dosfsto[    5.731796] remoteproc remoteproc1: powering up 5c00000.r5f
    ols
            elfutils
            g++-symlinks
            g++
            gawk
            gcc-symlinks
    [    5.740209] remoteproc remoteproc1: Booting fw image j7200-main-r5f0_0-fw, size 666552
    
            gdb
            gdbserver
            gettext
            gstreamer1.0-libav
            gzip
            less
            libasm1
            libbfd
            libdw1
            libelf1
            libgdbm-compat4
            libgdbm[    5.758909] platform 5d00000.r5f: configured R5F for remoteproc mode
    -dev
            libgdbm6
            libgettextlib
            libgettextsrc
            libgmp10
            lib[    5.771526] platform 5c00000.r5f: booting R5F core using boot addr = 0x0
    idn2-0
            libmpc3
            libmpfr6
            libreadline-dev
            libreadline8
            libunistring2
            m4-dev
            m4
            make
            nettle
            parted
            tar
            whic[    5.788403]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a2000000
    h
    
    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution.  This can be don[    5.808690] virtio_rpmsg_bus virtio1: rpmsg host is online
    e using
    the opkg remove command.  i.e.:
        opkg remove <packa[    5.818257]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
    ge>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
         [    5.836195] remoteproc remoteproc1: remote processor 5c00000.r5f is now up
     will be notified of the dependent packages.  You should
          [    5.843116] virtio_rpmsg_bus virtio1: creating channel ti.ethfw.notifyservice addr 0x1e
    use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    *********************[    5.872304] virtio_rpmsg_bus virtio1: creating channel rpmsg-kdrv addr 0x1a
    ******************************************
    ********************[    5.884861] rpmsg-kdrv-eth-switch rpmsg-kdrv-2-mpu_1_0_ethswitch-device-0: Device info: permissions: 07FFFFFF uart_id: 3
    *******************************************
    [    5.898079] rpmsg-kdrv-eth-switch rpmsg-kdrv-2-mpu_1_0_ethswitch-device-0: FW ver 0.1 (rev 1) 26/Jul/2021 SHA:
    [  OK  ] Started Print notice about GPLv3 packages.
    [    5.923428] j721e-cpsw-virt-mac main_r5fss_cpsw5g_virt_mac0: virt_cpsw_nuss mac loaded
    [    5.934740] j721e-cpsw-virt-mac main_r5fss_cpsw5g_virt_mac0: rdev_features:00000003 rdev_mtu:1522 flow_id:84 tx_psil_dst_id:4A00
    [    5.952213] j721e-cpsw-virt-mac main_r5fss_cpsw5g_virt_mac0: local_mac_addr:00:00:00:00:00:00 rdev_mac_addr:70:ff:76:1d:92:c1
    [    6.040304] platform 5d00000.r5f: assigned reserved memory node r5f-dma-memory@a3000000
    [    6.158785] remoteproc remoteproc2: 5d00000.r5f is available
    [    6.275473] remoteproc remoteproc2: powering up 5d00000.r5f
    [    6.281211] remoteproc remoteproc2: Booting fw image j7200-main-r5f0_1-fw, size 85428
    [    6.295257] platform 5d00000.r5f: booting R5F core using boot addr = 0x0
    [    6.306887]  remoteproc2#vdev0buffer: assigned reserved memory node r5f-dma-memory@a3000000
    [    6.320812] virtio_rpmsg_bus virtio2: rpmsg host is online
    [    6.324396] virtio_rpmsg_bus virtio2: creating channel ti.ipc4.ping-pong addr 0xd
    [    6.326374]  remoteproc2#vdev0buffer: registered virtio2 (type 7)
    [    6.336304] virtio_rpmsg_bus virtio2: creating channel rpmsg_chrdev addr 0xe
    [    6.352187] remoteproc remoteproc2: remote processor 5d00000.r5f is now up
    [    7.399987] cdns-usb3 6000000.usb: DRD version v1 (ID: 0004024e, rev: 00000200)
    [    7.428763] omap_rng 40910000.rng: Random Number Generator ver. 241b34c
    [    7.646196] usbcore: registered new interface driver usbfs
    [    7.662618] usbcore: registered new interface driver hub
    [    7.681030] usbcore: registered new device driver usb
    [    7.737866] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    [    7.748578] j721e-cpsw-virt-mac main_r5fss_cpsw5g_virt_mac0: virt_cpsw_nuss mac started
    [    7.756036] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
    [    7.777323] xhci-hcd xhci-hcd.1.auto: hcc params 0x200073c9 hci version 0x100 quirks 0x0000000000010010
    [    7.796229] xhci-hcd xhci-hcd.1.auto: irq 484, io mem 0x06010000
    [    7.812551] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
    [    7.823948] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    7.860210] usb usb1: Product: xHCI Host Controller
    [    7.872688] usb usb1: Manufacturer: Linux 5.4.106-g023faefa70 xhci-hcd
    [    7.879832] usb usb1: SerialNumber: xhci-hcd.1.auto
    [    7.893291] hub 1-0:1.0: USB hub found
    [    7.904213] hub 1-0:1.0: 1 port detected
    [    7.912252] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    [    7.917748] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
    [    7.936239] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
    [    7.952250] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
    [    7.968260] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.04
    [    7.984221] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    7.995111] usb usb2: Product: xHCI Host Controller
    [    8.008189] usb usb2: Manufacturer: Linux 5.4.106-g023faefa70 xhci-hcd
    [    8.017163] usb usb2: SerialNumber: xhci-hcd.1.auto
    [    8.028900] hub 2-0:1.0: USB hub found
    [    8.035152] hub 2-0:1.0: 1 port detected
    [    8.244184] usb 1-1: new high-speed USB device number 2 using xhci-hcd
    [    8.400845] usb 1-1: New USB device found, idVendor=14cd, idProduct=1212, bcdDevice= 1.00
    [    8.412173] usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=2
    [    8.424193] usb 1-1: Product: Mass Storage Device
    [    8.428914] usb 1-1: Manufacturer: Generic
    [    8.440182] usb 1-1: SerialNumber: 121220160204
    [    8.532920] usb-storage 1-1:1.0: USB Mass Storage device detected
    [    8.564218] scsi host0: usb-storage 1-1:1.0
    [    8.572983] usbcore: registered new interface driver usb-storage
    [    9.584660] scsi 0:0:0:0: Direct-Access     Mass     Storage Device   1.00 PQ: 0 ANSI: 0 CCS
    [    9.803388] sd 0:0:0:0: [sda] 62521344 512-byte logical blocks: (32.0 GB/29.8 GiB)
    [    9.816212] sd 0:0:0:0: [sda] Write Protect is off
    [    9.821184] sd 0:0:0:0: [sda] No Caching mode page found
    [    9.826517] sd 0:0:0:0: [sda] Assuming drive cache: write through
    [    9.861491]  sda: sda1 sda2
    [    9.865506] sd 0:0:0:0: [sda] Attached SCSI removable disk
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project http://arago-project.org j7200-evm ttyS1
    
    Arago 2020.09 j7200-evm ttyS1
    
    j7200-evm login: r[   11.375628] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
    oot
    root@j7200-evm:~#
    root@j7200-evm:~#
    root@j7200-evm:~#
    root@j7200-evm:~#
    root@j7200-evm:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 70:FF:76:1D:92:C1
              inet6 addr: fe80::72ff:76ff:fe1d:92c1/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:3366 (3.2 KiB)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:82 errors:0 dropped:0 overruns:0 frame:0
              TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:6220 (6.0 KiB)  TX bytes:6220 (6.0 KiB)
    
    root@j7200-evm:~# cat /sys/kernel/debug/remoteproc/remoteproc1/trace0
    =======================================================
                CPSW Ethernet Firmware
    =======================================================
    CPSW_5G Test on MAIN NAVSS
    
    ETHFW Version   : 0.01.01
    ETHFW Build Date: Jul 26, 2021
    ETHFW Build Time: 15:32:58
    ETHFW Commit SHA:
    
    Host MAC address: 70:ff:76:1d:92:c2
    [NIMU_NDK] Registration of the ENET Successful
    IPC_echo_test (core : mcu2_0) .....
    Remote demo device (core : mcu2_0) .....
    TX Virtio creation failure: 0
    Ipc_lateVirtioCreate: Failed to create VirtIO for procId..
    EthApp_initIpcTask: Ipc_lateVirtioCreate failed: -1
    Function:CpswProxyServer_attachExtHandlerCb,HostId:0,CpswType:5
    Function:CpswProxyServer_registerMacHandlerCb,HostId:0,Handle:@a2b3400c,CoreKey:38acb7e6, MacAddress:70:ff:76:1d:92:c1, FlowIdx:84, FlowIdxOffset:0
    Cpsw_ioctlInternal: CPSW: Registered MAC address.ALE entry:7, Policer Entry:0root@j7200-evm:~#
    root@j7200-evm:~#
    root@j7200-evm:~# [   31.792194] vdd_sd_dv: disabling
    
    root@j7200-evm:~#
    root@j7200-evm:~# devmem2 0x4301c0a4
    /dev/mem opened.
    Memory mapped at address 0xffff94b80000.
    Read at address  0x4301C0A4 (0xffff94b8c0a4): 0x08254007
    root@j7200-evm:~#
    root@j7200-evm:~# devmem2 0x4301c0a8
    /dev/mem opened.
    Memory mapped at address 0xffffa09c0000.
    Read at address  0x4301C0A8 (0xffffa09cc0a8): 0x08254007
    root@j7200-evm:~#
    root@j7200-evm:~# devmem2 0x4301c018
    /dev/mem opened.
    Memory mapped at address 0xffffa2ca0000.
    Read at address  0x4301C018 (0xffffa2cac018): 0x08214007
    root@j7200-evm:~#
    root@j7200-evm:~# devmem2 0x4301c020
    /dev/mem opened.
    Memory mapped at address 0xffffb4cb0000.
    Read at address  0x4301C020 (0xffffb4cbc020): 0x08254007
    root@j7200-evm:~#
    root@j7200-evm:~#
    

    I read some Rtos code and it seems that DP83867 is supported by default.If I want to support an on-board Ethernet chip BCM89836 and a switch chip SJA1105P like this in my board, how do I modify the support?

    Thanks.

  • Hi,

    Are you still looking for a solution to this problem ? CPSW 5G cannot be enabled under Uboot because of SW architecture and there are no immediate plans to enable this.

    If you use Linux kernel then you can any 3P switch or ethernet PHY

    Regards

    Vineet