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.

DM814x and AM387x Linux mainline kernel support

Other Parts Discussed in Thread: SYSBIOS

Hi,

We're investigating using the DM8148 DaVinci SOC in a new product we're developing. In almost all aspects, the DM8148 is an ideal fit. The one stumbling block however, is the lack of linux mainline kernel support for this SOC. So I'm hoping to get some input from TI and existing users on a couple of issues:

  1. What is the existing level of support for this part in the mainline kernel? Some important bits that seem to be missing in the mainline kernel are PCI and Syslink.
  2. Why is there so little interest from TI to get this part fully supported in the mainline kernel? Surely that would lead to greater adoption of this part.
  3. Does anyone have an opinion as to whether this part/family will ever be fully supported in the mainline kernel?
  4. Does TI's lack of interest imply that the production lifetime of this part will be quite short?
  5. The 2.6.37 kernel supported by the EZSDK doesn't have realtime patches. This seems like a glaring omission for a part intended for streaming applications. Does this mean that the part is not recommended for realtime, low latency streaming applications?

Looking forward to hearing your opinions/advice.

Regards,

Grant

  • Grant,

    The last kernel version is 2.6.37 and there are no plans for future update to newer kernel version (newer than 2.6.37). See the below e2e threads for more info:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/335833.aspx

    http://e2e.ti.com/support/embedded/linux/f/354/t/253395.aspx

    http://e2e.ti.com/support/embedded/linux/f/354/t/227915.aspx

    I see some DM814x users apply mainline kernel patches manually, for example:

    http://e2e.ti.com/support/embedded/linux/f/354/t/290526.aspx

    Regarding real time, see if the below links will be in help:

    http://processors.wiki.ti.com/index.php/Real-Time_Mode

    http://processors.wiki.ti.com/index.php/Realtime

    http://processors.wiki.ti.com/index.php/DM814x_Software_Design_Guide

    http://processors.wiki.ti.com/index.php/TI-RTOS

    http://www.ti.com/tool/sysbios

    Regards,
    Pavel

  • Hi Pavel,

    Thanks for taking the time to respond to my questions/comments. Unfortunately, the answers and links you posted don't really answer my questions.

    Yes, I do understand that TI has no plans to update to a newer kernel (this has been made quite clear in multiple previous posts). My question is really why is this the case and what are the implications of this? On our system, we need to be able to attach external PCIe or USB endpoints. At this time there are probably sufficient add-on cards/devices available with drivers that do not require a newer kernel version. But in the future, this issue will become more and more of a problem as PCIe add-on cards (e.g. WiFi cards) are discontinued and are replaced with newer cards having newer drivers that require newer kernels. We really don't want to have to back-port drivers for every new device that comes along that we need to support.

    As for back-porting patches, this may suffice for kernel fixes but really doesn't address the above issue.

    For the questions/comments on real-time support, I'm referring to the ARM/linux side, not the DSP side. If we need to stream low-latency over ethernet for example from the ARM/linux side, we need the RT patches on the kernel. But for some inexplicable reason, TI chose a kernel version for which there aren't any PREEMPT_RT patchsets. The link that you included refers to the 2.6.23 and 2.6.33 kernels, for which there does exist RT patchsets that apply cleanly. This is not the case for 2.6.37.

    Can you shed a bit of light on TI's policy regarding which processors they will expend effort on to keep up to date with the mainline kernel and which ones will not. I see mainline support for the newer Keystone II SOCs and the older DaVinci (DM644x) parts but not the newer DaVinci (DM81xx) parts. Why is that and what should customers read into that?

    Thanks,

    Grant

  • Based on the posts I've seen in this thread my impression is that TI essentially stopped software support for the 81xx processors and has left this to a few third party hardware + software solutions.

    Getting an up-to-date mainline kernel working should in itself however not be very hard, given the mainline support fot the very similar (architecturally) AM335x, and this is something I plan to look into somewhere in the hopefully not too distant future.  Getting video to work again however may prove a considerable challenge, mostly due to the lack of public documentation of most of the video-related subsystems.

    (Ironically, ISS, the only video-related subsystem of the DM814x not officially supported would probably be easiest to get in a functional state without TI support since a nearly identical instance of it is publicly documented in the OMAP4.)

  • Thanks Matthijs,

    Do you know if the PCIe host/ep is used in any other TI processors which have mainline support. I think it is a Synopsys DW core so might actually be used on other vendors' processors too.

    We'll likely start by porting PREEMPT_RT patches to 2.6.37 psp kernel. Would be interesting to know if anyone else has looked at this and could either share their efforts or give an idea of the effort involved?

    Regards,

    Grant

  • Grant Fordham said:
    Do you know if the PCIe host/ep is used in any other TI processors which have mainline support. I think it is a Synopsys DW core so might actually be used on other vendors' processors too.

    The docs actually mention that it is: "The PCIESS contains the Synopsys DesignWare Core (DWC) PCIe Dual Mode core and Texas Instruments SERDES PHY."

    It appears the DWC has mainline support (drivers/pci/host/pcie-designware.c), but the SERDES seems particular to the 81xx family.  I don't have any experience with PCIe yet, although I did make some notes on the SATA/PCIe SERDES PLLs.  I don't know if they are of any interest, but you can find them here.

     

    I'm afraid I don't have any useful input on backporting the patches.  Although our intention is to eventually run linux to provide a more confortable environment for non-critical tasks, we're still running entirely on the bare metal for now so I don't have any experience with linux on it yet.