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.

TMS320C6678: EVM, PCIe Adapter Card, Windows Host

Expert 2430 points
Part Number: TMS320C6678

Wasn't specifically on the forums because of this, but a post I just read raised a troubling concern.

Given lead times and whatnot, I'm using a couple of TMS320C6678 EVMs and was planning on inserting them into my Windows-based (Windows 10) development workstation to get my DSP PCIe drivers up and going.  (DSPs will both be configured as an EP since I presume the DSP and my motherboard both can't be the RC.)

Based on what I just read, is this not possible meaning Windows won't recognize/enumerate the EVMs?  This can only be done under Linux?

Edit:

If it does turn out to be true that one can only use the PCIe adapter card on a Linux host, it appears that this may be doable with a VirtualBox VM (https://www.virtualbox.org/manual/ch09.html#pcipassthrough).  Has anyone done this?  (I'm not asking how--just if possible.)

  • Hi,

    I've notified the PCIe experts. Their feedback will be posted directly here.

    Best Regards,
    Yordan
  • Hi,

    The PCIE enumeration process is done by the PCIE host, in your case is the BIOS of your PC. No matter you are running Linux, Windows 7 or Windows 10, the TI 6678 EVM + AMC-PCIE adapter card solution should work for the enumeration phase.

    For the Linux, we have a Linux PCIE driver so the Linux host can do communication with DSP card. For Windows we don't have any driver for that.

    So you don't have to use Linux + Virtual Box (I don't know if any customer did this), you can use Windows for enumeration and write your own PCIE driver.

    Regards, Eric
  • lding said:
    For the Linux, we have a Linux PCIE driver so the Linux host can do communication with DSP card. For Windows we don't have any driver for that.

    So you don't have to use Linux + Virtual Box (I don't know if any customer did this), you can use Windows for enumeration and write your own PCIE driver.

    I was eventually going to write my own PCIe driver, sure, but at the start I was hoping that TI would provide a driver to at least help initially configure the cards.  I'm not at all new to device driver development (on either platform), but I am new to PCIe driver development.  So with that in mind, I was hoping I would have a working demo, so to speak, before I start modifying and customizing it to suit my specific needs.

    So for the Linux driver, is the source code available somewhere?  If and when I install the Linux version of the SDK and PDK, will it get installed?  Is there a way to get it without installing the SDK & PDK on Linux just for reference purposes?

  • Hi,

    You can refer to packages\ti\boot\ibl\src\device\c66x\c66xinit.c iblPCIeWorkaround() function to see how we initialize the C6678 as PCIE EP. The Linux driver is under packages\ti\boot\examples\pcie\linux_host_loader.

    You need to download and install the processor SDK RTOS for C6678.

    Regards, Eric
  • Okay. Thanks!
  • So when I try to build this pciedemo.c file, the compiler complains about not being able to find pcieDdrInit_6678.h.  I figure okay, some include directory is not being included in the search path, but when I search my entire system for this file (to determine the include path), it's no where to be found.

    Since it's not included in the Processor SDK, what do I need to install to get this header?  Since Linux isn't supported on the C6678, I only installed the RTOS Processor SDK.  Do I need to install the Linux Processor SDK?  That would make no sense whatsoever that a C6678 header would be included in an SDK that doesn't support the C6678.

    ETA:  Never mind.  Question has already been asked and answered here: