23.6.2. GPIO
TODO: broken. Was working before we moved arm
from -M versatilepb
to -M virt
around af210a76711b7fa4554dcc2abd0ddacfc810dfd4. Either make it work on -M virt
if that is possible, or document precisely how to make it work with versatilepb
, or hopefully vexpress
which is newer.
QEMU does not have a very nice mechanism to observe GPIO activity: https://raspberrypi.stackexchange.com/questions/56373/is-it-possible-to-get-the-state-of-the-leds-and-gpios-in-a-qemu-emulation-like-t/69267#69267
The best you can do is to hack our build script to add:
HOST_QEMU_OPTS='--extra-cflags=-DDEBUG_PL061=1'
where PL061 is the dominating ARM Holdings hardware that handles GPIO.
Then compile with:
./build-buildroot --arch arm --config-fragment buildroot_config/gpio ./build-linux --config-fragment linux_config/gpio
then test it out with:
./gpio.sh
Source: rootfs_overlay/lkmc/gpio.sh
Buildroot’s Linux tools package provides some GPIO CLI tools: lsgpio
, gpio-event-mon
, gpio-hammer
, TODO document them here.