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.

Programming evmc6678l under Linux

Other Parts Discussed in Thread: SYSBIOS

Hello,


 I had already programmed evmc6678 board in Windows with CCS.)
Now I configured my evmc6678l board for linux according to the "Linux- c6x- 2. 0- GA User Guide"
I had completed all the Hardware setup for c6678l EVMs.
I did DIP Switching Settings to Boot from NAND and I successfully booted with Linux and I was able
to run "Out of box Demo for c66x - Linux Web control panel".


Now I want to start to program my multicore kit under Linux (Ubuntu 10.04 LTS) .

I have a few Questions.

Q1:What would be the DIP switch settings (I guess It should be in NAND boot mode)

Q2:Will the remaining procedure reamin same i.e:
                        Starting CCS and then set the target configuration
                        Launch the selected Configuration
                        Connect to the Target
                          Loading the GEL file  
                        Then load the .out file for any demo.


Q3:The demos in MCSDK folder will also be remain same for linux .

with regards,

Muhammad Faisal,

University of Würzburg, Germany.

  • Hi, Muhammad,

    I am a bit confused with the MCSDK you mentioned. Are you trying to run demo application in Linux MCSDK or BIOS MCSDK? If BIOS MCSDK demo, it does not apply to Linux environment. If Linux MCSDK demos in Software Ecosystem features, you can follow the instructions in the link for each feature in linux-c6x.org. These will be User Space applications run under Linux.

    I assume your "to program my multicore kit under linux" meaning similar feature as the Syslink demo which core0 running Linux MCSDK communicates with other cores (1-7) running BIOS MCSDK. Please follow the instructions to run the demo of Syslink in Software Ecosystem Features, and also the example codes to see how it works. If you are only running Linux application, then you just build the executable under linux-c6x environment and copy it to the linux file system on C6678, and execute it.

    Rex

  • Hi Rex,

              Yes I want to use Linux MCSDK and not BIOS MCSDK and yes I only want to run Linux Application.

    So what I understood from your reply is that.....I boot my board with Linux in NAND flash (I already put linux in NAND and checked it out and it is working according to

    linux user guide) and then build the Linux demos on the Linux which is running on  my board's NAND flash.

    I have some questions.

    Q:Do'nt I need CCS to build the Linux MCSDK' Demos

    Q: WIl I must run BIOS MCSDK on core1 to core7 even I am working with Linux MCSDK.

    with regards,

    Muhammad Faisal.

  • Hi, Muhammad,

    No, you don't really need CCS to build. You can modify setenv file and follow User's Guide to build the demo with "./prj build" command on a linux host machine. If you are not running syslink demo, you don't need BIOS on other cores. Those cores can be left idle.

    Rex

  • Hi Rex,

    Thanks alot for your previous replies.

    Now again I have a couple of questions:

    Q:The cores can only communicate with each other in C6678l board by using Syslink and for this we must have to use SYSBIOS on slave cores and If we have  our own

    RTOS then It would be run on master core and this RTOS will send and recieve the messages or data with other slave cores by using SYSLINK.

    Is that right?

    Q: As you said to modify the setenv file but this file is not mentioned at all in the "Linux- c6x- 2. 0- GA User Guide"  only   "Set the Environment Variables" section is there.

    Q: I did not find any demo for the LinuxMCSDK I had "Out of box Demo for c66x - c6x Linux Web control panel"  which had come up after I Booted my board with Linux and then wrote the IP in my browser and this demo was there ...I had not build any demo with ./prj  command......

    Thanking you,

    sincerely,

    Muhmmad Faisal.

  • Hi, Muhammad,

    I don't quite get the picture of your system. Are you saying that you will not use Linux from Linux-c6x 2.0 but your own RTOS on the master core? What will the slave cores be running? your own RTOS as well or TI BIOS? Is your RTOS based on Linux or purely your own implementation?

    Syslink is not the only way to communicate amoung cores, but an API which TI implemented on top of IPC and shared memory. There also is a open-standard SRIO to send data among cores, but Linux-c6x 2.0 only supports C64x, not C66x family.

    Rex

  • Hi Rex,

    • Yes in our final goal we would like to port our own RTOS on TI kit both on master and Slave core.
    • Our RTOS is purely our own implementation in C++.

    details about our RTOS can found here http://www.dlr.de/irs/en/desktopdefault.aspx/tabid-5976/9736_read-19576/

    If there is  an API which TI implemented on top of IPC and shared memory then Its great as we can use these API with our RTOS

    I will look into this more and will contact you soon.

    with regards,

    Muhammad Faisal.

  • Hi, Muhammad,

    Yes, you can take a look at the syslink examples on BIOS side for your RTOS.

    Rex

  • Hi Rex,

    I had gone through the "Out of Box Demonstration" example through the user guide related to the MCSDK but

    I could not find any other demo in my LinuxMCSDK folder, only following folders are present there:

    product   program_evm   release-reference-c66le-bin

    In the first step I would like to run linux on my all cores and then I would like to proceed to our own RTOS.

  • Hi, Muhammad,

    So far, C6678 does not support multiple Linux on multiple cores, but you can follow examples as described in Shared EMAC for c64x under linux-c6x Software Ecosystem Features page, and make corresponding changes for c6678.

    Are those folders from CD installation? You may want to download source code from "ti.com software download site" link shown in Release Notes.

    Rex

  • Hi Rex,

    In one of your reply you wrote

    "Syslink is not the only way to communicate amoung cores, but an API which TI implemented on top of IPC and shared memory. There also is a open-standard SRIO to send data among cores, but Linux-c6x 2.0 only supports C64x, not C66x family."

    Does it mean that Linux-c6x 2.0 does not support this API (which is on top of IPC and shared memory) for the communication among cores? or it meas that

    Linux-c6x 2.0 does not support c6678 board at all.

    regards,

    Faisal.

  • Hi, Muhammad,

    Syslink in Linux-c6x 2.0 supports both C64x and C66x, but SRIO only supports C64x.

    Rex

  • Hi Rex,

    But If we dont want to use syslink can we use "An API which TI implemented on IPC and shared memory" with c6678 board.???

    with regards,

    Muhammad Faisal.

  • Hi, Muhammad,

    You meant to use IPC? Sure! You can have your own protocol to pass data among cores.

    Rex