Re: [linux-usb-devel] [PATCH] proper bios handoff in ehci-hcd

From: David Brownell
Date: Tue Jul 13 2004 - 16:15:05 EST


Will Beers wrote:
> though maybe 500 msec is too short a period to wait.
> See if 5000 msec helps.

I went all the way up to 20000 msec and it still didn't help. I'm sure it's a bad idea, but removing that whole if-block below it makes it work (which is effectively what switching the and/or did). I don't know enough about it to judge whether it's correct, but what exactly is it checking for there?

There are two flags in adjacent bytes of pci config space.
State transitions are shown in the spec [1] (simple state
diagrams), but basically your hardware started out in a
"BIOS owned" mode, and we want Linux to run it instead.
So we change (0,1) to (1,1), then BIOS should get an IRQ
before changing it to (1,0) and ignoring EHCI ... it's not.

Sounds to me like your BIOS may be broken. But if you're
up for it, you could try using byte access to write that one
flag byte; I could also believe some hardware won't issue the
SMI interrupt without that. There are also a lot of bits in
the next word, which might let you stomp on on the BIOS in
constructive useful ways.

- Dave

[1] http://www.usb.org/developers/docs/ at the very
bottom of the page, for that part you won't need
to know anything else about USB.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/