Unable to access PIO hardware - RPi5

Hi,

I’m currently attempting to access the PIO hardware available on the RP1 chip on the Raspberry Pi 5, using the latest version of Balena (balenaOS 6.5.24+rev1). I’ve attempted to add the appropriate dtparams to the config.txt before boot (dtparam=pwm-pio,gpio=13 but when I ssh in and look at the boot messages, I can see I get the following errors.

[  857.010174] rp1_pio: Unknown symbol rp1_firmware_message (err -2)
[  857.010214] rp1_pio: Unknown symbol devm_rp1_firmware_get (err -2)
[  857.010225] rp1_pio: Unknown symbol rp1_firmware_get_feature (err -2)
[ 1490.799765] rp1_pio: Unknown symbol rp1_firmware_message (err -2)
[ 1490.799806] rp1_pio: Unknown symbol devm_rp1_firmware_get (err -2)
[ 1490.799818] rp1_pio: Unknown symbol rp1_firmware_get_feature (err -2)
[ 1967.733992] rp1_pio: Unknown symbol rp1_firmware_message (err -2)
[ 1967.734031] rp1_pio: Unknown symbol devm_rp1_firmware_get (err -2)
[ 1967.734043] rp1_pio: Unknown symbol rp1_firmware_get_feature (err -2)
[ 2380.510391] rp1_pio: Unknown symbol rp1_firmware_message (err -2)
[ 2380.510432] rp1_pio: Unknown symbol devm_rp1_firmware_get (err -2)
[ 2380.510444] rp1_pio: Unknown symbol rp1_firmware_get_feature (err -2)
[ 2584.308627] rp1_pio: Unknown symbol rp1_firmware_message (err -2)
[ 2584.308666] rp1_pio: Unknown symbol devm_rp1_firmware_get (err -2)
[ 2584.308677] rp1_pio: Unknown symbol rp1_firmware_get_feature (err -2)

I don’t believe it’s an issue with the EEPROM as I’m able to access the PIO hardware when running Raspberry Pi OS. When I check to see if the PIO module is accessible, I get the following:

# ls -l /dev/pio0
# ls: cannot access '/dev/pio0': No such file or directory

Is this a problem with Balena OS? Are we missing an overlay?

Hello @mikey , can you provide the kernel version of the Raspberry Pi OS where you were able to access the PIO hardware? Did you successfully use PIOLib on Pi OS as outlined here: https://www.raspberrypi.com/news/piolib-a-userspace-library-for-pio-control/

Hi @alanb128 , thanks for the reply!

That’s right, I used PIOLib, just like the attached link during testing.

I get the following from Raspberry Pi OS (2025-05-13 Release) showing I can access the PIO hardware.

i@pi:~ $ ls -l /dev/pio0
crw-rw---- 1 root gpio 238, 0 May 21 16:44 /dev/pio0
i@pi:~ $ uname -r
6.12.25+rpt-rpi-2712

I’m aware that balenaOS 6.5.24+rev1 is running 6.12.25 - Does this then likely mean we’re missing a RPi developed patch that enables access to the PIO hardware?

Cheers for the help.

Hi @mikey it looks like the “-2712” is for Pi 5 only and contains optimizations specific to that device type. I’ll ask our OS engineers how/if that can be incorporated into the OS.

2 Likes

Great, thanks @alanb128 for looking in to it.

1 Like

You’re welcome! It looks like something we should be able to incorporate, but I don’t have an ETA just yet. We’ll update here as soon as we have more information.

1 Like

Hi @mikey the latest balenaOS has a newer kernel, but still lacks the element (firmware?) needed for PIO. However, as a temporary workaround, you can flash an SD card with Raspberry Pi OS, run sudo rpi-eeprom-update and update the firmware. Then switch the card back to balenaOS and you should have access:

=============================================================
    Welcome to balenaOS
=============================================================
root@af3c697:~# uname -a
Linux af3c697 6.12.32-v8-16k #1 SMP PREEMPT Thu Jun  5 10:46:00 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
root@af3c697:~# ls -l /dev/pio0
crw------- 1 root root 237, 0 Jun 13 20:47 /dev/pio0
2 Likes

Okay thanks Alan! I’ll give it a go shortly. Do you have any idea when Balena OS might be upgraded to avoid me having to boot up with Pi OS to perform upgrades? This is fine for prototyping, but could become a real hassle in production.

Just dropping in to say that this would be helpful for me as well. We need this to use adafruits neopixel library.

Thanks