Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ehci panic



On Thu, Jul 20, 2017 at 12:43:26AM +0200, Jarom?r Dole?ek wrote:
> 0xe2 should be valid offset, spec says it must be >= 0x40, but nothing
> about it being necessarily 4-byte aligned.
> 
> I've checked FreeBSD and Linux drivers, and there doesn't seem to be
> anything there checking or forcing this alignment, either. Their drivers
> even do some one byte reads into config space, so doesn't even seem to be
> PCI spec restriction.
> 
> Can you try to remove the KASSERT()s in sys/arch/x86/pci/pci_machdep.c and
> see where it will get you? The KASSERT() was added in 2008, three years
> after the ehci bios handover handling code was added, so it's a bit long
> shot this is actually the root problem, but still worth trying.

I removed the 2 KASSERT((reg & 0x3) == 0); asserts, and now have a 
successful boot:

ehci0 at pci0 dev 29 function 7: vendor 8086 product 24cd (rev. 0x03)
ehci0: interrupting at irq 11
ehci0: EHCI version f0.0
ehci0: wrong number of companions (14 != 3)
ehci0: 3 companion controllers, 15 ports each: uhci0 uhci1 uhci2
ehci0: reset timeout
ehci0: init failed, error=5

At least the laptop is usable now :-)


Cheers,

Patrick


Home | Main Index | Thread Index | Old Index