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.

C6657 PCIe and Windows.

Other Parts Discussed in Thread: TMDXEVMPCI

I'm using TMSDEVM6657LS and TMDXEVMPCI.
I want to evaluate PCIe communication with windows PC.

I'm using "pdk_C6657_1_1_2_6\packages\ti\drv\exampleProjects\PCIE_exampleProject",
and build EP mode.

I develop windows driver by "http://www.xlsoft.com/en/products/jungo/windriver_usb_pci_driver_development_software.html".

But there is no information for this evaluation.

Could you tell me evaluation board setting (FPGA, Dip switch) , implementation, or some information.

  • Things you need to do:

    1) downgrade 6657 FPGA from v03 to v02, please follow the eInofchip weblink to do that https://www.einfochips.com/index.php/partnerships/texas-instruments/tms320c6657-evm.html#5-resources

    2) Set 6657 EVM in PCIE boot mode, see the dip switch setting http://processors.wiki.ti.com/index.php/TMDSEVM6657L_EVM_Hardware_Setup

    3) make sure your Windows PC can enumerate the 6657 (check the PC's device manager)

    Then, develop the PCIE driver

    Regards, Eric 

  • Dear Eric,

    I appreciate the support.
    I was able to read configuration space, interrupt, and memory.

    Additionally, I want to know the currently-running program code.

    I think example code is different from this evaluation environment.

    Where can I find the program code? ("mcsdk_2_01_02_06\tools\boot_loader\examples\pcie" ?)

    And, what can I do in this evaluation environment?

    Best
     regards, Shingo. 

  • Under mcsdk_2_01_02_06\tools\boot_loader\examples\pcie,

    - there are several folders called pcieboot_ddrinit/helloworld/localreset/..... They are DSP side code (the code was converted into a data array, and loaded into DSP core via PCIE bus from RC, then the RC writes a magic word to let DSP running the code).

    - there is a folder called linux_host_loader, which contains Linux PCIE driver code

    - doc folder has a user guide.

    You can use this package to evaluate the PCIE between a Linux PC and a 6657/6670/6678 EVM.

    Regards, Eric

  • Dear Eric,

    I understood boot_loader\example\pcie*

    They are converted into header-file (***.h), and loaded from PC to DSP by PCIe. 

    Now, I access by Windows-PC.

    And I'm able to read configure registers.

    For example, BAR3 is 0xD000 0000 - 0xD0FF FFFF, and BAR0-5.

    But Linux PC is read BAR0,1,2,3. and area is internal memory (Local L2 SRAM etc...)

    I'm able to write 0xD000 0000 (DD3 area), but can't write internal memory.

    How can I access ?


    Additionaly, I over write i2c eeprom memory (0x51, 0x50).

    Then, I can't access PCIe. Maybe PCIe boot is not running.

    I want to rewrite correct i2c-eeprom binary.

    With some eeprom binary, can't running PCIe boot.
    (mcsdk_2_01_02_06\tools\program_evm\binaries\evm6657l)

    Where is the correct binary ? Please help. 

    Please help
     

    Best regards, Shingo. 

  • You need to re-flash the EEPROM 0x51 address with the correct IBL code to make sure PCIE can be enumerated. Look at \ti\mcsdk_2_01_02_06\tools\writer\eeprom\docs for steps.

    To access the different DSP internal regions, you need to program the inbound translation registers of the DSP PCIE, which can be done on PCIE RC driver side. See the code like:

       /* Configure IB_BAR0 to BAR0 for PCIE registers; Configure IB_BAR1 to BAR1 for LL2 for core 0
         Configure IB_BAR2 to BAR2 for MSMC; Configure IB_BAR3 to BAR3 for DDR */
      for (i = 0; i < 4; i++) {
       iowrite32(i, ptrReg + IB_BAR(i)/4);    
       iowrite32(PCIE_DEV->resource[i].start, ptrReg + IB_START_LO(i)/4);   
       iowrite32(0, ptrReg + IB_START_HI(i)/4);
      }    
      iowrite32(PCIE_BASE_ADDRESS, ptrReg + IB_OFFSET(0)/4);   
      iowrite32(LL2_START + (1 << 28), ptrReg + IB_OFFSET(1)/4);   
      iowrite32(MSMC_START, ptrReg + IB_OFFSET(2)/4); 
      iowrite32(DDR_START, ptrReg + IB_OFFSET(3)/4);

    Regards, Eric

     

  • Dear Eric,

    I understood pcie_boot.
    I'm extremely grateful for many support.

    I was able to restore evaluation board.
    Setting of some inbound tranlation, I was able to access internal memory (Read/Write).


    By the way, where is the code of this pci boot code.

    I want to know initialize sequence of PCIe.

    I want to run my setting (Vendor ID, BAR etc...) 

    Best
     regards, Shingo. 


  • Great to know the progress! The code is IBL code and is under: ti\mcsdk_2_01_02_06\tools\boot_loader\ibl\src\device\c665x\c665xinit.c for C6657 DSP. There is something called iblPCIeWorkaround(): If you want to change Vender ID:DEVICE_REG32_W ((PCIE_BASE_ADDR + PCIE_VENDER_DEVICE_ID), 0xb005104c);  /* Vendor and Device ID */

    to change BAR size/mask:

    if (flag_6657)  {
                    /* 6657 */
                    DEVICE_REG32_W ((PCIE_BASE_ADDR + PCIE_BAR0), 0x00000FFF);   /* 4K */
                    DEVICE_REG32_W ((PCIE_BASE_ADDR + PCIE_BAR1), 0x000FFFFF);   /* 1M */
                    DEVICE_REG32_W ((PCIE_BASE_ADDR + PCIE_BAR2), 0x000FFFFF);   /* 1M */
                    DEVICE_REG32_W ((PCIE_BASE_ADDR + PCIE_BAR3), 0x00FFFFFF);   /* 16M */
            }

    Note, any changes to this code, you need to re-build the IBL \ti\mcsdk_2_01_02_06\tools\boot_loader\ibl\doc\build_instructions.txt and re-flash to EEPROM 0x51 to have it executed.

    Regards, Eric

     

     

  • Dear Eric,

    Thanks!
    I found the file. And I check the contents.

    I was able to get compiler C6000_7.2.0.
    But, I failed to network install of MinGW by network security.

    I think method of installing MinGW-20110316 releases.


    Best
     regards, Shingo. 

  • Hi,

     

    I have the same problem as mentioned below :

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/333560.aspx

     I am trying to downgrade 6657 FPGA from v03 to v02. I get this error :

    Can't find a source file at "D:\MY_TI_EVM\Gauss EVM\fpga_update_v03\evmc6657l\Debug/../main.c"

     

    Screenshot attached.

     

    Please advise.

  • I changed the version of the FPGA too, by using this tool.

    https://www.einfochips.com/images/texas_instrument/TI-TMS320C6657-EVM/FPGA_Update.zip

    But, this tool is .out file only. 

    There is no correspondent files.

    I loaded  fpga_evmc6657l.out and ran.

    Some output strings are displayed in Console window.

  • Hi,

    Did you succeeded ?

    is your PC enumerates the PCIe connection ?

    My debug leds are off after trying to do this FPGA upgrade.

    Ivgeni.

  • Dear Ivgeni.

    Yes. I succeeded PCIe sample evaluation.

    I did the following three steps.

    1) downgrade 6657 FPGA from v03 to v02, please follow the eInofchip weblink to do thathttps://www.einfochips.com/index.php/partnerships/texas-instruments/tms320c6657-evm.html#5-resources

    2) Set 6657 EVM in PCIE boot mode, see the dip switch settinghttp://processors.wiki.ti.com/index.php/TMDSEVM6657L_EVM_Hardware_Setup

    3) make sure your Windows PC can enumerate the 6657 (check the PC's device manager)

     

  • Hello Shingo,

    i am working  on PCIe communication with windows 8 PC as you did ,but  i can't move one step .  when i start the the PC  the EVM and TMDXEVMPCI  is powered and the lead are blinking ,however  when i checked the device manager i didn't get any thing . do i need any driver ?  please help me on this .

    regard,

    rediet

     

  • Dear rediet.

    Sorry, i have no evaluate with Windows8 PC.

    When i tried Windows7 PC, I use commercially available PCIe card (USB, Ethernet interface) to check PC, PCIe, OS.

    I use correctly PCIe port for Evaluation.

    Some PC, doesn't recognized the EVM.

    This information may be relevant to you.

    Shingo

  • Dear shingo,

    Thank you for your response. the PC is detected the PCI card after i formatted it, but i have still problem on developing the driver. as you mentioned on your post, i downloaded the trial windriver from  "http://www.xlsoft.com/en/products/jungo/windriver_usb_pci_driver_development_software.html". but  i don't have any idea to develope the driver using this software. can you please  help me  on this.

    Best regard,

    Rediet

  • Dear rediet,

    Sorry, I don't know detail of WinDriver.
    I use it for simple evaluation.

    If you installed WinDriver, you can find some documents in install directory.
    (Maybe in C:\Program Files\)

    In document directory, there are start guide, read me, or windriver manual.

    And you want to know more detail, please ask to XLsoft Technicak support.
    (http://www.xlsoft.com/en/support/index.html)

    Best regard.

  • Dear inding,

    i am working on EVM6657 and windows 7 PC as a host. i am trying to use the PCI interface to transfer large amount of data for DSP. As you mentioned in your post "things you need to do" , i tried to do it. but when i connect th TMDXEVMPCI to the PC i just only get "Unknown devices" in device manger . i am new to this PCI thing and i really need your help. my Questions are:

    1. how would i know that the Windows PC can enumerate the 6657 device?

    2. how can i develop the PCIE driver?

    best regard,

    Rediet