Messages in this thread Patches in this message | | | Date | Sat, 26 Dec 1998 15:48:57 +0000 (GMT) | From | Riley Williams <> | Subject | Re: CONFIG_PCI_BIOS in 2.1.132 (update) |
| |
Hi Linus.
Addendum to the enclosed message: I forgot to include the relevant changes to the documentation with it. Here they are, both against the 2.1.132 raw kernel source...
Best wishes from Riley.
---------- Forwarded message ---------- Date: Wed, 23 Dec 1998 22:31:07 +0000 (GMT) From: Riley Williams <rhw@bigfoot.com> To: Linus Torvalds <torvalds@transmeta.com> Cc: linux-kernel@vger.rutgers.edu Subject: Re: CONFIG_PCI_BIOS in 2.1.132
Hi Linus.
>> That should provide you with the correct combination of options...
> It doesn't work too well, though - try it and see what happens to > the config file after doing "make oldconfig" etc.
> The proper fix is probably something like
> unset CONFIG_PCI_BIOS CONFIG_PCI_DIRECT > choice 'PCI access mode' \ > "BIOS CONFIG_PCI_ACCESS_BIOS \ > Direct CONFIG_PCI_ACCESS_DIRECT \ > Both CONFIG_PCI_ACCESS_BOTH" CONFIG_PCI_ACCESS_BOTH > if [ "$CONFIG_PCI_ACCESS_BIOS" = "y" -o "$CONFIG_PCI_ACCESS_BOTH" = "y" ] > then > define_bool CONFIG_PCI_BIOS y > fi > if [ "$CONFIG_PCI_ACCESS_DIRECT" = y -o "$CONFIG_PCI_ACCESS_BOTH" = "y" ] > then > define_bool CONFIG_PCI_DIRECT y > fi
> (note the "unset" and the different name spaces to make sure that > we don't get configuration confusion).
> I have _not_ tested the above, but I tested your previous patch and > it didn't work reliably. The above approach _should_ work, but if > anybody really wants to see this in the next kernel, please test it > out and send me a patch if/when it works..
I've just downloaded 2.1.132 on this system, and am unpacking it at the moment...ah, done. let's have a look...OK, try the enclosed...
I've changed the "Both" option to "Any" to make the options differ from the first letter onwards, and the above appears to work for "oldconfig", "config" and "menuconfig" - I can't test "xconfig" atm, so can't comment on that...
Best wishes from Riley. --- linux/arch/i386/config.in.orig Fri Dec 18 22:01:48 1998 +++ linux/arch/i386/config.in Wed Dec 23 22:15:41 1998 @@ -36,14 +36,20 @@ comment 'General setup' bool 'Networking support' CONFIG_NET bool 'PCI support' CONFIG_PCI if [ "$CONFIG_PCI" = "y" ]; then - bool ' PCI BIOS support' CONFIG_PCI_BIOS - bool ' PCI direct access support' CONFIG_PCI_DIRECT - if [ "$CONFIG_PCI_BIOS" = "n" -a "$CONFIG_PCI_DIRECT" = "n" ]; then - define_bool CONFIG_PCI_BIOS "y" + unset CONFIG_PCI_BIOS CONFIG_PCI_DIRECT + choice 'PCI access mode' \ + "BIOS CONFIG_PCI_GOBIOS \ + Direct CONFIG_PCI_GODIRECT \ + Any CONFIG_PCI_GOANY" Any + if [ -n "$CONFIG_PCI_GOBIOS" -o -n "$CONFIG_PCI_GOANY" ]; then + define_bool CONFIG_PCI_BIOS y + fi + if [ -n "$CONFIG_PCI_GODIRECT" -o -n "$CONFIG_PCI_GOANY" ]; then + define_bool CONFIG_PCI_DIRECT y fi bool ' PCI quirks' CONFIG_PCI_QUIRKS if [ "$CONFIG_PCI_QUIRKS" = "y" -a "$CONFIG_EXPERIMENTAL" = "y" ]; then bool ' PCI bridge optimization (experimental)' CONFIG_PCI_OPTIMIZE fi--- linux/Documentation/Configure.help.orig Tue Dec 22 16:29:00 1998 +++ linux/Documentation/Configure.help Sat Dec 26 15:41:05 1998 @@ -1291,30 +1291,43 @@ If some of your PCI devices don't work and you get a warning during boot time ("man dmesg"), please follow the instructions at the top of include/linux/pci.h. -PCI BIOS support -CONFIG_PCI_BIOS - If you have enabled PCI bus support above, you probably want to - allow Linux to use your PCI BIOS to detect the PCI devices and - determine their configuration. Note: some old PCI motherboards have - BIOS bugs and may crash if you say Y here -- for such motherboards, - you should say N here and say Y to "PCI direct access support" - instead. - - Except for some special cases (embedded systems with no BIOS), you - probably should say Y here. - -PCI direct access support -CONFIG_PCI_DIRECT - If you don't want to use the PCI BIOS (e.g., because you run some - embedded system with no BIOS at all) or Linux says it cannot use - your PCI BIOS, you can enable direct PCI hardware here. It might - fail if your machine is based on some unusual chipset, but it - usually works. If both PCI BIOS and direct PCI access are enabled, - the use of BIOS is preferred. If unsure, say Y. +PCI access support +CONFIG_PCI_GOBIOS + If you have enabled PCI bus support above, Linux needs to determine + what PCI devices you have, and how they are configured. This setting + deals with how Linux should do that. + + Within the kernel, two separate options are used to enable the two + possible ways Linux has for determining this. They are as follows: + + CONFIG_PCI_BIOS + This says to allow Linux to use your PCI BIOS to detect the PCI + devices and determine their configuration. Note that some old + PCI motherboards have BIOS bugs and may crash if this mode is + selected. + + CONFIG_PCI_DIRECT + This says that Linux should enable direct hardware support for + detecting PCI devices and determining their configuration. It + might fail if your machine is based on some unusual chipset, + but it usually works. + + This setting is used to determine the valid combinations of the + above two options, since at least one of them MUST be selected. The + available choices are as follows: + + BIOS This enables the CONFIG_PCI_BIOS option only. + Direct This enables the CONFIG_PCI_DIRECT option only. + Any This enables both options. + + If you are using Linux on some embedded system with no BIOS, or + Linux says it cannot use your BIOS, you should select DIRECT here, + otherwise you should probably select ANY here. Select BIOS only if + you have an unusual chipset for which DIRECT doesn't work. PCI quirks CONFIG_PCI_QUIRKS If you have a broken BIOS, it may fail to set up the PCI bus in a correct or optimal fashion. Saying Y here will correct that problem. | |