Hello again. So after backporting the -current pmap fixes to -8 in order to be able to be able boot -d in order be able to examine I2C panics and after fixing them I have an operational -8 machine again only to find that the USB problems that made me update are still there.
The simplest libusb program (I tried to get myslf acquianted to libusb) will lock-up the machine if run the second time. The only trace I have is (once) ohci0: WARNING: addr 0x41088dc0 not found. The machine becomes (at least) unresponsive to virtual console switches, most times, entering DDB works; backtrace is x86_memfence() usb_soft_intr() softint_dispatch() or bus_dmamap_sync() ohci_softintr() usb_soft_intr() softint_dispatch() When I looked, I had most processes in tstile. Any hints? Another broken pull-up?
#include <err.h> #include <stdio.h> #include <usb.h> struct usb_bus *bus; struct usb_device *dev; usb_dev_handle *udev; int main(int argc, char *argv[]) { puts("init"); usb_init(); puts("find_busses"); usb_find_busses(); puts("find_devices"); usb_find_devices(); for (bus = usb_busses; bus; bus = bus->next) { puts(bus->dirname); for (dev = bus->devices; dev; dev = dev->next) { printf("%d: %s\n", dev->devnum, dev->filename); udev = usb_open(dev); if (!udev) { warnx("usb_open: %s", usb_strerror()); continue; } printf("%0x %0x %0x\n", dev->descriptor.idVendor, dev->descriptor.idProduct, dev->descriptor.bcdDevice); #if 0 if (usb_claim_interface(udev, 0) < 0) { errx(1, "usb_claim: %s", usb_strerror()); } #endif usb_close(udev); } } return 0; }