diff -ru orig/linux/arch/i386/config.in linux/arch/i386/config.in --- orig/linux/arch/i386/config.in Tue Jul 1 22:55:18 1997 +++ linux/arch/i386/config.in Tue Jul 1 22:55:42 1997 @@ -25,6 +25,7 @@ bool 'Networking support' CONFIG_NET bool 'PCI bios support' CONFIG_PCI if [ "$CONFIG_PCI" = "y" ]; then + bool ' Use PCI Bios (recommended)' CONFIG_PCI_BIOS if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then bool ' PCI bridge optimization (experimental)' CONFIG_PCI_OPTIMIZE fi diff -ru orig/linux/arch/i386/defconfig linux/arch/i386/defconfig --- orig/linux/arch/i386/defconfig Tue Jul 1 22:55:14 1997 +++ linux/arch/i386/defconfig Tue Jul 1 22:56:04 1997 @@ -20,6 +20,7 @@ # CONFIG_MATH_EMULATION is not set CONFIG_NET=y CONFIG_PCI=y +CONFIG_PCI_BIOS=y # CONFIG_MCA is not set CONFIG_SYSVIPC=y CONFIG_SYSCTL=y diff -ru orig/linux/arch/i386/kernel/bios32.c linux/arch/i386/kernel/bios32.c --- orig/linux/arch/i386/kernel/bios32.c Tue Jul 1 22:55:27 1997 +++ linux/arch/i386/kernel/bios32.c Tue Jul 1 22:57:38 1997 @@ -125,12 +125,13 @@ * the array there. */ +#ifdef CONFIG_PCI_BIOS static unsigned long bios32_entry = 0; static struct { unsigned long address; unsigned short segment; } bios32_indirect = { 0, KERNEL_CS }; - +#endif /* * function table for accessing PCI configuration space @@ -152,7 +153,7 @@ static struct pci_access *access_pci = NULL; - +#ifdef CONFIG_PCI_BIOS /* * Returns the entry point for the given service, NULL on error */ @@ -441,7 +442,7 @@ pci_bios_write_config_word, pci_bios_write_config_dword }; - +#endif /* CONFIG_PCI_BIOS */ /* @@ -882,6 +883,7 @@ __initfunc(unsigned long pcibios_init(unsigned long memory_start, unsigned long memory_end)) { #ifdef CONFIG_PCI +#ifdef CONFIG_PCI_BIOS union bios32 *check; unsigned char sum; int i, length; @@ -925,6 +927,9 @@ } if (bios32_entry && check_pcibios()) access_pci = &pci_bios_access; +#else + access_pci = check_direct_pci(); +#endif /* CONFIG_PCI_BIOS */ #endif return memory_start; }