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.

Linux/AM3358: PRU problem with SDK 3.12

Part Number: AM3358

Tool/software: Linux

reference:  processors.wiki.ti.com/.../ but,no pru is found on  linux-3.12.10-ti2013.12.01 configuration,Device Drivers->Remoteproc drivers has no pru configuration options. How to enable PRU support in kernel?

 .config - Linux/arm 3.12.10 Kernel Configuration

> Device Drivers > Remoteproc drivers ─────────────────────────────────────────────────────────────────────────────────
┌─────────────────────────────────────────────── Remoteproc drivers ───────────────────────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). Highlighted letters are │
│ hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> for │
│ Help, </> for Search. Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ < > STE-Modem remoteproc support │ │
│ │

 

  • Kernel v3.12 is a very old SDK, which is no longer maintained. Please move to the new Processor SDK: www.ti.com/.../PROCESSOR-SDK-AM335X
  • Sorry, we use this SDK to start the sales, we can't use the latest SDK in the short term, and the latest SDK has not been tested.

  • 1. We are still testing the pru function stage on the latest SDK, and then determine whether to use it. Can pru do floating-point operation?
    2.pru:8KB program memory and 8KB data memory,If I have a big program, about 20,000 lines, can I use am335x pru?
  • Hello there,

    PRU/Remoteproc was not supported on Kernel v3.12. If you want PRU support, you will need to use one of our newer processor SDKs.

    1. The PRU hardware cannot natively do floating-point. Even if there is a PRU compiler library to do floating point operations on the PRU hardware (I do not think so, but don't know for sure), I would advise against using it because it would be so slow.

    2. The size of the code depends on the language you're writing it in, the compiler settings, etc. The best way to check the program memory size is to actually compile the code with the PRU compiler and see how large the output is.

    Regards,
    Nick
  • I tested prusss on ti-processor-sdk-linux-rt-am335x-evm-03.03.00.04.
    After installing the uio_prus.ko module(modprobe uio_pruss), run the lsmod command to learn that the module has been installed.

    root@am335x-evm:~# lsmod
    Module Size Used by
    uio_pruss 3234 0
    bc_example 7266 0
    sha512_generic 9903 0
    sha512_arm 12079 0
    drbg 13510 1
    des_generic 17736 0
    .......
    =====================================================================================================================
    but /dev does not have a uio device node. What am I supposed to do?

    root@am335x-evm:~# ls /dev/uio*
    ls: /dev/uio*: No such file or directory
    root@am335x-evm:~#
  • Hello,

    I am sorry for the delay in response! TI doesn't support UIO device node for PRU - I'd suggest looking at RemoteProc instead. (or the beaglebone forums may offer UIO support). There's an archived version of the RemoteProc / RPMsg wiki page for SDK 3.3, check out the "Archived Versions" at the bottom of the page. 

    What is your application? Floating point and tens of thousands of lines of code are not a good fit for the PRU. However, it might make sense to run part of the code on the ARM core, while the PRU just does real-time or deterministic parts of the code.

    Regards, 

    Nick

  • Hello,

    I am going to mark the thread resolved - if you have further questions, please post a comment and we can continue the discussion.

    Regards,
    Nick