On Sun, 7 Mar 2010 22:31:18 +0100 Christopher Zimmermann
<madro...@zakweb.de> wrote:

> ok, you misunderstood me. My BIOS needs 'legacy' to be turned on to 
> use the USB-keyboard. 

Yep, you weren't clear on "legacy" as meaning "Legacy USB Support" but
I was able to dig up a possibly similar/correct manual. According to
Asus, "K8S-MV" as seen in your dmesg, doesn't exist. The closest I
found was "K8S-MX"

http://dlsvr.asus.com/pub/ASUS/mb/sock754/k8s-mx/e1884_k8s-mx.pdf

Page 56 (2-20) of the above looks kind of like what you've described.

Does your BIOS have the very strange option of:

        "Stop EHCI HC in OHCI handover" [Disabled] [Enabled]

as shown in the (possibly wrong) manual I found?

The dmesg you posted shows:

ohci0 at pci0 dev 3 function 0 "SiS 5597/5598 USB" rev 0x0f: apic 1 \
        int 20 (irq 5), version 1.0, legacy support
ohci1 at pci0 dev 3 function 1 "SiS 5597/5598 USB" rev 0x0f: apic 1 \
        int 21 (irq 10), version 1.0, legacy support
ohci2 at pci0 dev 3 function 2 "SiS 5597/5598 USB" rev 0x0f: apic 1 \
        int 22 (irq 5), version 1.0, legacy support
ehci0 at pci0 dev 3 function 3 "SiS 7002 USB" rev 0x00ehci0: offs=32 \
        : apic 1 int 23 (irq 10)
ehci0: waiting for BIOS to give up control
ehci0: timed out waiting for BIOS
ehci_init: start

Additionally, one of the possible reasons why your keyboard and mouse
will not work without "Legacy USB Support" and/or "OnBoard SiS USB 1.1
DEVICE" enabled is because they are plugged into the wrong port. In
other words you've shut off the Host Controller ("SiS 5597/5598") for
the port (s) where your mouse and keyboard are plugged in.

> Thats actually consistent with the BSD 
> terminology in dev/usb/ehcireg.h. See the EHCI_LEGSUP_* and
> dev/pci/ehci_pci.c: ehci_pci_takecontroller()
> 

Like most things from Intel, USB is a convoluted pain in the ass.

           1.5 MiBit/s  -  "Low Speed"   -  UHCI/OHCI  -  USB v1.0/v1.1
          12   MiBit/s  -  "Full Speed"  -  UHCI/OHCI  -  USB v1.0/v1.1
         480   MiBit/s  -  "High Speed"  -  EHCI       -  USB v2.0
        4800   MiBit/s  -  "Super Speed" -  ?          -  USB v3.0

A single, physical USB port can have a number of host controllers
(UHCI, OHCI, EHCI, ...) listening for some device to be inserted.
Depending on the type of device inserted and its version (1.0, 1.1,
2.0, ...), the correct host controller responds to provide the max
speed for the device.

Just because you have a SiS 7002 on the board (e.g. EHCI "High
Speed" host controller) does not mean *all* physical USB ports are
wired to the specific chipset. Some of the physical USB ports may
*ONLY* be wired to the older SiS 5597/5598 chipset (e.g. OHCI "Low" or
"Full" speed). I'm using the term "chipset" very loosely, since we could
actually be talking about a single physical chip. Also, how the
physical ports and chipsets are wired together on some motherboard is
not something you can find in publicly available docs.

Here's a classic example. NEC has a commonly used USB 1.1/2.0 chipset
that does "Low Speed," "Full Speed," and "High Speed." It shows up in
most operating systems as three different host controllers (two UHCI
and one EHCI). The trouble is, if you disable or ignore either of the
UHCI host controllers, the EHCI will never work. --This is an overly
pedantic way to say, unless you have "legacy" USB 1.1 support working,
the "new" USB 2.0 support will never work.

> > Is the kernel locked up? --Possibly No. The kernel may be ignoring
> > the USB mouse/keyboard that you specifically told the bios to
> > ignore by turning on "Legacy Mode." When the BIOS tells the kernel
> > that it has no mouse or keyboard installed, then the kernel thinks,
> > "Ah, we're running headless," and adjusts accordingly.
> 
> the kernel stops while booting. Read my orignal post again. I found 
> the very line of code causing this problem, but still don't know 
> exactly how to fix it.

The (possibly wrong) manual I found has that very weird BIOS option for
OHCI to EHCI handover. If your system has something similar, then this
*might* be the root of your problem. If OHCI refuses to "handover" to
EHCI, then it could explain why EHCI is waiting around for the BIOS to
give up control.

        jcr

Reply via email to