/****************************************************************************/ /* * mcfpci.h -- PCI bridge on ColdFire eval boards. * * (C) Copyright 2000, Greg Ungerer (gerg@snapgear.com) * (C) Copyright 2000, Lineo Inc. (www.lineo.com) */ /****************************************************************************/ #ifndef mcfpci_h #define mcfpci_h /****************************************************************************/ #ifdef CONFIG_PCI /* * Address regions in the PCI address space are not mapped into the * normal memory space of the ColdFire. They must be accessed via * handler routines. This is easy for I/O space (inb/outb/etc) but * needs some code changes to support ordinary memory. Interrupts * also need to be vectored through the PCI handler first, then it * will call the actual driver sub-handlers. */ /* * Un-define all the standard I/O access routines. */ #undef inb #undef inw #undef inl #undef inb_p #undef inw_p #undef insb #undef insw #undef insl #undef outb #undef outw #undef outl #undef outb_p #undef outw_p #undef outsb #undef outsw #undef outsl #undef request_irq #undef free_irq #undef bus_to_virt #undef virt_to_bus /* * Re-direct all I/O memory accesses functions to PCI specific ones. */ #define inb pci_inb #define inw pci_inw #define inl pci_inl #define inb_p pci_inb #define inw_p pci_inw #define insb pci_insb #define insw pci_insw #define insl pci_insl #define outb pci_outb #define outw pci_outw #define outl pci_outl #define outb_p pci_outb #define outw_p pci_outw #define outsb pci_outsb #define outsw pci_outsw #define outsl pci_outsl #define request_irq pci_request_irq #define free_irq pci_free_irq #define virt_to_bus pci_virt_to_bus #define bus_to_virt pci_bus_to_virt #define CONFIG_COMEMPCI 1 /* * Prototypes of the real PCI functions (defined in bios32.c). */ unsigned char pci_inb(unsigned int addr); unsigned short pci_inw(unsigned int addr); unsigned int pci_inl(unsigned int addr); void pci_insb(void *addr, void *buf, int len); void pci_insw(void *addr, void *buf, int len); void pci_insl(void *addr, void *buf, int len); void pci_outb(unsigned char val, unsigned int addr); void pci_outw(unsigned short val, unsigned int addr); void pci_outl(unsigned int val, unsigned int addr); void pci_outsb(void *addr, void *buf, int len); void pci_outsw(void *addr, void *buf, int len); void pci_outsl(void *addr, void *buf, int len); int pci_request_irq(unsigned int irq, void (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *device, void *dev_id); void pci_free_irq(unsigned int irq, void *dev_id); void *pci_bmalloc(int size); void pci_bmfree(void *bmp, int len); void pci_copytoshmem(unsigned long bmp, void *src, int size); void pci_copyfromshmem(void *dst, unsigned long bmp, int size); unsigned long pci_virt_to_bus(volatile void *address); void *pci_bus_to_virt(unsigned long address); void pci_bmcpyto(void *dst, void *src, int len); void pci_bmcpyfrom(void *dst, void *src, int len); #endif /* CONFIG_PCI */ /****************************************************************************/ #endif /* mcfpci_h */