P8_27 & P8_28 & PRU0

I need to use P8_27 and P8_28 as pruout and pruin with PRU0 on a BeagleBone Black Wireless. I’ve disabled the video and audio in uEnv.txt. I’m writing in C. I am running 4.19.94-ti-r68

I could swear I had a simple C program working that would take P8_27 high and low but today I can’t make it work. When I read the documentation, I’m now concerned that P8_27 and P8_28 aren’t accessible by PRU0. Is this true? If PRU0 can access and use them, what should I check for that’s keeping these from working? I’ve run config-pin to set them properly and when I run config-pin -q on them I get the correct setting for each one.

The output of version.sh is below.

git:/opt/scripts/:[e4e4854ef8ff9ada5c85553376043ee7679167ca]
eeprom:[A335BNLTBWA51721EW002258]
model:[TI_AM335x_BeagleBone_Black_Wireless]
dogtag:[BeagleBoard.org Debian Buster IoT Image 2021-02-15]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2019.04-00002-gc9b3922522 (Aug 24 2020 - 16:42:18 -0500)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2019.04-00002-gc9b3922522]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts]
UBOOT: Loaded Overlay:[AM335X-PRU-RPROC-4-19-TI-00A0.kernel]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BBBW-WL1835-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
kernel:[4.19.94-ti-r68]
nodejs:[v10.23.1]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[disable_uboot_overlay_audio=1]
uboot_overlay_options:[uboot_overlay_pru=AM335X-PRU-RPROC-4-19-TI-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade ]
pkg:[bb-cape-overlays]:[4.14.20210809.0-0~buster+20210816]
pkg:[bb-customizations]:[1.20210810.1-0~buster+20210810]
pkg:[bb-usb-gadgets]:[1.20200504.0-0~buster+20200504]
pkg:[bb-wl18xx-firmware]:[1.20200813.1-0~buster+20200813]
pkg:[kmod]:[26-1]
pkg:[librobotcontrol]:[1.0.5-git20200715.0-0~buster+20200716]
pkg:[firmware-ti-connectivity]:[20190717-2rcnee1~buster+20200305]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input bluetooth netdev i2c gpio admin spi iio docker tisdk weston-launch xenomai cloud9ide pwm eqep remoteproc]
cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[ 56.039727] Bluetooth: hci0: change remote baud rate command in firmware
[ 74.269378] remoteproc remoteproc0: wkup_m3 is available
[ 74.416726] remoteproc remoteproc0: powering up wkup_m3
[ 74.416761] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[ 74.417045] remoteproc remoteproc0: remote processor wkup_m3 is now up
[ 77.639899] remoteproc remoteproc1: 4a334000.pru is available
[ 77.655755] remoteproc remoteproc2: 4a338000.pru is available
[ 133.470659] remoteproc remoteproc1: powering up 4a334000.pru
[ 133.471162] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 82204
[ 133.494119] remoteproc remoteproc1: registered virtio0 (type 7)
[ 133.494141] remoteproc remoteproc1: remote processor 4a334000.pru is now up
[ 539.070203] remoteproc remoteproc2: powering up 4a338000.pru
[ 539.070700] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 82204
[ 539.121946] remoteproc remoteproc2: Failed to process post-loading resources: -17
[ 539.145918] remoteproc remoteproc2: Boot failed: -17
[ 747.238325] remoteproc remoteproc2: powering up 4a338000.pru
[ 747.238878] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 82204
[ 747.289417] remoteproc remoteproc2: Failed to process post-loading resources: -17
[ 747.310175] remoteproc remoteproc2: Boot failed: -17
dmesg | grep pru
[ 77.639899] remoteproc remoteproc1: 4a334000.pru is available
[ 77.640125] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[ 77.655755] remoteproc remoteproc2: 4a338000.pru is available
[ 77.655952] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
[ 133.470659] remoteproc remoteproc1: powering up 4a334000.pru
[ 133.471162] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 82204
[ 133.480760] pruss 4a300000.pruss: configured system_events[63-0] = 00000000,00030000
[ 133.480782] pruss 4a300000.pruss: configured intr_channels = 0x00000005 host_intr = 0x00000005
[ 133.494141] remoteproc remoteproc1: remote processor 4a334000.pru is now up
[ 133.595611] virtio_rpmsg_bus virtio0: creating channel rpmsg-pru addr 0x1e
[ 133.680884] rpmsg_pru virtio0.rpmsg-pru.-1.30: new rpmsg_pru device: /dev/rpmsg_pru30
[ 539.070203] remoteproc remoteproc2: powering up 4a338000.pru
[ 539.070700] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 82204
[ 539.076358] pruss 4a300000.pruss: event 16 (req. channel 2) already assigned to channel 2
[ 539.103860] pru-rproc 4a338000.pru: failed to configure pruss intc -17
[ 747.238325] remoteproc remoteproc2: powering up 4a338000.pru
[ 747.238878] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 82204
[ 747.239872] pruss 4a300000.pruss: event 16 (req. channel 2) already assigned to channel 2
[ 747.269515] pru-rproc 4a338000.pru: failed to configure pruss intc -17
dmesg | grep pinctrl-single
[ 1.026713] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
[ 1.039958] gpio-of-helper ocp:cape-universal: ready
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END

P8_27 and P8_28 are PRU1.

The PRU0 pins on P8 are P8_11, P8_12, P8_15, P8_16.

See: Programming the BeagleBone PRU-ICSS

If you don’t need high-speed, you could access those pins as generic GPIOs from PRU0. If you don’t want to go out on the main CPU bus so you can keep determinacy, you might be able to use the PRU EDIO system.