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.

RTOS/TM4C1292NCPDT: External PHY Configuration through MII interface

Part Number: TM4C1292NCPDT

Tool/software: TI-RTOS

Hi, 

I wanted to Modify and test tcpEcho project of TM4C1294-XL board for configuring external PHY-KSZ8463FML through MII interface to work for my system which is designed using TM4C1292NCPDT.  i have certain APIs to setup MII and external PHY configuration. MAC is getting ready and Phy configuration also completed properly where i can see links are getting up. But i could not able to see the IP address gets printed on the console and there is no ping response to the PC connected to the board.

i have used below API called before Board_initEmac(). i wanted to use MII interface for 100Mbps full Duplex mode.

EMACPHYConfigSet(EMAC0_BASE, (EMAC_PHY_TYPE_EXTERNAL_MII );

this is the console output i am getting.

detailed task view after pause operation.

The difference between tcpEcho project for TM4C1294-XL and My tcpEcho project are as follows.

1. Changed .cmd file for specific to my target board.

2. My Ethernet Switch configuration via SPI interface before Emac_Init();

3. EMACPHYConfigSet(EMAC0_BASE, (EMAC_PHY_TYPE_EXTERNAL_MII ); this API before Emac_Init();

Please help me to get the link up and working fine. is there anything missed here.

Regards

Bala

  • Hi,

      Can you check if you have 25MHz generated from the PHY to the MCU on the EN0TXCK and EN0RXCK pins?

      Can you take the wireshark capture on the ethernet and compare between the project using the internal PHY vs the external PHY? I have the below capture running the tcpEcho with the internal PHY with the filter to show only traffic pertaining to my launchpad after the code starts running. 

      

      

  • Hi Charles,

    The clocks are getting generated from Phy correctly. moreover i will be able to send/receive the packet using Tiva driver liberary i.e. bare metal driver initialization. the same thing which also posted in the following thread.

    e2e.ti.com/.../448525

    Now i wanted to develop an application should include NDK stack and TI RTOS. i want to perform basic ping command and file transfer. to start with i have used tcpEcho project.

    Please clarify the below questions.
    1. How MAC is getting initialized in tcpEcho project? Its simply called Board_initEmac(). and dont find the exact source file for the same.
    2. Where we need to configure or inform the MAC that i am going to use external Ethernet Switch via MII interface?
    3. Do we need to use the same driver configuration as like in bare metal code mention above in TI RTOS? or Are there different APIs available to configure the same in TI RTOS?
    4. What is the minimal requirement of NDK stack is getting up and IP address assigned? is it waiting for MAC and phy configuration to complete? if so How do i communicate to NDK stack that my Ethernet switch is configured?

    Regards
    Bala
  • Hi Bala,
    The NDK makes use of the TivaWare driverlib calls in the EMACSnow.c file. This is the file you will need to work with. I will suggest you tweak the EMACSnow.c file to configure for external PHY instead of calling the EMACPHYConfigSet() before the Board_initEMAC().
  • Hi Charles,

    Thank you for your reply. Do you meant EMACPHYWrite() and EMACPHYRead() APIs are needs to be replaced with respect to connected external PHy in EMACSnow.c file?

    It seems that these APIs are passing one of the argument is EMAC_BASE? because my external PHY configured via SPI interface.

    Do you have any sample code or guidelines to configure External PHY? as per my understanding i need to edit only in EMACSnow_hwiIntFxn() to update the link status to NDK take effect and PHY should be configured before NDK is seeing the link status.


    Regards
    Bala
  • Hi Bala,
    The KSZ8463FML PHY can have its SPI interface put in MIIM mode which is the Serial Management Interface (SMI) that is the standard interface to program the PHY. Did you put the KSZ8463FML PHY in MIIM mode and use the MCU's MDIO and MDC signals to interface to the PHY or using a separate SPI to the PHY? If you use the MIIM mode then you can use the TivwaWare API to access the external PHY using EMACPHYWrite and EMACPHYRead. The physical address 0 is for the internal PHY. You will need to specify the physical address from 0x1 to 0xF for the external PHY.

      I will think you want to modify the EMACPHYConfigSet at line 909 in EMACSnow.c to configure for external PHY. 

  • Hi Charles,

    we have to use only SPI interface to configure the Ethernet switch because we cannot configure the Ethernet Switch for 100B-FX mode through MIIM interface.

    as per your guidance i have done modification in EMACSnow.c for External phy configuration and code is attached here.

    tcpEcho_ExternalPhy.zip

    i have added certain prints in EMACSnow.c  and other project file. please find the console log after running.

    console_log.txt
    [CORTEX_M4_0] 
    MII and SPI configured for Ethernet Switch
    Ethernet Switch is Configured
    Using MAC address in flash
    EMACSnow_init: setup successfully completed
    BIOS Started
    EMACSnow_NIMUInit: init called
    EMACSnow_emacStart: start completed
    EMACSnow_NIMUInit: register with NIMU
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x10001
    Network Added: If-1:192.168.1.8
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_emacPoll = 0x20
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x0
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x80000000
    EMACSnow_hwiIntFxn Link Status = 0x20
    EMACSnow_hwiIntFxn Posting Swi status = 0x0
    EMACSnow_hwiIntFxn Link Status = 0x20
    

    here network IP address is getting added properly and we will be able to observe the link status change.

    But still we will not able to execute the ping command. can you please suggest me where its gone wrong by looking at the code.

    and also please find the EMAC configuration registers taken after few minutes running by pause.

    Emac_register.txt
    521177 14
    R EMAC0_EMAC_CFG 0x0000000B 0x0000880C
    R EMAC0_EMAC_FRAMEFLTR 0x0000000B 0x00000410
    R EMAC0_EMAC_HASHTBLH 0x0000000B 0x00000000
    R EMAC0_EMAC_HASHTBLL 0x0000000B 0x00000000
    R EMAC0_EMAC_MIIADDR 0x0000000B 0x00000004
    R EMAC0_EMAC_MIIDATA 0x0000000B 0x00000000
    R EMAC0_EMAC_FLOWCTL 0x0000000B 0x00000000
    R EMAC0_EMAC_VLANTG 0x0000000B 0x00000000
    R EMAC0_EMAC_STATUS 0x0000000B 0x00000000
    R EMAC0_EMAC_RWUFF 0x0000000B 0x00000000
    R EMAC0_EMAC_PMTCTLSTAT 0x0000000B 0x02000000
    R EMAC0_EMAC_RIS 0x0000000B 0x00000000
    R EMAC0_EMAC_IM 0x0000000B 0x00000000
    R EMAC0_EMAC_ADDR0H 0x0000000B 0x80000000
    R EMAC0_EMAC_ADDR0L 0x0000000B 0x01000000
    R EMAC0_EMAC_ADDR1H 0x0000000B 0x0000FFFF
    R EMAC0_EMAC_ADDR1L 0x0000000B 0xFFFFFFFF
    R EMAC0_EMAC_ADDR2H 0x0000000B 0x0000FFFF
    R EMAC0_EMAC_ADDR2L 0x0000000B 0xFFFFFFFF
    R EMAC0_EMAC_ADDR3H 0x0000000B 0x0000FFFF
    R EMAC0_EMAC_ADDR3L 0x0000000B 0xFFFFFFFF
    R EMAC0_EMAC_WDOGTO 0x0000000B 0x00000000
    R EMAC0_EMAC_MMCCTRL 0x0000000B 0x00000000
    R EMAC0_EMAC_MMCRXRIS 0x0000000B 0x00000000
    R EMAC0_EMAC_MMCTXRIS 0x0000000B 0x00000000
    R EMAC0_EMAC_MMCRXIM 0x0000000B 0x03FFFFFF
    R EMAC0_EMAC_MMCTXIM 0x0000000B 0x03FFFFFF
    R EMAC0_EMAC_TXCNTGB 0x0000000B 0x00000001
    R EMAC0_EMAC_TXCNTSCOL 0x0000000B 0x00000000
    R EMAC0_EMAC_TXCNTMCOL 0x0000000B 0x00000000
    R EMAC0_EMAC_TXOCTCNTG 0x0000000B 0x00000040
    R EMAC0_EMAC_RXCNTGB 0x0000000B 0x00000000
    R EMAC0_EMAC_RXCNTCRCERR 0x0000000B 0x00000000
    R EMAC0_EMAC_RXCNTALGNERR 0x0000000B 0x00000000
    R EMAC0_EMAC_RXCNTGUNI 0x0000000B 0x00000000
    R EMAC0_EMAC_VLNINCREP 0x0000000B 0x00000000
    R EMAC0_EMAC_VLANHASH 0x0000000B 0x00000000
    R EMAC0_EMAC_TIMSTCTRL 0x0000000B 0x00002000
    R EMAC0_EMAC_SUBSECINC 0x0000000B 0x00000000
    R EMAC0_EMAC_TIMSEC 0x0000000B 0x00000000
    R EMAC0_EMAC_TIMNANO 0x0000000B 0x00000000
    R EMAC0_EMAC_TIMSECU 0x0000000B 0x00000000
    R EMAC0_EMAC_TIMNANOU 0x0000000B 0x00000000
    R EMAC0_EMAC_TIMADD 0x0000000B 0x00000000
    R EMAC0_EMAC_TARGSEC 0x0000000B 0x00000000
    R EMAC0_EMAC_TARGNANO 0x0000000B 0x00000000
    R EMAC0_EMAC_HWORDSEC 0x0000000B 0x00000000
    R EMAC0_EMAC_TIMSTAT 0x0000000B 0x00000000
    R EMAC0_EMAC_PPSCTRL 0x0000000B 0x00000000
    R EMAC0_EMAC_PPS0INTVL 0x0000000B 0x00000000
    R EMAC0_EMAC_PPS0WIDTH 0x0000000B 0x00000000
    R EMAC0_EMAC_DMABUSMOD 0x0000000B 0x04000482
    R EMAC0_EMAC_TXPOLLD 0x0000000B 0x00000000
    R EMAC0_EMAC_RXPOLLD 0x0000000B 0x00000000
    R EMAC0_EMAC_RXDLADDR 0x0000000B 0x2000EA64
    R EMAC0_EMAC_TXDLADDR 0x0000000B 0x2000EAF4
    R EMAC0_EMAC_DMARIS 0x0000000B 0x00660404
    R EMAC0_EMAC_DMAOPMODE 0x0000000B 0x02202002
    R EMAC0_EMAC_DMAIM 0x0000000B 0x000181C3
    R EMAC0_EMAC_MFBOC 0x0000000B 0x00000000
    R EMAC0_EMAC_RXINTWDT 0x0000000B 0x00000000
    R EMAC0_EMAC_HOSTXDESC 0x0000000B 0x2000EB18
    R EMAC0_EMAC_HOSRXDESC 0x0000000B 0x2000EA64
    R EMAC0_EMAC_HOSTXBA 0x0000000B 0x00000000
    R EMAC0_EMAC_HOSRXBA 0x0000000B 0x20009C80
    R EMAC0_EMAC_PP 0x0000000B 0x00000100
    R EMAC0_EMAC_PC 0x0000000B 0x80000000
    R EMAC0_EMAC_CC 0x0000000B 0x00000000
    R EMAC0_EMAC_EPHYRIS 0x0000000B 0x00000001
    R EMAC0_EMAC_EPHYIM 0x0000000B 0x00000001
    R EMAC0_EMAC_EPHYMISC 0x0000000B 0x00000001
    

    Regards

    Bala

  • Hi Bala,
    I don't have experience with KSZ8463FML to comment why you can only configure the PHY via the SPI interface but not through the MDIO. We don't have any examples that support such a setup and neither do I have your equivalent hardware to replicate the behavior. From your log it seems the link is up. What does the wireshark capture?

    Also note that System_printf data is stored in an internal buffer. The System_flush will write this data to the CIO buffer. When the CIO buffer is full or there is a '\n' in the data which is the case in your case, the target gets halted so CCS can read the data. This will mess up real-time operation. I don't know if this is impacting your operation. You can remove the System_flush and then use Tools->ROV->SysMin to look at the System_printf output.
  • Hi Bala,

    Perhaps you should try Wire Shark and see if you get the same results as Charles capture? Often ICMP echo & Multicast broadcast have to be configured target side for a response packet to be returned to the host ping application.

  • Thank you Charles & BP101.

    the issues got solved now. the problem is with Ethernet Switch configuration. By Default the the switch is configured in BYPASS mode adn so its not allowing the packets to coming to Micro controller. Now we will be able to ping. yet to test tcpEcho project completely.

    Regards
    Bala
  • Hi Bala,

      Glad your problem is solved. I'm sure the community will benefit from your findings.