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.

AM3358: PRP/HSR with RTOS

Hi TI!

We are currently using Linux on the Sitara, using TI drivers, among others Ethernet and PRU drivers. We want to implement the PRP and HSR redundancy protocols in the PRUs. The issue we have currently is with Linux. It's not really a real-time OS, is it, even with the RT patch applied. So I'm looking into alternatives that are still low-cost.And the SMP/BIOS that you provide looks attractive.

My question is: If we would go for SMP/BIOS, what would we do about Ethernet and PRU drivers? Because, TI makes them public as GPL licenses, right? So what would that mean if we were to use them with SMP/BIOS instead of Linux? Specifically, would there be "GPL contamination" due to that usage? Say that we find an issue in one of these drivers which we patch ourselves. What would that patch mean in terms of legal requirements? Are we obliged to feed the correction back to you? Are we somehow forced to publicize all code involved, including our proprietary application?

Thanks and best regards,
Lasse

  • Hi Lasse,

    The license type of HSR/PRP RTOS and Processor SDK RTOS is specified in its release manifest under doc/ folder - BSD-3-Clause. Below is the short description:

    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions
    * are met:
    *
    * * Redistributions of source code must retain the above copyright
    * notice, this list of conditions and the following disclaimer.
    *
    * * Redistributions in binary form must reproduce the above copyright
    * notice, this list of conditions and the following disclaimer in the
    * documentation and/or other materials provided with the distribution.
    *
    * * Neither the name of Texas Instruments Incorporated nor the names of
    * its contributors may be used to endorse or promote products derived
    * from this software without specific prior written permission.

    Regards,

    Garrett

  • Hi Garrett!

    Let me rephrase my question to the following:

    1. Does SMP/BIOS support HSR/PRP to the same level as TI RTOS for Linux?

    2. Does SMP/BIOS support PTP time synch to the same level as the TI RTOS for Linux?

    3. Does any part of the software which implements the above contain a GPL license part, that potentially can force publication of proprietary code?

    For me, it doesn't help to refer to the BSD-3-Clause, because your software is complex and built from many separate modules.
    Depending on where I look in the TI directory tree, there are parts that indeed are released under GPL3, which can be problematic,
    since with SMP/BIOS we would obviously link everything together into one single binary, which opens up for "GPL contamination".
    So if you can answer the three questions above, that would be appreciated.

    Best regards,

    Lasse

  • Hi Lasse,

    There might be subtle difference for the HSR/PRP and PTP time sync between TI RTOS and Linux, and I could find a flash writer tool in the PRSDK, which is under GPL license. Let me discuss with team and then get back to you.

    I noticed you mixed use SMP/BIOS and TI RTOS, are you indeed planing to enable SMP for the HSR/PRP application?

    Regards,

    Garrett

  • Hi Garrett!

    So you are saying that we could indeed use SMP/BIOS with HSR/PRP in combination with PTP, that's great news.

    We must indeed enable SMP, since we need every little bit of performance.
    If we were to run only TI RTOS in uni-processor mode, that would not yield sufficient CPU power for our application.

    I await further information on the GPL situation with the above combo then.
    It is important that we can modify drivers and possibly also OS code freely without falling into GPL-related code publication requirements.
    This becomes more of an issue with SMP/BIOS, since OS, drivers and application are all linked together into a single binary, which is why the total solution must be "pure" from a GPL perspective.
    I have to stress this point; please don't forget to mention this perspective in your contacts with your team.

    Thanks and best regards,
    Lasse

  • Hi Lasse,

    I have a captured your questions in an internal JIRA, will update you once we have definitive answers.

    Thanks,
    Garrett

  • Hi Lasse,

    We haven't validated any protocols on SMP/BIOS yet.

    With regard to GPL v2 license, I consulted our license management and below is the response:

    >>Say that we find an issue in one of these drivers which we patch ourselves. What would that patch mean in terms of legal requirements?  [TI] We cannot advise you on legal requirements and you should consult with your own counsel. At Texas Instruments our policies would be that we could only modify the file under the same open source license or with a compatible open source license.

    >> Are we obliged to feed the correction back to you?

    [TI ]You are not obligated to do that.

    >>Are we somehow forced to publicize all code involved, including our proprietary application?

    [TI] Again, we cannot advise you on legal matters and you should consult with your own legal counsel.  Some resources for dealing with the GPL  2 can be found here and may be able to help you answer your questions.

    https://www.softwarefreedom.org/resources/2008/compliance-guide.html

    Regards,

    Garrett

  • OK, so to sum it up:

    At this time, TI does not offer practical, usable support for HSR/PRP on SMP/BIOS.

    Consulting the very informative pages you provided about GPL (thanks for that), my conclusion is:
    When linking everything together, we cannot escape providing the source for _everything_, should someone require it.
    Because this way of building the executable image gives, by definition, "GPL contagion",
    since there is no clean separation of OS and application.
    And as I understand you, you have GPL modules in your software, so the conditions for requiring full source code would be met.

    Thank you, I have no further questions.

    Best regards,
    Lasse