120 lines
3.1 KiB
C
120 lines
3.1 KiB
C
|
/****************************************************************************/
|
||
|
|
||
|
/*
|
||
|
* 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 */
|