RTEMS 5.2
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
24struct _pin_routes
25{
26 int pin;
27 int int_name[4];
28};
29struct _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 */
46void detect_host_bridge(void);
47
48void FixupPCI( const struct _int_map *, int (*swizzler)(int,int) );
49
50/* FIXME: This probably belongs into rtems/pci.h */
51extern 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 */
70typedef void *BSP_PciScanHandle;
71typedef int (*BSP_PciScannerCb)(int bus, int slot, int fun, void *uarg);
72
73BSP_PciScanHandle
74BSP_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 */
81void
82BSP_pciConfigDump(FILE *fp);
83
84#endif /* BSP_POWERPC_PCI_H */
#define fp
frame-pointer *‍/
Definition: regs.h:65
Definition: pci.h:41
Definition: pci.h:37