#3730 new project

Adding PRU Support

Reported by: Nils Hölscher Owned by:
Priority: normal Milestone:
Component: admin Version:
Severity: normal Keywords: SoC
Cc: Blocked By:
Blocking:

Description

The Programmable Real-Time Unit (PRU) from Texas instruments is a dedicated i/o processeor on TIs Sitara Chips (e.g. Am35xx on the Beaglebone). Its main feature is that most of its i/o is accessible within one cycle of the PRU.

The driver needs to provide the following features:

  1. Load Binaries on the PRU cores.
  2. Control PRU Execution (start, stop, etc.).
  3. Manage Resources (memory, interrupt mapping, etc.).
  4. Provide a Method to send/receive messages for interacting with the PRU.

Linux loads Binaries to the PRU with remoteproc or UIO (userspace).

Communication can be provided via Interrupts (see https://elinux.org/Ti_AM33XX_PRUSSv2#Communication).

For detailed Information see: https://elinux.org/Ti_AM33XX_PRUSSv2
BeagleBoard? Community PRU driver and Documentation: https://github.com/texane/pru_sdk

Change History (7)

comment:1 Changed on Apr 2, 2019 at 4:51:45 PM by Nils Hölscher

Keywords: SoC added

comment:2 Changed on Apr 2, 2019 at 5:08:31 PM by Joel Sherrill

Some odd basic questions.

  • Is the PRU still included in newer CPUs? What about the Octavo like in the PocketBeagle?? I don't want to see you spend time on something that is at the end of its lifecycle.
  • Is all software that will be included on the RTEMS target system and PRU appropriately licensed (e.g. not proprietary or GPL)?
  • Will the RTEMS side of the PRU client library have RSB recipes? Answer should be yes. :)

comment:3 in reply to:  2 Changed on Apr 2, 2019 at 5:57:57 PM by Nils Hölscher

Replying to Joel Sherrill:

Some odd basic questions.

These are Files Provided by TI and altered by the BeagleBoard? community.

  • Is the PRU still included in newer CPUs? What about the Octavo like in the PocketBeagle?? I don't want to see you spend time on something that is at the end of its lifecycle.

Yes. The PRU is included in the whole Sitara line by TI. The Octava is just a System in Package using the same AM33xx as the Beagle-Bone Black. For a full view of the Sitara line see: https://www.ti.com/processors/sitara-arm/overview.html.

  • Is all software that will be included on the RTEMS target system and PRU appropriately licensed (e.g. not proprietary or GPL)?

The TI compiler is proprietary.
TI uses this license head on their open source files: https://github.com/beagleboard/am335x_pru_package/blob/master/pru_sw/utils/LICENCE.txt.
I think it should be fine but please double check.

  • Will the RTEMS side of the PRU client library have RSB recipes? Answer should be yes. :)

I haven't red into the RSB yet, could you provide me a link to a good starting point in the Documentation. Then I will try to add this to my GSoC Proposal.

comment:4 Changed on Apr 3, 2019 at 4:23:43 AM by Chris Johns

I see pru_sdk contains binaries. Is there source for these? Do the tools run on hosts other than Linux?

comment:5 in reply to:  4 Changed on Apr 3, 2019 at 8:34:37 AM by Nils Hölscher

Replying to Chris Johns:

I see pru_sdk contains binaries. Is there source for these? Do the tools run on hosts other than Linux?

I am sorry I provided the wrong link there. The community PRU is @https://github.com/beagleboard/am335x_pru_package i will change that in the ticket. You will find the PRU Assembler sources there.
TI provides SDKs for Windows and Linux with their Code Composer IDE.
http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/index_FDS.html

comment:6 Changed on Apr 3, 2019 at 11:52:46 PM by Chris Johns

Thank you.

comment:7 Changed on May 8, 2019 at 7:25:51 PM by Nils Hölscher

My GSoC 2019 Project concerning this Ticket has started.
Please refer to its wiki page.

Note: See TracTickets for help on using tickets.