|
|
1.1 ! root 1: #ifndef PCI_H ! 2: #define PCI_H ! 3: ! 4: #define PCI_VENDOR_ID 0x00 ! 5: #define PCI_DEVICE_ID 0x02 ! 6: ! 7: #define PCI_COMMAND 0x04 ! 8: #define PCI_COMMAND_IO 0x01 ! 9: #define PCI_COMMAND_MEMORY 0x02 ! 10: ! 11: #define PCI_STATUS 0x06 /* 16 bits */ ! 12: #define PCI_STATUS_CAP_LIST 0x10 /* Support Capability List */ ! 13: #define PCI_STATUS_66MHZ 0x20 /* Support 66 Mhz PCI 2.1 bus */ ! 14: #define PCI_STATUS_UDF 0x40 /* Support User Definable Features ! 15: [obsolete] */ ! 16: #define PCI_STATUS_FAST_BACK 0x80 /* Accept fast-back to back */ ! 17: #define PCI_STATUS_PARITY 0x100 /* Detected parity error */ ! 18: #define PCI_STATUS_DEVSEL_MASK 0x600 /* DEVSEL timing */ ! 19: #define PCI_STATUS_DEVSEL_FAST 0x000 ! 20: #define PCI_STATUS_DEVSEL_MEDIUM 0x200 ! 21: #define PCI_STATUS_DEVSEL_SLOW 0x400 ! 22: #define PCI_STATUS_SIG_TARGET_ABORT 0x800 /* Set on target abort */ ! 23: #define PCI_STATUS_REC_TARGET_ABORT 0x1000 /* Master ack of " */ ! 24: #define PCI_STATUS_REC_MASTER_ABORT 0x2000 /* Set on master abort */ ! 25: #define PCI_STATUS_SIG_SYSTEM_ERROR 0x4000 /* Set when we drive SERR */ ! 26: #define PCI_STATUS_DETECTED_PARITY 0x8000 /* Set on parity error */ ! 27: ! 28: ! 29: #define PCI_REVISION_ID 0x08 /* Revision ID */ ! 30: #define PCI_CLASS_PROG 0x09 ! 31: #define PCI_CLASS_DEVICE 0x0a ! 32: #define PCI_CACHE_LINE_SIZE 0x0c /* 8 bits */ ! 33: #define PCI_HEADER_TYPE 0x0e ! 34: #define PCI_HEADER_TYPE_NORMAL 0x00 ! 35: #define PCI_HEADER_TYPE_BRIDGE 0x01 ! 36: #define PCI_HEADER_TYPE_CARDBUS 0x02 ! 37: #define PCI_PRIMARY_BUS 0x18 ! 38: #define PCI_SECONDARY_BUS 0x19 ! 39: #define PCI_SUBORDINATE_BUS 0x1A ! 40: #define PCI_BASE_ADDR_0 0x10 ! 41: #define PCI_BASE_ADDR_1 0x14 ! 42: #define PCI_BASE_ADDR_2 0x18 ! 43: #define PCI_BASE_ADDR_3 0x1c ! 44: #define PCI_BASE_ADDR_4 0x20 ! 45: #define PCI_BASE_ADDR_5 0x24 ! 46: ! 47: #define PCI_SUBSYSTEM_VENDOR_ID 0x2c ! 48: #define PCI_SUBSYSTEM_ID 0x2e ! 49: ! 50: #define PCI_ROM_ADDRESS 0x30 /* Bits 31..11 are address, 10..1 reserved */ ! 51: #define PCI_ROM_ADDRESS_ENABLE 0x01 ! 52: #define PCI_ROM_ADDRESS_MASK (~0x7ffUL) ! 53: #define PCI_ROM_ADDRESS1 0x38 /* ROM_ADDRESS in bridge header */ ! 54: ! 55: #define PCI_INTERRUPT_LINE 0x3c /* 8 bits */ ! 56: #define PCI_INTERRUPT_PIN 0x3d /* 8 bits */ ! 57: #define PCI_MIN_GNT 0x3e /* 8 bits */ ! 58: #define PCI_MAX_LAT 0x3f /* 8 bits */ ! 59: ! 60: typedef struct { ! 61: u16 signature; ! 62: u8 reserved[0x16]; ! 63: u16 dptr; ! 64: } rom_header_t; ! 65: ! 66: typedef struct { ! 67: u32 signature; ! 68: u16 vendor; ! 69: u16 device; ! 70: u16 reserved_1; ! 71: u16 dlen; ! 72: u8 drevision; ! 73: u8 class_hi; ! 74: u16 class_lo; ! 75: u16 ilen; ! 76: u16 irevision; ! 77: u8 type; ! 78: u8 indicator; ! 79: u16 reserved_2; ! 80: } pci_data_t; ! 81: ! 82: ! 83: #include "asm/pci.h" ! 84: ! 85: #endif /* PCI_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.