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.

MCU-PLUS-SDK-AM243X: ECAP pin muxing error in Sysconfig

Part Number: MCU-PLUS-SDK-AM243X
Other Parts Discussed in Thread: SYSCONFIG

Hi!
we are checking a feasibility on the AM64x SK device to run the following specs -

  • 2x CAN
  • 3XECAP
  • 3XPWM
  • 2 ethercat Clients
  • 1 Ethercat Master 

Since I have a resource conflict with adding the 2XECAP with 2XMCAN option, I would like to utilise the ECAP modules on the ICSSGx cores. But not sure why there is a resource conflict here again even though this pin is free- 

  

Looking forward to your advice here!

Best Regards,

Madhurya 

  • Hi,

    Please also note the following -

    We also need to add 3x EQEP (which inhibits from putting EtherCAT Slave on ICSSG0 and forces me to use ICSSG1. When changing the EtherCAT function in the “Industrial Comms” modules from ICSSG0 to ICSSG1, the PRU module is switching to ICSSG1, but the ECAP peripheral in the “additional ICSS Settings” is on PRU_ICSSG0_ECAP0 (I would expect it to change to PRU_ICSSG1_ECAPx ?)

    I have a sysconfig file to showcase this behaviour

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM64x_beta" --package "ALV" --part "Default" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM64x@08.03.00"
     * @versions {"tool":"1.12.1+2446"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const ddr        = scripting.addModule("/drivers/ddr/ddr", {}, false);
    const ddr1       = ddr.addInstance();
    const ecap       = scripting.addModule("/drivers/ecap/ecap", {}, false);
    const ecap1      = ecap.addInstance();
    const epwm       = scripting.addModule("/drivers/epwm/epwm", {}, false);
    const epwm1      = epwm.addInstance();
    const epwm2      = epwm.addInstance();
    const epwm3      = epwm.addInstance();
    const eqep       = scripting.addModule("/drivers/eqep/eqep", {}, false);
    const eqep1      = eqep.addInstance();
    const eqep2      = eqep.addInstance();
    const eqep3      = eqep.addInstance();
    const mcan       = scripting.addModule("/drivers/mcan/mcan", {}, false);
    const mcan1      = mcan.addInstance();
    const mcan2      = mcan.addInstance();
    const pruicss    = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
    const pruicss1   = pruicss.addInstance();
    const ethercat   = scripting.addModule("/industrial_comms/ethercat/ethercat", {}, false);
    const ethercat1  = ethercat.addInstance();
    const enet_cpsw  = scripting.addModule("/networking/enet_cpsw/enet_cpsw", {}, false);
    const enet_cpsw1 = enet_cpsw.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    ddr1.$name = "CONFIG_DDR0";
    
    ecap1.$name = "CONFIG_ECAP0";
    
    epwm1.$name            = "CONFIG_EPWM0";
    epwm1.EPWM.B.$used     = false;
    epwm1.EPWM.SYNCO.$used = false;
    epwm1.EPWM.SYNCI.$used = false;
    
    epwm2.$name            = "CONFIG_EPWM1";
    epwm2.EPWM.B.$used     = false;
    epwm2.EPWM.SYNCO.$used = false;
    epwm2.EPWM.SYNCI.$used = false;
    
    epwm3.$name            = "CONFIG_EPWM2";
    epwm3.EPWM.B.$used     = false;
    epwm3.EPWM.SYNCO.$used = false;
    epwm3.EPWM.SYNCI.$used = false;
    
    eqep1.$name = "CONFIG_EQEP0";
    
    eqep2.$name = "CONFIG_EQEP1";
    
    eqep3.$name = "CONFIG_EQEP2";
    
    mcan1.$name = "CONFIG_MCAN0";
    
    mcan2.$name = "CONFIG_MCAN1";
    
    ethercat1.$name           = "CONFIG_ETHERCAT0";
    ethercat1.instance        = "ICSSG1";
    ethercat1.ethphy[0].$name = "CONFIG_ETHPHY0";
    ethercat1.ethphy[1].$name = "CONFIG_ETHPHY1";
    
    pruicss1.$name                                                         = "CONFIG_PRU_ICSS0";
    ethercat1.icss                                                         = pruicss1;
    pruicss1.AdditionalICSSSettings.create(1);
    pruicss1.AdditionalICSSSettings[0].$name                               = "CONFIG_PRU_ICSS_GPIO0";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_ECAP.IN_APWM_OUT.$assign = "ball.R2";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_ECAP.IN_APWM_OUT.$used   = true;
    
    enet_cpsw1.$name                 = "CONFIG_ENET_CPSW0";
    enet_cpsw1.phyToMacInterfaceMode = "RGMII";
    
    /**
     * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
     * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
     * re-solve from scratch.
     */
    ecap1.ECAP.$suggestSolution                                         = "ECAP0";
    ecap1.ECAP.IN_APWM_OUT.$suggestSolution                             = "ball.D18";
    epwm1.EPWM.$suggestSolution                                         = "EHRPWM2";
    epwm1.EPWM.A.$suggestSolution                                       = "ball.V19";
    epwm2.EPWM.$suggestSolution                                         = "EHRPWM1";
    epwm2.EPWM.A.$suggestSolution                                       = "ball.U19";
    epwm3.EPWM.$suggestSolution                                         = "EHRPWM0";
    epwm3.EPWM.A.$suggestSolution                                       = "ball.U20";
    eqep1.EQEP.$suggestSolution                                         = "EQEP2";
    eqep1.EQEP.A.$suggestSolution                                       = "ball.R5";
    eqep1.EQEP.B.$suggestSolution                                       = "ball.Y4";
    eqep1.EQEP.I.$suggestSolution                                       = "ball.W4";
    eqep1.EQEP.S.$suggestSolution                                       = "ball.R1";
    eqep2.EQEP.$suggestSolution                                         = "EQEP1";
    eqep2.EQEP.A.$suggestSolution                                       = "ball.W20";
    eqep2.EQEP.B.$suggestSolution                                       = "ball.W21";
    eqep2.EQEP.I.$suggestSolution                                       = "ball.R21";
    eqep2.EQEP.S.$suggestSolution                                       = "ball.P19";
    eqep3.EQEP.$suggestSolution                                         = "EQEP0";
    eqep3.EQEP.A.$suggestSolution                                       = "ball.N16";
    eqep3.EQEP.B.$suggestSolution                                       = "ball.N17";
    eqep3.EQEP.I.$suggestSolution                                       = "ball.R20";
    eqep3.EQEP.S.$suggestSolution                                       = "ball.R19";
    mcan1.MCAN.$suggestSolution                                         = "MCAN0";
    mcan1.MCAN.RX.$suggestSolution                                      = "ball.B17";
    mcan1.MCAN.TX.$suggestSolution                                      = "ball.A17";
    mcan2.MCAN.$suggestSolution                                         = "MCAN1";
    mcan2.MCAN.RX.$suggestSolution                                      = "ball.D17";
    mcan2.MCAN.TX.$suggestSolution                                      = "ball.C17";
    ethercat1.PRU_ICSSG1_MDIO.$suggestSolution                          = "PRU_ICSSG1_MDIO0";
    ethercat1.PRU_ICSSG1_MDIO.MDC.$suggestSolution                      = "ball.Y6";
    ethercat1.PRU_ICSSG1_MDIO.MDIO.$suggestSolution                     = "ball.AA6";
    ethercat1.PRU_ICSSG1_IEP.$suggestSolution                           = "PRU_ICSSG1_IEP0";
    ethercat1.PRU_ICSSG1_IEP.EDC_LATCH_IN0.$suggestSolution             = "ball.V7";
    ethercat1.PRU_ICSSG1_IEP.EDC_LATCH_IN1.$suggestSolution             = "ball.U13";
    ethercat1.PRU_ICSSG1_IEP.EDC_SYNC_OUT0.$suggestSolution             = "ball.W7";
    ethercat1.PRU_ICSSG1_IEP.EDC_SYNC_OUT1.$suggestSolution             = "ball.U7";
    ethercat1.PRU_ICSSG1_MII_G_RT.$suggestSolution                      = "PRU_ICSSG1_MII_G_RT";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD0.$suggestSolution            = "ball.Y7";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD1.$suggestSolution            = "ball.U8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD2.$suggestSolution            = "ball.W8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD3.$suggestSolution            = "ball.V8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXDV.$suggestSolution            = "ball.Y8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXER.$suggestSolution            = "ball.V13";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXLINK.$suggestSolution          = "ball.W13";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD0.$suggestSolution            = "ball.AA8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD1.$suggestSolution            = "ball.U9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD2.$suggestSolution            = "ball.W9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD3.$suggestSolution            = "ball.AA9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXEN.$suggestSolution            = "ball.Y9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD0.$suggestSolution            = "ball.W11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD1.$suggestSolution            = "ball.V11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD2.$suggestSolution            = "ball.AA12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD3.$suggestSolution            = "ball.Y12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXDV.$suggestSolution            = "ball.W12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXER.$suggestSolution            = "ball.AA13";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXLINK.$suggestSolution          = "ball.U12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD0.$suggestSolution            = "ball.AA10";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD1.$suggestSolution            = "ball.V10";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD2.$suggestSolution            = "ball.U10";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD3.$suggestSolution            = "ball.AA11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXEN.$suggestSolution            = "ball.Y11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MR0_CLK.$suggestSolution          = "ball.AA7";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MR1_CLK.$suggestSolution          = "ball.U11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MT0_CLK.$suggestSolution          = "ball.V9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MT1_CLK.$suggestSolution          = "ball.Y10";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_IEP.$suggestSolution  = "PRU_ICSSG0_IEP0";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_PRU.$suggestSolution  = "PRU_ICSSG0_PRU0";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_ECAP.$suggestSolution = "PRU_ICSSG0_ECAP0";
    enet_cpsw1.RGMII.$suggestSolution                                   = "RGMII1";
    enet_cpsw1.RGMII.RD0.$suggestSolution                               = "ball.W5";
    enet_cpsw1.RGMII.RD1.$suggestSolution                               = "ball.Y5";
    enet_cpsw1.RGMII.RD2.$suggestSolution                               = "ball.V6";
    enet_cpsw1.RGMII.RD3.$suggestSolution                               = "ball.V5";
    enet_cpsw1.RGMII.RX_CTL.$suggestSolution                            = "ball.W6";
    enet_cpsw1.RGMII.RXC.$suggestSolution                               = "ball.AA5";
    enet_cpsw1.RGMII.TD0.$suggestSolution                               = "ball.V15";
    enet_cpsw1.RGMII.TD1.$suggestSolution                               = "ball.V14";
    enet_cpsw1.RGMII.TD2.$suggestSolution                               = "ball.W14";
    enet_cpsw1.RGMII.TD3.$suggestSolution                               = "ball.AA14";
    enet_cpsw1.RGMII.TX_CTL.$suggestSolution                            = "ball.U15";
    enet_cpsw1.RGMII.TXC.$suggestSolution                               = "ball.U14";
    
    .

  • Hi Madhurya,

    Thank you for your patience while I have been looking into this issue.

    What is the need for a second instance of EtherCAT? When you add a single instance, SysConfig actually configures the ICSSG with 2x RMII interfaces.

    I have included a .syscfg file below that enables an AM64x configuration with the interface requirements you specified. Please review this for accuracy and let us know if you have additional questions.

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM64x_beta" --package "ALV" --part "Default" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM64x@08.03.00"
     * @versions {"tool":"1.12.1+2446"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const ecap       = scripting.addModule("/drivers/ecap/ecap", {}, false);
    const ecap1      = ecap.addInstance();
    const eqep       = scripting.addModule("/drivers/eqep/eqep", {}, false);
    const eqep1      = eqep.addInstance();
    const eqep2      = eqep.addInstance();
    const eqep3      = eqep.addInstance();
    const mcan       = scripting.addModule("/drivers/mcan/mcan", {}, false);
    const mcan1      = mcan.addInstance();
    const mcan2      = mcan.addInstance();
    const pruicss    = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
    const pruicss1   = pruicss.addInstance();
    const ethercat   = scripting.addModule("/industrial_comms/ethercat/ethercat", {}, false);
    const ethercat1  = ethercat.addInstance();
    const enet_cpsw  = scripting.addModule("/networking/enet_cpsw/enet_cpsw", {}, false);
    const enet_cpsw1 = enet_cpsw.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    ecap1.$name = "CONFIG_ECAP0";
    
    eqep1.$name = "CONFIG_EQEP0";
    
    eqep2.$name = "CONFIG_EQEP1";
    
    eqep3.$name = "CONFIG_EQEP2";
    
    mcan1.$name = "CONFIG_MCAN0";
    
    mcan2.$name = "CONFIG_MCAN1";
    
    pruicss1.$name                                                       = "CONFIG_PRU_ICSS0";
    pruicss1.iepSyncMode                                                 = true;
    pruicss1.instance                                                    = "ICSSG0";
    pruicss1.AdditionalICSSSettings.create(1);
    pruicss1.AdditionalICSSSettings[0].$name                             = "CONFIG_PRU_ICSS_GPIO0";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_ECAP.IN_APWM_OUT.$used = true;
    
    ethercat1.$name           = "CONFIG_ETHERCAT1";
    ethercat1.instance        = "ICSSG1";
    ethercat1.ethphy[0].$name = "CONFIG_ETHPHY4";
    ethercat1.ethphy[1].$name = "CONFIG_ETHPHY5";
    
    const pruicss2 = pruicss.addInstance({}, false);
    pruicss2.$name = "CONFIG_PRU_ICSS1";
    ethercat1.icss = pruicss2;
    
    enet_cpsw1.$name                   = "CONFIG_ENET_CPSW0";
    enet_cpsw1.RMII.RMII2_CRS_DV.$used = false;
    enet_cpsw1.RMII.RMII2_RXD0.$used   = false;
    enet_cpsw1.RMII.RMII2_RXD1.$used   = false;
    enet_cpsw1.RMII.RMII2_RX_ER.$used  = false;
    enet_cpsw1.RMII.RMII2_TXD0.$used   = false;
    enet_cpsw1.RMII.RMII2_TXD1.$used   = false;
    enet_cpsw1.RMII.RMII2_TX_EN.$used  = false;
    
    /**
     * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
     * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
     * re-solve from scratch.
     */
    ecap1.ECAP.$suggestSolution                                                     = "ECAP0";
    ecap1.ECAP.IN_APWM_OUT.$suggestSolution                                         = "ECAP0_IN_APWM_OUT";
    eqep1.EQEP.$suggestSolution                                                     = "EQEP2";
    eqep1.EQEP.A.$suggestSolution                                                   = "PRG0_PRU1_GPO6";
    eqep1.EQEP.B.$suggestSolution                                                   = "PRG0_PRU1_GPO12";
    eqep1.EQEP.I.$suggestSolution                                                   = "PRG0_PRU1_GPO11";
    eqep1.EQEP.S.$suggestSolution                                                   = "PRG0_PRU1_GPO8";
    eqep2.EQEP.$suggestSolution                                                     = "EQEP1";
    eqep2.EQEP.A.$suggestSolution                                                   = "GPMC0_AD11";
    eqep2.EQEP.B.$suggestSolution                                                   = "GPMC0_AD12";
    eqep2.EQEP.I.$suggestSolution                                                   = "GPMC0_CSn3";
    eqep2.EQEP.S.$suggestSolution                                                   = "GPMC0_CSn2";
    eqep3.EQEP.$suggestSolution                                                     = "EQEP0";
    eqep3.EQEP.A.$suggestSolution                                                   = "GPMC0_WPn";
    eqep3.EQEP.B.$suggestSolution                                                   = "GPMC0_DIR";
    eqep3.EQEP.I.$suggestSolution                                                   = "GPMC0_CSn1";
    eqep3.EQEP.S.$suggestSolution                                                   = "GPMC0_CSn0";
    mcan1.MCAN.$suggestSolution                                                     = "MCAN0";
    mcan1.MCAN.RX.$suggestSolution                                                  = "MCAN0_RX";
    mcan1.MCAN.TX.$suggestSolution                                                  = "MCAN0_TX";
    mcan2.MCAN.$suggestSolution                                                     = "MCAN1";
    mcan2.MCAN.RX.$suggestSolution                                                  = "MCAN1_RX";
    mcan2.MCAN.TX.$suggestSolution                                                  = "MCAN1_TX";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_IEP.$suggestSolution              = "PRU_ICSSG0_IEP0";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_PRU.$suggestSolution              = "PRU_ICSSG0_PRU0";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_ECAP.$suggestSolution             = "PRU_ICSSG0_ECAP0";
    pruicss1.AdditionalICSSSettings[0].PRU_ICSSG0_ECAP.IN_APWM_OUT.$suggestSolution = "PRG0_PRU1_GPO15";
    ethercat1.PRU_ICSSG1_MDIO.$suggestSolution                                      = "PRU_ICSSG1_MDIO0";
    ethercat1.PRU_ICSSG1_MDIO.MDC.$suggestSolution                                  = "PRG1_MDIO0_MDC";
    ethercat1.PRU_ICSSG1_MDIO.MDIO.$suggestSolution                                 = "PRG1_MDIO0_MDIO";
    ethercat1.PRU_ICSSG1_IEP.$suggestSolution                                       = "PRU_ICSSG1_IEP0";
    ethercat1.PRU_ICSSG1_IEP.EDC_LATCH_IN0.$suggestSolution                         = "PRG1_PRU0_GPO18";
    ethercat1.PRU_ICSSG1_IEP.EDC_LATCH_IN1.$suggestSolution                         = "PRG1_PRU0_GPO7";
    ethercat1.PRU_ICSSG1_IEP.EDC_SYNC_OUT0.$suggestSolution                         = "PRG1_PRU0_GPO19";
    ethercat1.PRU_ICSSG1_IEP.EDC_SYNC_OUT1.$suggestSolution                         = "PRG1_PRU0_GPO17";
    ethercat1.PRU_ICSSG1_MII_G_RT.$suggestSolution                                  = "PRU_ICSSG1_MII_G_RT";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD0.$suggestSolution                        = "PRG1_PRU0_GPO0";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD1.$suggestSolution                        = "PRG1_PRU0_GPO1";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD2.$suggestSolution                        = "PRG1_PRU0_GPO2";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD3.$suggestSolution                        = "PRG1_PRU0_GPO3";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXDV.$suggestSolution                        = "PRG1_PRU0_GPO4";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXER.$suggestSolution                        = "PRG1_PRU0_GPO5";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXLINK.$suggestSolution                      = "PRG1_PRU0_GPO8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD0.$suggestSolution                        = "PRG1_PRU0_GPO11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD1.$suggestSolution                        = "PRG1_PRU0_GPO12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD2.$suggestSolution                        = "PRG1_PRU0_GPO13";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD3.$suggestSolution                        = "PRG1_PRU0_GPO14";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXEN.$suggestSolution                        = "PRG1_PRU0_GPO15";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD0.$suggestSolution                        = "PRG1_PRU1_GPO0";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD1.$suggestSolution                        = "PRG1_PRU1_GPO1";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD2.$suggestSolution                        = "PRG1_PRU1_GPO2";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD3.$suggestSolution                        = "PRG1_PRU1_GPO3";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXDV.$suggestSolution                        = "PRG1_PRU1_GPO4";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXER.$suggestSolution                        = "PRG1_PRU1_GPO5";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXLINK.$suggestSolution                      = "PRG1_PRU1_GPO8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD0.$suggestSolution                        = "PRG1_PRU1_GPO11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD1.$suggestSolution                        = "PRG1_PRU1_GPO12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD2.$suggestSolution                        = "PRG1_PRU1_GPO13";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD3.$suggestSolution                        = "PRG1_PRU1_GPO14";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXEN.$suggestSolution                        = "PRG1_PRU1_GPO15";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MR0_CLK.$suggestSolution                      = "PRG1_PRU0_GPO6";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MR1_CLK.$suggestSolution                      = "PRG1_PRU1_GPO6";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MT0_CLK.$suggestSolution                      = "PRG1_PRU0_GPO16";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MT1_CLK.$suggestSolution                      = "PRG1_PRU1_GPO16";
    enet_cpsw1.RMII.$suggestSolution                                                = "RMII";
    enet_cpsw1.RMII.RMII_REF_CLK.$suggestSolution                                   = "PRG1_PRU0_GPO10";
    enet_cpsw1.RMII.RMII1_CRS_DV.$suggestSolution                                   = "PRG1_PRU1_GPO19";
    enet_cpsw1.RMII.RMII1_RXD0.$suggestSolution                                     = "PRG1_PRU1_GPO7";
    enet_cpsw1.RMII.RMII1_RXD1.$suggestSolution                                     = "PRG1_PRU1_GPO9";
    enet_cpsw1.RMII.RMII1_RX_ER.$suggestSolution                                    = "PRG1_PRU0_GPO9";
    enet_cpsw1.RMII.RMII1_TXD0.$suggestSolution                                     = "PRG1_PRU1_GPO10";
    enet_cpsw1.RMII.RMII1_TXD1.$suggestSolution                                     = "PRG1_PRU1_GPO17";
    enet_cpsw1.RMII.RMII1_TX_EN.$suggestSolution                                    = "PRG1_PRU1_GPO18";
    

    Best Regards,

    Zackary Fleenor