source: rtems/c/src/lib/libbsp/powerpc/shared/pci/pci.h @ 98afe31

4.104.114.84.9
Last change on this file since 98afe31 was 98afe31, checked in by Till Straumann <strauman@…>, on Nov 4, 2005 at 3:34:08 AM

2005-11-03 Till Straumann <strauman@…>

  • shared/motorola/motorola.c, shared/pci/detect_raven_bridge.c, shared/pci/pci.c, shared/pci/pci.h, shared/pci/pcifinddevice.c: Several PCI enhancements and fixes: all BSP flavors now use the generic clear_hostbridge_errors() routine (this means that only polling memory probing is possible [see detect_raven_bridge.c for details]). Interrupt fixup routine now supports multi-function devices. Interrupt fixup routine now honours a flag/option so that wrong firmware values can be overridden. Fixed irq routing table for mvme2100 [PMC]. Added irq routing table for mvme2300. Added a BSP_pciScan() routine that executes a user callback on each non-empty slot/fun. Added BSP_pciConfigDump() to display basic config headers.
  • Property mode set to 100644
File size: 2.2 KB
Line 
1/*
2 *
3 *      PCI defines and function prototypes
4 *      Copyright 1994, Drew Eckhardt
5 *      Copyright 1997, 1998 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
6 *
7 *      For more information, please consult the following manuals (look at
8 *      http://www.pcisig.com/ for how to get them):
9 *
10 *      PCI BIOS Specification
11 *      PCI Local Bus Specification
12 *      PCI to PCI Bridge Specification
13 *      PCI System Design Guide
14 *
15 * $Id$
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, int_name[4];
27};
28struct _int_map
29{
30      int bus, slot, opts;
31      struct _pin_routes pin_route[5];
32};
33
34/* If there's a conflict between a name in the routing table and
35 * what's already set on the device, reprogram the device setting
36 * to reflect int_name[0] for the routing table entry
37 */
38#define PCI_FIXUP_OPT_OVERRIDE_NAME     (1<<0)
39
40void FixupPCI( const struct _int_map *, int (*swizzler)(int,int) );
41
42/* FIXME: This probably belongs into rtems/pci.h */
43extern unsigned char pci_bus_count();
44
45/* FIXME: This also is generic and could go into rtems/pci.h */
46
47/* Scan pci config space and run a user callback on each
48 * device present; the user callback may return 0 to
49 * continue the scan or a value > 0 to abort the scan.
50 * Return values < 0 are reserved and must not be used.
51 *
52 * RETURNS: a (opaque) handle pointing to the bus/slot/fn-triple
53 *          just after where the scan was aborted by a callback
54 *          returning 1 (see above) or NULL if all devices were
55 *          scanned.
56 *          The handle may be passed to this routine to resume the
57 *          scan continuing with the device after the one causing the
58 *          abort.
59 *          Pass a NULL 'handle' argument to start scanning from
60 *          the beginning (bus/slot/fn = 0/0/0).
61 */
62typedef void *BSP_PciScanHandle;
63typedef int (*BSP_PciScannerCb)(int bus, int slot, int fun, void *uarg);
64
65BSP_PciScanHandle
66BSP_pciScan(BSP_PciScanHandle handle, BSP_PciScannerCb cb, void *uarg);
67
68/* Dump basic config. space info to a file. The argument may
69 * be NULL in which case 'stdout' is used.
70 * NOTE: the C-library must be functional before you can use
71 *       this routine.
72 */
73void
74BSP_pciConfigDump(FILE *fp);
75
76#endif /* BSP_POWERPC_PCI_H */
Note: See TracBrowser for help on using the repository browser.