RTEMS  5.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
pci.h
1 /*
2  * PCI defines and function prototypes
3  *
4  * For more information, please consult the following manuals (look at
5  * http://www.pcisig.com/ for how to get them):
6  *
7  * PCI BIOS Specification
8  * PCI Local Bus Specification
9  * PCI to PCI Bridge Specification
10  * PCI System Design Guide
11  */
12 
13 /*
14  * Copyright 1994, Drew Eckhardt
15  * Copyright 1997, 1998 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
16  */
17 
18 #ifndef BSP_POWERPC_PCI_H
19 #define BSP_POWERPC_PCI_H
20 
21 #include <rtems/pci.h>
22 #include <stdio.h>
23 
24 struct _pin_routes
25 {
26  int pin;
27  int int_name[4];
28 };
29 struct _int_map
30 {
31  int bus;
32  int slot;
33  int opts;
34  struct _pin_routes pin_route[5];
35 };
36 
37 /* If there's a conflict between a name in the routing table and
38  * what's already set on the device, reprogram the device setting
39  * to reflect int_name[0] for the routing table entry
40  */
41 #define PCI_FIXUP_OPT_OVERRIDE_NAME (1<<0)
42 
43 /*
44  * This is assumed to be provided by the BSP.
45  */
46 void detect_host_bridge(void);
47 
48 void FixupPCI( const struct _int_map *, int (*swizzler)(int,int) );
49 
50 /* FIXME: This probably belongs into rtems/pci.h */
51 extern unsigned char pci_bus_count(void);
52 
53 /* FIXME: This also is generic and could go into rtems/pci.h */
54 
55 /* Scan pci config space and run a user callback on each
56  * device present; the user callback may return 0 to
57  * continue the scan or a value > 0 to abort the scan.
58  * Return values < 0 are reserved and must not be used.
59  *
60  * RETURNS: a (opaque) handle pointing to the bus/slot/fn-triple
61  * just after where the scan was aborted by a callback
62  * returning 1 (see above) or NULL if all devices were
63  * scanned.
64  * The handle may be passed to this routine to resume the
65  * scan continuing with the device after the one causing the
66  * abort.
67  * Pass a NULL 'handle' argument to start scanning from
68  * the beginning (bus/slot/fn = 0/0/0).
69  */
70 typedef void *BSP_PciScanHandle;
71 typedef int (*BSP_PciScannerCb)(int bus, int slot, int fun, void *uarg);
72 
73 BSP_PciScanHandle
74 BSP_pciScan(BSP_PciScanHandle handle, BSP_PciScannerCb cb, void *uarg);
75 
76 /* Dump basic config. space info to a file. The argument may
77  * be NULL in which case 'stdout' is used.
78  * NOTE: the C-library must be functional before you can use
79  * this routine.
80  */
81 void
82 BSP_pciConfigDump(FILE *fp);
83 
84 #endif /* BSP_POWERPC_PCI_H */
#define fp
frame-pointer */
Definition: regs.h:65
Definition: pci.h:40
Definition: pci.h:36