How can I give pins P8_20 and P8_21 to PRU0 as outputs? They are eMMC I/Opins

Hello,

I’m trying to find a way to give PRU0 access to pin P8_20 and P8_21 but no matter what I try, their pinmux files cannot be found. From what I’ve read online, these pins belong to the eMMC unless it is somehow disabled the beaglebone boots from uSD card. I looked around for a way to do this but I think the resources I found were out of date because nothing worked. Please help!

my uname -a :
Linux beaglebone 4.4.88-ti-r125

Thank you so much!
Evan
evangrcarter@gmail.com

Hi,
you can’t.
P8.20 & P8.21 are eventually used by pru1 only.
Maybe about eMMC you’re right, but I don’t have direct experience about that.
Attached you’ll find one of my custom working dts where I use almost all of the pins related to pru0.
Hope it helps.
Regards
Filippo

custom.dts (2.49 KB)

On Wed, 6 Jun 2018 14:15:59 -0700 (PDT),
"evangrcarter@gmail.com"
<evan.carter@cyvision.com> declaimed the
following:

Hello,

I'm trying to find a way to give PRU0 access to pin P8_20 and P8_21 but no
matter what I try, their pinmux files cannot be found. From what I've read
online, these pins belong to the eMMC unless it is somehow disabled the
beaglebone boots from uSD card. I looked around for a way to do this but I
think the resources I found were out of date because nothing worked. Please
help!

  Booting from SD card does not disable the eMMC -- it can easily be
mounted and files on it can be edited. Disabling the eMMC requires editing
(one of the) uEnv files used by uBoot.

  As for the pinmux, sorry -- I don't have the experience to dig into
that.

Oh my bad, I actually meant to say PRU1, I WAS using PRU0 for a while but switched to PRU1 quite a while ago for the gpios. I understand that P8.20 and P8.21 are not available to PRU0, but if they can be muxed to PRU1, there must be a way to boot the system such that the eMMC won’t use them right? I can’t say that I actually understand much about boot orders, or how the eMMC is used by the beaglebone with an uSD card. Currently I have the debian image and all of my scripts stored on the uSD card and when the BBB boots, I have access and use of all of my scripts, but I’m not sure I understand what the eMMC has to do with the process. I tried disabling the eMMC in my usual uEnv.txt file /boot/uEnv.txt, but it didn’t release the pins so I’m not sure it was actually disabled. Can you describe the propper way to disable the emmc? And if anyone knows of an overlay that creates pinmux files for P8.20 and P8.21 I can manipulate they’re muxing with config-pin. As of now, that is the only way that I really know how to pinmux gpios to the PRUs.

Thank you for your responses!
Evan

Hi,
in case you have a ‘cape-universalX’ enabled in uEnv.txt it could reserve for exclusive use the pins.
I had to comment out
#uboot_overlay_addr4=/lib/firmware/cape-universalh-00A0.dtbo
the cape-universalX line to let my custom dts have the exclusive use of the pins I need
Regards
Filippo

Okay cool! If I understand you right, to make sure your cape had exclusive use of the pins, you just had to comment out the lines for any cape that wasn’t your intended cape? I wasn’t sure it was actually that simple from things I had tried in the past. I’ll look into this and give it a try.

Thank you!
Evan