Logo Search packages:      
Sourcecode: linux version File versions

mcfpci.h

/****************************************************************************/

/*
 *    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 */

Generated by  Doxygen 1.6.0   Back to index