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.

SK-AM64: TMDS64EVM - How to SYSCONFIG for ICSS 2X 1 Gigiabit Ethernet?

Part Number: SK-AM64

I am using the TMDS64EVM development board to implement and test a PLC system.  Our application requires three 1 Gigabit Ethernet ports.

I was able to get the CPSW Ethernet port working at 1 Gigabit using the "enet_l2_cpsw" example.  I am now looking at the "enet_layer2_icssg" example.  The SDK version is

The "enet_layer2_icssg" example only seems to allow 100 megabit Ethernet links to be negotiated.  It also does not operate the ICSS in dual MAC mode though there appears to be an option for that.

My questions are very basic.  Can I use SYSCONFIG to change the ICSS Ethernet for the PRUs to use dual MAC mode instead of switch mode, or do I need to create a custom board configuration for that?  The second question is if I can use SYSCONFIG to change the ICSS ports to allow or select 1 Gigabit operation.  If I can't use SYSCONFIG, what can I do instead?

Are there switches or jumpers on the development board to change the PHY modes, or are there functions in the SDK to change the PHY settings?

From what I can tell, both of the ICSS Ethernet PHYs are connected to the same one of the PRUs.  Can a single PRU support two Gigabit Ethernet ports?  Is there any way for the development board to use the second PRU to access one of the Ethernet ports?

I would appreciate any links or information you can provide about configuring the PRUs for 1 Gigabit and dual MAC mode.

Please let me know if it is not possible to use three Gigabit ports on the SOC, or if the development board will not support three Gigabit ports.  Either one of those will affect our development plans.

  • Hi ,

    Thanks for your query.

    Can you please refer below example with MCUSDK and update the results ?

    Best Regards


  • This is the result that I got from running that example.  The link is still operating at 100 Megabits.  Also, the port numbering seems to have changed from port 1 to port 2 for the bottom RJ45.

     Enet Loopback: Iteration 1
    Enabling clocks!

    Init  configs EnetType:1, InstId :3
    initQs() txFreePktInfoQ initialized with 16 pkts

     - HOST PORT statistics

     Mac 1 statistics

    EnetPhy_bindDriver: PHY 3: OUI:080028 Model:0f Ver:01 <-> 'dp83869' : OK
    Icssg_handleLinkUp: icssg1-2: Port 2: Link up: 100-Mbps Full-Duplex

     - HOST PORT statistics
      hostRxByteCnt              = 518000
      hostTxByteCnt              = 514000
      hostRxPktCnt               = 1000
      hostTxPktCnt               = 1000

     Mac 1 statistics
      rxGoodFrames            = 1000
      rxBCastFrames           = 1000
      rxMCastFrames           = 1000
      rxClass8                = 1000
      rxClass9                = 1000
      rxBucket5SizedFrame     = 1000
      rxTotalByte             = 518000
      rxTxTotalByte           = 1044000
      txGoodFrame             = 1000
      txBcastFrame            = 1000
      txMcastFrame            = 1000
      txBucket5SizedFrame     = 1000
      txTotalByte             = 526000

    Icssg_unregisterEventCb: icssg1-2: event not registered 1
    Unregister TX timestamp callback
    Icssg_unregisterEventCb: icssg1-2: event not registered 64
    Icssg_handleLinkDown: icssg1-2: Port 2: Link down
    Disabling clocks for ENET: 1, inst:3!
    Test complete: PASS
    Loopback application completed
    All tests have passed!!

  • Running the Layer 2 example, I now do see the link connected as 1 Gigabit.

          MULTIPORT TEST      

    Init all peripheral clocks
    Enabling clocks!
    Enabling clocks!

    Open all peripherals

    Init  configs EnetType:1, InstId :2
    Mdio_open: MDIO Manual_Mode enabled
    icssg1-p1: Open port 1
    EnetPhy_bindDriver: PHY 15: OUI:080028 Model:0f Ver:01 <-> 'dp83869' : OK
    PHY 3 is alive
    PHY 15 is alive

    Init  configs EnetType:1, InstId :3
    Mdio_open: MDIO Manual_Mode enabled
    icssg1-p2: Open port 2
    EnetPhy_bindDriver: PHY 3: OUI:080028 Model:0f Ver:01 <-> 'dp83869' : OK
    PHY 3 is alive
    PHY 15 is alive
    icssg1-p1: Register async IOCTL callback
    icssg1-p1: Register TX timestamp callback
    icssg1-p2: Register async IOCTL callback
    icssg1-p2: Register TX timestamp callback

    Attach core id 1 on all peripherals
    icssg1-p1: Attach core
    icssg1-p2: Attach core

    Create RX tasks
    icssg1-p1: Create RX task
    icssg1-p1: Waiting for link up...
    icssg1-p2: Create RX task
    icssg1-p2: Waiting for link up...

    Enet Multiport Menu:
     'T'  -  Enable timestamp prints
     't'  -  Disable timestamp prints
     's'  -  Print statistics
     'r'  -  Reset statistics
     'm'  -  Show allocated MAC addresses
     'd'  -  Enable dscp based priority mapping
     'x'  -  Stop the test

    Icssg_handleLinkUp: icssg1-1: Port 1: Link up: 1-Gbps Full-Duplex
    icssg1-p1: Port 1 link is up
    icssg1-p1: Set port state to 'Forward'
    icssg1-p1: Async IOCTL completed
    icssg1-p1: Open DMA
    initQs() txFreePktInfoQ initialized with 8 pkts
    icssg1-p1: Set MAC addr: 34:08:e1:80:b5:cd

  • I built the same example using version of the SDK and it does not connect at 1 Gigabit.  Is version of the SDK required to operate the ICSSG port at 1 Gigabit?

  • Icssg_handleLinkUp: icssg1-1: Port 1: Link up: 1-Gbps Full-Duplex

    Looks like ICSSG1 Port1 link is up with 1G speed. correct ?

    You need to change in sysconfig  to Port2.

    Best Regards


  • Ashwani,

    Thank you for your very prompt and detailed replies.  You solved the issues and I can continue developing our application.