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.

CCS/AM3359: CPSW support for TLK110 in NDK

Part Number: AM3359
Other Parts Discussed in Thread: TLK110, AM3358

Tool/software: Code Composer Studio

I have the IceV2 example working and I can ping the board; however, the TLK110 is connected to the PRU (I believe for Ecat reason). The BBblack connects a different chip to the MAC port. Has anyone done a board with TLK110 on the MAC port and got it to work with NDK? LWIP work, but I would like to switch to NDK. Any help would be great!

  • Hi,

    For the AM3358 ICE V2 board user guide: 

    Ethernet The ICE Rev. 2.1 EVM has two 10/100 Ethernet transceivers (TLK110) interfaced to connectors J1 and J2 . These Ethernet ports are connected from the gig switch and the PRU-ICSS units of the AM335x to the transceivers through a muxing /ORing logic. The reset for the transceivers are driven by the board system reset SYS_RESETn and a GPIO control. The various protocols supported in the design are SERCOS III, SERCOS III S, ETHERNET / IP, POWERLINK, ETHERCAT, and PROFINET. The signal MUX_MII_CTL1 is used to switch the muxing logic between the Gb switch and the PRUSS unit control of the Ethernet PHYs.

    There are CCS project for regular Ethernet and PRU-ICSS, you should be able to ping (Please use the latest Processor SDK RTOS 6.0 release for AM3358) the board:

    • NIMU_BasicExample_icev2AM335x_armExampleproject
    • NIMU_ICSS_BasicExample_icev2AM335x_wSoCLib_armExampleproject

    Regards, Eric

  • Hi Eric,

    I think I may have not been clear enough. I have looked at the schematic and what I'm looking at is the TLK110 are connected to the PRUs. In our boards the two PRU are used for Ecat using the TLK110 and the MMII1 port is connected to a TLK110 for Ethernet. From what I can tell there are no examples that use the TLK110 connected to the MII1 connects (beyond LWIP), however, I could be wrong? And if I want to create a HW link to NDK I need to use the Ethernet Mini-Drive guide to create that link - am I missing something, I hope so?

  • Hi Robert,

    Both examples above Eric referred to are based on NDK and TLK110. The difference is the MAC - CPSW or ICSS.

    There are jumpers need to be set up properly to select CPSW or ICSS and run the examples:

    Jumpers J18 and J19 must be set to control the Ethernet ports using CPSW (gig switch) or PRU-ICSS mode. For PRU-ICSS mode, connect Pin2 and Pin3. For CPSW mode, connect Pin1 and Pin2.

    Regards,

    Garrett

  • Hi Garrett,

    My jumper are 1 & 2 (CPSW mode).

    Yes, I understand that; however, the MII1 is not PR1_MII0 or PR1_MMI1. MII1 is separate and apart from it (referring to part 2 of the schematic starting at pin K18 down). I do see that some of the line are connected to U3, but not all of the (TX0-3 & RX0-3, for example). For instants, I do see PR1_MII0RX1 is connect to RMII1_RX1. The other pins are tied to other functions, like LED3 verses MII1_CLK. missing something??

  • HI again here a schem. that work fine with Lwip, just liking to move to NDK.

  • Rob,

    CPSW ports are configured to RMII (two transmit/receive data bits) while the PRU ports are configured to MII (four transmit/receive bit), so the pins/signals connecting to PHY U3 varies.

    If you download the PRSDK and try out the NIMU examples, you should be able to find out these examples are working with NDK. NIMU is the interface that 'Ethernet Mini-Drive guide' describes.

    You are probably still working with old Starterware?

    Regards,

    Garrett

  • Hi Garrett,

    I'm am using the latest starterware for the NDK port and I see the connection to the phy different, as you said. I have been looking for the hardware pin dif/config files and can't seem to locate where they are at, so that I can reconfig the I/O pins.  

    Rob

  • Rob,

    Please move to Processor SDK - http://www.ti.com/tool/PROCESSOR-SDK-AM335X as Starterware is obsolete and no longer supported.

    Regards,
    Garrett

  • Thanks! I am using the latest SDK with all the examples and the iceV2AM335xNMU example builds and I can ping it. From all the info I have read and reviewing the schematic. I should only need to remap the I/O points per my schematic (all MII pins connected) and verify NDK API connection to those new HW link and everything should work - I believe.

    Thanks

    Rob

  • I guess from all my review: What files or lib needs to be modified or created to switch from RMII mode to MII (TLK110 chip) for the first eth port; by doing that change my board will function correctly - right?

  • Rob,

    Correct. The board files/library in PDK is under packages\ti\board. You can update or create a new library for your board under packages\ti\board\src.

    Regards,

    Garrett

  • Thanks for the info Garret.. Is there a procedure for creating a new board lib with TLK110 tied to MAC verse PRU?

    Rob

  • Thanks Garett! That help a lot!!

  • I'm finally getting back to this... I can now build the board lib files.. I can read the Beaglebone black ID register with no issues. I am trying to read the ID register from my board that is using TLK110 and I get 0. It seem the MII register in the arm are set correctly. I believe the configuration and address for the two phys, to at least, get this info should be the same? is there a different I'm missing?

    I call this function below inside the board lib "ENETPHY_Init". I get the right info from BBB and 0 from my board.

    CSL_MDIO_phyRegRead(miibase,PhyAddr,ENETPHY_ID2,(uint16_t *) &phy);
      ENET_PHY_log("ID reg data with CSL read = %x\n",(int) phy);

    Any help would be great!

    Rob

  • Problem solve -  Ican now configure the phy! Now I need to get the ping up and running