Thanks to Jens A. Griepentrog for reporting and bisecting, we discovered that sys/conf.h r1.150 broke /dev/ipmi. I found a machine to test on and reverting the commit fixes things, but given the commit message I guess the diff below (which also fixes it) might be better?
https://github.com/openbsd/src/commit/425727428bd010ccd7d8cfa0fb087fccdcd9e500 Index: conf.h =================================================================== RCS file: /cvs/src/sys/sys/conf.h,v retrieving revision 1.152 diff -u -p -r1.152 conf.h --- conf.h 26 May 2020 07:53:00 -0000 1.152 +++ conf.h 28 Jun 2020 20:53:52 -0000 @@ -473,7 +473,7 @@ extern struct cdevsw cdevsw[]; #define cdev_ipmi_init(c,n) { \ dev_init(c,n,open), dev_init(c,n,close), (dev_type_read((*))) enodev, \ (dev_type_write((*))) enodev, dev_init(c,n,ioctl), \ - (dev_type_stop((*))) enodev, 0, selfalse, \ + (dev_type_stop((*))) enodev, 0, seltrue, \ (dev_type_mmap((*))) enodev, 0 } /* open, close, ioctl, mmap */