patch-2.2.18 linux/include/asm-ppc/pci-bridge.h
Next file: linux/include/asm-ppc/pci.h
Previous file: linux/include/asm-ppc/page.h
Back to the patch index
Back to the overall index
- Lines: 35
- Date:
Wed Nov 8 23:00:35 2000
- Orig file:
v2.2.17/include/asm-ppc/pci-bridge.h
- Orig date:
Fri Apr 21 12:46:49 2000
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/include/asm-ppc/pci-bridge.h linux/include/asm-ppc/pci-bridge.h
@@ -6,9 +6,26 @@
/*
* pci_io_base returns the memory address at which you can access
* the I/O space for PCI bus number `bus' (or NULL on error).
+ *
+ * NOTE: This doesn't handle the new Uni-N chip which requires
+ * per-device io_base.
*/
void *pci_io_base(unsigned int bus);
+/* This version handles the new Uni-N host bridge, the iobase is now
+ * a per-device thing. I also added the memory base so PReP can
+ * be fixed to return 0xc0000000 (I didn't actually implement it)
+ *
+ * pci_dev_io_base() returns either a virtual (ioremap'ed) address or
+ * a physical address. In-kernel clients will use logical while the
+ * sys_pciconfig_iobase syscall returns a physical one to userland.
+ */
+void *pci_dev_io_base(unsigned char bus, unsigned char devfn, int physical);
+void *pci_dev_mem_base(unsigned char bus, unsigned char devfn);
+
+/* Returns the root-bridge number (Uni-N number) of a device */
+int pci_dev_root_bridge(unsigned char bus, unsigned char devfn);
+
/*
* pci_device_loc returns the bus number and device/function number
* for a device on a PCI bus, given its device_node struct.
@@ -20,6 +37,7 @@
struct bridge_data {
volatile unsigned int *cfg_addr;
volatile unsigned char *cfg_data;
+ void *io_base_phys;
void *io_base;
int bus_number;
int max_bus;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)