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.

SYS/BIOS and NDK on BeagleBone

Other Parts Discussed in Thread: OMAPL138, TMS320DM8148, STARTERWARE-SITARA, AM3359, OMAP-L138

Hi!

We have decided to use AM335x and SYS/BIOS in our product. The product is a medical device.

We need TCP/IP(and SPI) for connectivity.

We have started to develop on the BeagleBone.

1. It seems as we have to do our own port of NDK or make the lwIP in the starterware running in a thread under SYS/BIOS ?

2. Is it correct that the stack in the NDK supports multithreading?

3. In the long run I think it's better to port the NDK to BeagleBone(if the answer to question 2 is yes). What do you think?

4. How much guidance can we get from you?

5. I assume that the 3PSW(CPSW) in the AM335x is not completely new but is taken from some other processor like the TMS320c6x?

6. What ports of the NDK for processors with the same or a similar CPSW is available?

I have found a NSP with a port to omapl138.

7. What are the correlation between NDK and NSP ?

  • Hi Eric Turesson1,

    Eric Turesson1 said:
    1. It seems as we have to do our own port of NDK or make the lwIP in the starterware running in a thread under SYS/BIOS ?

    Unfortunately, there is not any current plan for adding an NDK Ethernet driver (NSP product) for the AM335x, as it sounds like you have already heard.  However, the NDK core libraries are platform independent and the Cortex-A8 is already supported in the latest release.

    To get the NDK up an running on the AM335x, you would need to port the NDK's Ethernet driver from one of the existing NSP products.  I'm not sure about the details of the EMAC/PHY that's used on Sitara but with luck it may be the same or at least similar to one from another platform for which an NSP exists already. Then you would be able to use the NSP that's similar as a starting point.

    Eric Turesson1 said:
    2. Is it correct that the stack in the NDK supports multithreading?

    Yes, this is correct.

    Eric Turesson1 said:
    3. In the long run I think it's better to port the NDK to BeagleBone(if the answer to question 2 is yes). What do you think?

    This is the route I would take.  lwIP doesn't support multi threading out of the box.

    Eric Turesson1 said:
    4. How much guidance can we get from you?

    I'll have to get back to you on this, I'm not familiar with our support plan for this sort of scenario.

    Eric Turesson1 said:
    5. I assume that the 3PSW(CPSW) in the AM335x is not completely new but is taken from some other processor like the TMS320c6x?

    I'll let someone else answer this one ... I'm not sure what software ships with AM335x.

    Eric Turesson1 said:
    6. What ports of the NDK for processors with the same or a similar CPSW is available?

    I'll get back to you on this.  As I mentioned above, hopefully there's something similar out there already.

    Eric Turesson1 said:
    7. What are the correlation between NDK and NSP ?

    The NSP contains software specific to a particular hardware platform.  For example, you already have found the NSP for the OMAPL138.  So, that contains the examples and Ethernet driver that's specifically written for the OMAPL138.

    The NDK contains the core network stack libraries and is needed by the NSP to build the examples and or other NDK-based network applications.

    Steve

  • Thank you for your quick answers Steven.

    I'm looking forward to the answers on questions 4,5 and 6.

    Regarding the question number 7, is the meaning to have one NDK and several NSP's, one for each platform ?

  • Eric,

    I'm having some trouble finding what the exact Ethernet PHY is used on the AM335x.  Do you happen to know?  Does it say in the documentation you received with your board?

    I'm suspecting that it may be the same as what's on the DM8148.  If so, I believe an NSP was done for that hardware, but I'll have to contact someone about that.

    I found this info on the DM8148 in case you are interested in comparing against any docs you have for the AM335x.

    http://www.ti.com/lit/ds/symlink/tms320dm8148.pdf

        Dual Port Gigabit Ethernet MACs (10/100/1000 Mbps) [Ethernet Switch] with MII/RMII/GMII/RGMII and
        MDIO interface supporting IEEE-1588 Time-Stamping and Industrial Ethernet Protocols

    I think this may be the actual part:

        http://support.spectrumdigital.com/boards/netra/revb/files/DS06-161GPHY_ET1011C_09-28-2007.pdf

    Some info on the Linux driver for DM8148

        http://processors.wiki.ti.com/index.php/TI81xx_PSP_Porting_Guide#Ethernet_Driver_-_Adding_Custom_Ethernet_Phy

    As far as support goes, we can only promise minimal support through the forums.

    Steve

  • Thank you for your answer Steven.

    I do not know  the exact Ethernet PHY is used on the AM335x.

    I have not seen it in any documentation on the BeagleBone.

    The NSP for the DM8148 should be a good starting point for a NSP for AM335x.

    Will you come back to me with information on NSP for DM8148 and an answer to Q7 ?

    On another post in a TI forum(BIOS) they said that a NSP for the DM8148 was available at:

    http://bangsdowebsvr01.india.ti.com:8090/AV_BIOS_SDK/00_03_00_00/index_FDS.html

    but the link is dead. Where can I get it today?


  • Eric,

    That link works for me, but perhaps it is internal only.  Let me contact someone about how to access it externally.

    Steve

  • Thank you Steven. 

    That would be very kind of you.

    Eric

  • Hi Eric,

    I've got an update for you.  A colleague of mine informed me about the Starterware software for the AM335X.  Have you seen the Starteware software before?

    This software contains Ethernet driver code for AM335X; however, it is not "NIMU compliant" (meaning it has not been written to plug into the NDK, as one of the NSP Ethernet drivers would be).

    So, you could use this code in order to make the NIMU compatible Ethernet driver that will fit with the NDK.  I'd recommend the following strategy to tackle this issue:

    1. Check out the NDK Ethernet Driver Design Guide (sprufp2_nspethdrvdesign.pdf, found in your NDK installation) in order to understand how the Ethernet drivers hook into the NIMU layer of the NDK, and to see which functions need to be implemented.
    2. Using an existing NSP (the OMAPL138 NSP you already have should suffice), study the code while reading the driver guide.  This will provide you an example of what needs to be done.
    3. Use the driver code for AM335X that's already been written in the Starterware to help you flesh out the NIMU Ethernet driver

    You can download Starterware here:

        http://www.ti.com/tool/starterware-sitara

    Once installed, you can find the driver code in the file "cpsw.c".  For example, it's here on my machine:

        C:\ti\AM335X_StarterWare_02_00_00_06\drivers\cpsw.c

    I hope this helps you!

    Steve

  • Hi Steven.

    We are well aware of the Starterware software.

    We have already started doing exactly the work you describe here.

    This is what you have to do if there is no available NSP for your platform.

    Thanks for all your support Steven.

    I think we end this thread here.

  • I have the same issue as is described in this discussion.  I need to use NDK on the AM3359 and will therefore need to develop a NIMU-compliant Ethernet driver for the AM3359 that can be used with NDK.

    How did the effort go for creating the necessary driver?  Was it difficult?  Were you able to get it working?  Upon initial inspection, the Ethernet subsystems of the OMAP-L138 and AM3359 look very similar, although the AM3359 Ethernet subsystem appears to have more features.

    Does anyone know if TI has come out with a NIMU-compliant Ethernet driver for the AM3359 in the last year?  I haven't been able to find one.  Are the plans to do so?

    Thanks

    --Josh Warr

  • We started out with the NSP for DM648 which have a 3psw very similar to the one in am335x.

    We made some minor changes in the NSP for some registers that didn't look exactly the same.

    Then we started up the code and compared the the configuration registers with a working Linux configuration.

    After some minor changes to make the configuration look like the working Linux configuration we got our NSP for am335x up and running. And it works great.

  • Thank you Eric, that is very helpful.

  • Josh,

    Yes TI is coming up with a NIMU-compliant Ethernet driver for AM335x in June timeline. The development is being done on IDK. The development is based on the dm814x driver.

    Regards,
    Vinesh 

  • Vinesh,

    Thank you for that information.  Do you have a TI representative with whom you are working?  How firm is the June timeline?

    Thanks

    --Josh