void cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus, cyg_uint32 devfn, cyg_uint32 offset, cyg_uint8 val) { if (gapspci_initialized && BBA_SELECTED(bus, devfn)) HAL_WRITE_UINT8(GAPSPCI_BBA_CONFIG+offset, val); }
cyg_uint8 cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus, cyg_uint32 devfn, cyg_uint32 offset) { cyg_uint8 val; if (!gapspci_initialized || !BBA_SELECTED(bus, devfn)) return 0xff; HAL_READ_UINT8(GAPSPCI_BBA_CONFIG+offset, val); return val; }
static int gapspci_write(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val) { if (BBA_SELECTED(bus, devfn)) { switch (size) { case 1: if (BBA_SELECTED(bus, devfn)) outb((u8)val, GAPSPCI_BBA_CONFIG+where); break; case 2: if (BBA_SELECTED(bus, devfn)) outw((u16)val, GAPSPCI_BBA_CONFIG+where); break; case 4: if (BBA_SELECTED(bus, devfn)) outl(val, GAPSPCI_BBA_CONFIG+where); break; } } return PCIBIOS_SUCCESSFUL; }
void __init pcibios_fixup_bus(struct pci_bus *bus) { struct list_head *ln; struct pci_dev *dev; for (ln=bus->devices.next; ln != &bus->devices; ln=ln->next) { dev = pci_dev_b(ln); if (!BBA_SELECTED(bus, dev->devfn)) continue; printk("PCI: MMIO fixup to %s\n", dev->dev.name); dev->resource[1].start=0x01001700; dev->resource[1].end=0x010017ff; } }
static int gapspci_read(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 * val) { switch (size) { case 1: if (BBA_SELECTED(bus, devfn)) *val = (u8)inb(GAPSPCI_BBA_CONFIG+where); else *val = (u8)0xff; break; case 2: if (BBA_SELECTED(bus, devfn)) *val = (u16)inw(GAPSPCI_BBA_CONFIG+where); else *val = (u16)0xffff; break; case 4: if (BBA_SELECTED(bus, devfn)) *val = inl(GAPSPCI_BBA_CONFIG+where); else *val = 0xffffffff; break; } return PCIBIOS_SUCCESSFUL; }