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.

AM5729: using BeagleBone-AI as a small server, basic c66x code run/debug

Part Number: AM5729

We are considering to use BeagleBone-AI as a small server platform for certain mil/gov and edge computing customers.  We need to boot standard Linux (its default is Debian, which is fine), use standard monitor and USB keyboard for initial hands-on config, and set up SSH so the server can reside in a lab with other servers for long-term access.

Is this possible ?  Assuming so, a question comes up about c66x code development:  for the time being, we will need to either bypass or disable EVE cores, OpenCL, video codecs, deep learning framework, etc to run and demo some initial c66x C code.  Is that do-able ?  Can c66x code do simple things like printf() and fopen/fclose() to save files ?

Later we need EVE cores and possibly TIDL. But for now we need to (i) prove to our customers that TI c66x is still relevant and can function in a modern, small server type of environment, and (ii) convince them they don't need  to ditch their existing c67x and c66 TI based board production and move to another SoC vendor.

A reply on this would be helpful, thanks.

-Jeff

  • It should be possible to support your requirement on Linux side, You can refer to the Processor SDK Linux for supported features.

    https://software-dl.ti.com/processor-sdk-linux/esd/docs/06_03_00_106/linux/index.html

    For C66x, do you plan to run the demo in CCS with JTAG?

    If yes, you can follow the Processor SDK RTOS example to setup C66x standalone application.

    https://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_examples_demos.html#dsp-c66x

    You can use stdio APIs available from C66x RTS library. It supports printf, fopen, fclose and etc.

    Regards,
    Stanley

  • Stanley-

    Thanks very much for your reply.  For c66x, we need to avoid JTAG and CCS, any Windows IDE.  We need to do everything from Linux command line.  Customers expect to open a SSH console shell (e.g. Putty), download and run both Arm Linux and c66x programs, and see printf and file I/O feedback from both types of running programs.

    Do we need to write code for an Arm process that handles c66x download and execution of programs ?  If so that's do-able, we have the DirectCore source that does this for c6678 PCIe cards in x86 servers.

    What I must be sure of is to understand what's needed, so I can calibrate customer expectations.  Remember, these are millennial engineers who build products based on server farms, REST APIs, VMs and containers. They have degrees in ML, computer science, and data science -- not EE -- and are far removed from the DSP generation of the 90s and 2000s who built embedded system products.  Just tell me like it is, what are the obstacles, and we can handle it. Thanks.

    -Jeff

  • Hi Jeff,

    To load/execute C66x from ARM running Linux, we provide IPC to support that in our SDK. Please refer to the below user guide for IPC.

    https://software-dl.ti.com/processor-sdk-linux/esd/docs/06_03_00_106/linux/Foundational_Components_IPC.html#ipc

    IPC will take care of loading and starting C66x program. It also provides a way to send/receive message/data between ARM and DSP.

    However, in this case, we don't have DSP library for File I/O since it is implemented on Linux side only.

    You will have to add your own File I/O support in your DSP code or send request to Linux side to handle File I/O.

    Similarly for debug print, we typically write debug trace to DDR from DSP and ARM side will read and then print them to console. 

    Regards,

    Stanley

  • Stanley-

    Thanks, we're looking through this.

    One question, the IPC guide appears to require a Keystone-II EVM of some type, do you have an IPC doc for BeagleBone AI ?

    As mentioned, the Beaglebone AI acts as a small server, with its own kbd input + video output, so it looks good to server-centric guys who are our customers.

    -Jeff

  • Hi Jeff,

    IPC support is not specifically tied to which board but the processor so please follow the instructions for AM57xx which is applicable to BeagleBone AI with AM5729 processor.

    Regards,

    Stanley