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