PRU Beginner Questions (2)

Hello,

I’m a beginner learning about PRU with a couple of questions. I’ve been using as reference:

Questions:

    1. Default firmware for PRU0/1:

root@beaglebone:~# cat /sys/class/remoteproc/remoteproc*/firmware

am335x-pm-firmware.elf

am335x-pru0-fw

am335x-pru1-fw

root@beaglebone:~# find / -name am335x-pru?-fw

/lib/firmware/am335x-pru0-fw

/lib/firmware/am335x-pru1-fw

What do these programs do? I haven’t found any source code to explain what is inside. I think the files come from TI (compiled form), but what happens if I

echo start > state for the default firmware? Seems strange to have this as the default with no clues about what is inside.

  1. What is the source for the __R30 pin configurations (default?. Fresh boot =>

root@beaglebone:~# cat /sys/kernel/debug/remoteproc/remoteproc1/regs | grep "GPREG30 "

GPREG30 := 0xd233c9c3 CT_REG30 := 0x40000000

I’ve looked in:

U-Boot, am335x-boneblack-uboot, cape_universal, AM335X-PRU-RPROC-4-14-TI-00A0 and googled around but can’t find anything that looks like it sets __R30 at boot.

With a LED connected to P9-27, P9-28, P9-29:

config-pin P9-27 pruout => LED is low

config-pin P9-28 pruout => LED is high

config-pin P9-28 pruout => LED is high

For me, it seems strange that some pins would be high by “default”. What is setting these values as high???

Many thanks in advance for any clues.

Hello,

I’m a beginner learning about PRU with a couple of questions. I’ve been using as reference:

Questions:

    1. Default firmware for PRU0/1:

root@beaglebone:~# cat /sys/class/remoteproc/remoteproc*/firmware

am335x-pm-firmware.elf

am335x-pru0-fw

am335x-pru1-fw

root@beaglebone:~# find / -name am335x-pru?-fw

/lib/firmware/am335x-pru0-fw

/lib/firmware/am335x-pru1-fw

What do these programs do? I haven’t found any source code to explain what is inside. I think the files come from TI (compiled form), but what happens if I

echo start > state for the default firmware? Seems strange to have this as the default with no clues about what is inside.

There’s no defacto pru firmware. Robert and I discussed loading a firmware image that puts the processor in a hold loop just to have something in there by default. I imagine that is what this is.

  1. What is the source for the __R30 pin configurations (default?. Fresh boot =>

Check GitHub - beagleboard/customizations: Moved to: https://git.beagleboard.org/beagleboard/usr-customizations. This is where Robert and I discussed putting it.

root@beaglebone:~# cat /sys/kernel/debug/remoteproc/remoteproc1/regs | grep "GPREG30 "

GPREG30 := 0xd233c9c3 CT_REG30 := 0x40000000

I’ve looked in:

U-Boot, am335x-boneblack-uboot, cape_universal, AM335X-PRU-RPROC-4-14-TI-00A0 and googled around but can’t find anything that looks like it sets __R30 at boot.

With a LED connected to P9-27, P9-28, P9-29:

config-pin P9-27 pruout => LED is low

config-pin P9-28 pruout => LED is high

config-pin P9-28 pruout => LED is high

For me, it seems strange that some pins would be high by “default”. What is setting these values as high???

Many thanks in advance for any clues.

There was nothing done to my knowledge to make these known or specific. I suggest you provide a firmware load if you want them to be specific.

Patches welcome.

There are some thoughts to load the PRUs with a small REPL through rpmsg for quick hacking.

Many thanks for your reply and a friendly hat tip for all your efforts with Beaglebone.org - it is appreciated!

I was thinking that maybe GPREG30 := 0xd233c9c3 represents some debugging info but couldn’t figure out what was setting it.

for the default PRU firmware => yes it makes sense to have some basic REPL using rpmsg for hacking / validation PRU_RPMsg_Echo_Interrupt0 / PRU_RPMsg_Echo_Interrupt1 might be a candidate. ???

I’m not up to Git just yet so I’m not much help.

Once again thank you kindly for your reply and work.