diff -ru orig/linux-2.0.30/arch/i386/config.in linux-2.0.30/arch/i386/config.in --- orig/linux-2.0.30/arch/i386/config.in Fri May 31 10:11:28 1996 +++ linux-2.0.30/arch/i386/config.in Tue Jul 1 16:35:41 1997 @@ -26,6 +26,7 @@ bool 'Limit memory to low 16MB' CONFIG_MAX_16M 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-2.0.30/arch/i386/defconfig linux-2.0.30/arch/i386/defconfig --- orig/linux-2.0.30/arch/i386/defconfig Mon Nov 25 14:04:50 1996 +++ linux-2.0.30/arch/i386/defconfig Tue Jul 1 16:36:38 1997 @@ -21,6 +21,7 @@ CONFIG_NET=y # CONFIG_MAX_16M is not set CONFIG_PCI=y +CONFIG_PCI_BIOS=y CONFIG_SYSVIPC=y CONFIG_BINFMT_AOUT=y CONFIG_BINFMT_ELF=y diff -ru orig/linux-2.0.30/arch/i386/kernel/bios32.c linux-2.0.30/arch/i386/kernel/bios32.c --- orig/linux-2.0.30/arch/i386/kernel/bios32.c Fri May 2 10:04:17 1997 +++ linux-2.0.30/arch/i386/kernel/bios32.c Tue Jul 1 18:01:02 1997 @@ -116,12 +116,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 @@ -143,7 +144,7 @@ static struct pci_access *access_pci = NULL; - +#ifdef CONFIG_PCI_BIOS /* * Returns the entry point for the given service, NULL on error */ @@ -431,7 +432,7 @@ pci_bios_write_config_word, pci_bios_write_config_dword }; - +#endif /* CONFIG_PCI_BIOS */ /* @@ -872,6 +873,7 @@ 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; @@ -915,6 +917,9 @@ if (bios32_entry) { memory_start = check_pcibios (memory_start, memory_end); } +#else + access_pci = check_direct_pci(); +#endif /* CONFIG_PCI_BIOS */ #endif return memory_start; }