Hi all,

Thanks to all who have responded.

Replying for the archives.

> Currently it looks like the NEC usb controller is not recognized
> because OpenBSD doesn't know its id. Huawei card is 'hiding' behind
> the controller, and is not visible at the moment.

After finding the id with `pcidev -dv` and adding it to usbdevs didn't
do the trick. The problem seems to be hiding in
/usr/src/sys/dev/usb/ohci.c file:

        if (OHCI_REV_HI(rev) != 1 || OHCI_REV_LO(rev) != 0) {
                printf("%s: unsupported OHCI revision\n",
                       sc->sc_bus.bdev.dv_xname);
                sc->sc_bus.usbrev = USBREV_UNKNOWN;
                return (USBD_INVAL);
        }

The device seems to report wrong (unsupported) ohci revision.
Intentionally messing up the revision check in the source code and
recompiling the kernel results in:

ohci0 at cardbus0 dev 0 function 0 "NEC USB" rev 0x43: irq 5, version 0.0
ohci0: reset timeout
ohci0: init failed, error=13
ohci1 at cardbus0 dev 0 function 1 "NEC USB" rev 0x43: irq 5, version 0.0
ohci1: reset timeout
ohci1: init failed, error=13

Hence, just adding device and vendor id and recompiling the kernel is
not enough, ohci handling code needs to support the "correct" revision
for the device. Or tweaking usb-quirks as Miod does from time to time,
but this is way beyond my current level.

Maxim

Reply via email to