On Wed, Jul 19, 2017 at 09:47:15AM +0100, Patrick Welche wrote:
On Mon, Jul 17, 2017 at 09:40:18PM +0200, Jarom?r Dole?ek wrote:
The constant is wrong. There are 4 bits for number of companion devices, so
maximum is actually 15.
Can you try kernel with this change?
It gets further!
ehci0 at pci0 dev 29 function 7: vendor 8086 product 24cd (rev. 0x03)
ehci0: interrupting at irq11
panic: kernel diagnostic asserition "(reg & 0x3) == 0" failed: "file "/usr/src/sys/arch/x86/pci/pci_machdep.c", line 621
All I got extra with USB_DEBUG EHCI_DEBUG and usbdebug=ehcidebug=10 was
allocated pic pic0 type level pin 11 level 6 to cpu0 slot 11 idt entry 43
vpanic()
(gdb) info line *(ch_voltag_convert_in)
Line 1275 of "/usr/src/sys/dev/scsipi/ch.c"
(gdb) info line *(pci_conf_read+0xd2)
Line 621 of "/usr/src/sys/arch/x86/pci/pci_machdep.c"
614 pci_conf_read(pci_chipset_tag_t pc, pcitag_t tag, int reg)
621 KASSERT((reg & 0x3) == 0);
and guess that reg == 0xb
(gdb) info line *(ehci_get_ownership + 0x6c)
Line 391 of "/usr/src/sys/dev/pci/ehci_pci.c"
388 cparams = EREAD4(sc, EHCI_HCCPARAMS);
389 addr = EHCI_HCC_EECP(cparams);
390 while (addr != 0) {
391 cap = pci_conf_read(pc, tag, addr);
#define EHCI_HCCPARAMS 0x08 /* RO Capability parameters */
#define EHCI_HCC_EECP(x) (((x) >> 8) & 0xff) /* extended ports caps */