The release of OpenBSD 5.7 brings the latest batch of improvements I made for Soekris net6501 users.
The first change adds platform detection that should in fact work on all Soekris boards, (I think this change actually went in circa 5.4 but I never posted about it). Normally this information comes via the SMBIOS extensions but Soekris boards have a much stripped-down BIOS that lacks any of this support. There are however some vendor and product strings embedded in the BIOS image (probably used for printing on the serial console at POST) so they get picked out and used. For example:
# sysctl hw.vendor hw.product hw.vendor=Soekris Engineering hw.product=net6501 |
The second change adds the skgpio(4)
driver which provides access to the GPIO & LEDs on the net6501. Two GPIO devices are provided; gpio0
for the 16 real GPIO pins, (JP8 in the net6501 manual); and gpio1
for the error and ready LEDs coerced into the GPIO framework as output-only pins. Here is what is displayed in dmesg at boot:
skgpio0 at isa0 port 0x680/32 gpio0 at skgpio0: 16 pins gpio1 at skgpio0: 2 pins |
You still need to configure the GPIO pins prior to raising the securelevel so add the following to /etc/rc.securelevel
as a minimum:
gpioctl -q gpio1 0 set out error_led gpioctl -q gpio1 1 set out ready_led |
Now once the system is booted you can toggle the error LED with the following:
# gpioctl gpio1 error_led 2 pin error_led: state 0 -> 1 # gpioctl gpio1 error_led 2 pin error_led: state 1 -> 0 |
Guess I better start building some new flashrd images then! Thanks for the patches.