[Bugme-new] [Bug 12148] New: "EHCI: BIOS handoff failed" needs to be handled better

bugme-daemon at bugzilla.kernel.org bugme-daemon at bugzilla.kernel.org
Wed Dec 3 03:11:17 PST 2008


http://bugzilla.kernel.org/show_bug.cgi?id=12148

           Summary: "EHCI: BIOS handoff failed" needs to be handled better
           Product: Drivers
           Version: 2.5
     KernelVersion: 2.6.27.7 (latest stable version)
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: low
          Priority: P1
         Component: USB
        AssignedTo: greg at kroah.com
        ReportedBy: mikko.rantalainen at peda.net


Latest working kernel version: (unknown, probably never)
Earliest failing kernel version: (unknown, probably always)
Distribution: Ubuntu Linux 8.10 (the same code is in vanilla kernel, though)
Hardware Environment: motherboard: Intel DG45ID (with Core 2 Duo E8400)
Software Environment: Ubuntu Linux 8.10
Problem Description: EHCI BIOS handoff failed 

Steps to reproduce:
1) Enable "USB Legacy support" in the DG45ID BIOS
2) boot the linux kernel
3) Wait for timeout (about 10 seconds)
4) See warning messages
[ 0.984004] Switched to high resolution mode on CPU 0
[ 8.976007] pci 0000:00:1a.7: EHCI: BIOS handoff failed (BIOS bug?) 01010001
[ 16.976007] pci 0000:00:1d.7: EHCI: BIOS handoff failed (BIOS bug?) 01010001
5) Notice the time wasted waiting for BIOS handoff

I'm fully aware that the real problem is that the BIOS does not follow the EHCI
specification[1]. As such, I already contacted Intel about the issue and
explained that the BIOS does not follow the specification[1] as explained on
pages 121 and 122.

[1] http://www.intel.com/technology/usb/ehcispec.htm

I got following response (I cannot attach the whole correspondence because I
didn't got explicit permission even though I explicitly asked for such
permission): "The link you provided does not relate specifically to this board
and it is just general information for EHCI Controller." followed by "We cannot
provide further information on the BIOS other than the information that is
publicly available." when asked for a newer specification overriding the
specification[1].

In addition, they said that this board is not officially supported and "the
operating system you are using is not tested with this motherboard and it is a
reason to function improperly."

This seems to be a common problem. Searching for "BIOS handoff failed" returns
many results for many motherboards and googling for the issue suggests that
most people only suffer from slow boot without understanding the real issue
behind the delays (they never see the kernel warning because of the OS splash
screen).

The specification[1] says on page 122 "The OS waits for the BIOS Owned bit to
go to a zero before attempting to use the EHCI controller. The time that OS
must wait for BIOS to respond to the request for ownership is beyond the scope
of this specification."

As the Intel (the author of said spec) is saying that this is just "general
information" that does not relate specifically DG45ID (and, by extension,
probably other motherboards manufactured by Intel) I'd suggest chancing the
value of msec from 5000 to 50 in /drivers/usb/host/pci-quirks.c on line 274.
Doing that would still be compliant to the specification[1] (the time that OS
must wait is not specified so why not assume the OS manufacturer can decide).

Has this ever been tested? How long does it take with a BIOS that does
correctly implement the specification[1]? I'd *guess* that if a BIOS is not
going to respond in 50 ms it will not respond in 5000 ms either (the current
behavior) after which the kernel is just trying to force the handoff and hoping
for the best. In most cases forcing the handoff does work and in the cases
where it does not work, waiting longer for the BIOS handoff is not going to
help either. I think the best fix would be to shorten then msec time as
suggested above and still print the same warning message if the BIOS is not
following the EHCI specification[1].

I'm *very* disappointed that Intel publishes a specification[1] and then
decides that it does not need to follow it. And this decision is not documented
anywhere public.

See also: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/275351


-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


More information about the Bugme-new mailing list