patch-pre2.0.14-final2.0 linux/arch/alpha/kernel/bios32.c
Next file: linux/arch/alpha/kernel/cia.c
Previous file: linux/arch/alpha/defconfig
Back to the patch index
Back to the overall index
- Lines: 48
- Date:
Sat Jun 8 11:24:57 1996
- Orig file:
pre2.0.14/linux/arch/alpha/kernel/bios32.c
- Orig date:
Wed Jun 5 10:41:27 1996
diff -u --recursive --new-file pre2.0.14/linux/arch/alpha/kernel/bios32.c linux/arch/alpha/kernel/bios32.c
@@ -87,7 +87,10 @@
#if PCI_MODIFY
-#if defined(CONFIG_ALPHA_MIKASA) || defined(CONFIG_ALPHA_ALCOR)
+/* NOTE: we can't just blindly use 64K for machines with EISA busses; they
+ may also have PCI-PCI bridges present, and then we'd configure the bridge
+ incorrectly */
+#if 0
static unsigned int io_base = 64*KB; /* <64KB are (E)ISA ports */
#else
static unsigned int io_base = 0xb000;
@@ -122,7 +125,7 @@
* itself as a bridge... :-(
*/
if (dev->vendor == 0x8086 && dev->device == 0x0482) {
- DBG_DEVS(("disable_dev: ignoring...\n"));
+ DBG_DEVS(("disable_dev: ignoring PCEB...\n"));
return;
}
#endif
@@ -148,6 +151,17 @@
unsigned int base, mask, size, reg;
unsigned int alignto;
+#if defined(CONFIG_ALPHA_MIKASA) || defined(CONFIG_ALPHA_ALCOR)
+ /*
+ * HACK: the PCI-to-EISA bridge does not seem to identify
+ * itself as a bridge... :-(
+ */
+ if (dev->vendor == 0x8086 && dev->device == 0x0482) {
+ DBG_DEVS(("layout_dev: ignoring PCEB...\n"));
+ return;
+ }
+#endif
+
bus = dev->bus;
pcibios_read_config_word(bus->number, dev->devfn, PCI_COMMAND, &cmd);
@@ -352,7 +366,7 @@
*/
pcibios_read_config_dword(bridge->bus->number, bridge->devfn,
0x1c, &l);
- l = (l & 0xffff0000) | (bio >> 8) | ((tio - 1) & 0xf000);
+ l = (l & 0xffff0000) | ((bio >> 8) & 0x00f0) | ((tio - 1) & 0xf000);
pcibios_write_config_dword(bridge->bus->number, bridge->devfn,
0x1c, l);
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this