Commit deb54399df163e782aff00beb106f3b6a7cc9663
1 parent
90a1e3c0
Define PCI vendor and device IDs in pci.h (Stuart Brady)
This patch defines PCI vendor and device IDs in pci.h (matching those from Linux's pci_ids.h), and uses those definitions where appropriate. Change from v1: Introduces pci_config_set_vendor_id() / pci_config_set_device_id() accessors as suggested by Anthony Liguori. Signed-off-by: Stuart Brady <stuart.brady@gmail.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6442 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
29 changed files
with
157 additions
and
159 deletions
hw/ac97.c
... | ... | @@ -1336,11 +1336,8 @@ int ac97_init (PCIBus *bus, AudioState *audio) |
1336 | 1336 | s = &d->ac97; |
1337 | 1337 | s->pci_dev = &d->dev; |
1338 | 1338 | c = d->dev.config; |
1339 | - c[0x00] = 0x86; /* vid vendor id intel ro */ | |
1340 | - c[0x01] = 0x80; /* intel */ | |
1341 | - | |
1342 | - c[0x02] = 0x15; /* did device id 82801 ro */ | |
1343 | - c[0x03] = 0x24; /* 82801aa */ | |
1339 | + pci_config_set_vendor_id(c, PCI_VENDOR_ID_INTEL); /* ro */ | |
1340 | + pci_config_set_device_id(c, PCI_DEVICE_ID_INTEL_82801AA_5); /* ro */ | |
1344 | 1341 | |
1345 | 1342 | c[0x04] = 0x00; /* pcicmd pci command rw, ro */ |
1346 | 1343 | c[0x05] = 0x00; | ... | ... |
hw/acpi.c
... | ... | @@ -503,10 +503,8 @@ i2c_bus *piix4_pm_init(PCIBus *bus, int devfn, uint32_t smb_io_base, |
503 | 503 | devfn, NULL, pm_write_config); |
504 | 504 | pm_state = s; |
505 | 505 | pci_conf = s->dev.config; |
506 | - pci_conf[0x00] = 0x86; | |
507 | - pci_conf[0x01] = 0x80; | |
508 | - pci_conf[0x02] = 0x13; | |
509 | - pci_conf[0x03] = 0x71; | |
506 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
507 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_INTEL_82371AB_3); | |
510 | 508 | pci_conf[0x06] = 0x80; |
511 | 509 | pci_conf[0x07] = 0x02; |
512 | 510 | pci_conf[0x08] = 0x03; // revision number | ... | ... |
hw/apb_pci.c
... | ... | @@ -252,10 +252,8 @@ PCIBus *pci_apb_init(target_phys_addr_t special_base, |
252 | 252 | |
253 | 253 | d = pci_register_device(s->bus, "Advanced PCI Bus", sizeof(PCIDevice), |
254 | 254 | 0, NULL, NULL); |
255 | - d->config[0x00] = 0x8e; // vendor_id : Sun | |
256 | - d->config[0x01] = 0x10; | |
257 | - d->config[0x02] = 0x00; // device_id | |
258 | - d->config[0x03] = 0xa0; | |
255 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_SUN); | |
256 | + pci_config_set_device_id(d->config, PCI_DEVICE_ID_SUN_SABRE); | |
259 | 257 | d->config[0x04] = 0x06; // command = bus master, pci mem |
260 | 258 | d->config[0x05] = 0x00; |
261 | 259 | d->config[0x06] = 0xa0; // status = fast back-to-back, 66MHz, no error | ... | ... |
hw/cirrus_vga.c
... | ... | @@ -173,8 +173,7 @@ |
173 | 173 | #define CIRRUS_MMIO_LINEDRAW_MODE 0x39 // byte |
174 | 174 | #define CIRRUS_MMIO_BLTSTATUS 0x40 // byte |
175 | 175 | |
176 | -// PCI 0x00: vendor, 0x02: device | |
177 | -#define PCI_VENDOR_CIRRUS 0x1013 | |
176 | +// PCI 0x02: device | |
178 | 177 | #define PCI_DEVICE_CLGD5462 0x00d0 |
179 | 178 | #define PCI_DEVICE_CLGD5465 0x00d6 |
180 | 179 | |
... | ... | @@ -3376,10 +3375,8 @@ void pci_cirrus_vga_init(PCIBus *bus, uint8_t *vga_ram_base, |
3376 | 3375 | sizeof(PCICirrusVGAState), |
3377 | 3376 | -1, NULL, pci_cirrus_write_config); |
3378 | 3377 | pci_conf = d->dev.config; |
3379 | - pci_conf[0x00] = (uint8_t) (PCI_VENDOR_CIRRUS & 0xff); | |
3380 | - pci_conf[0x01] = (uint8_t) (PCI_VENDOR_CIRRUS >> 8); | |
3381 | - pci_conf[0x02] = (uint8_t) (device_id & 0xff); | |
3382 | - pci_conf[0x03] = (uint8_t) (device_id >> 8); | |
3378 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_CIRRUS); | |
3379 | + pci_config_set_device_id(pci_conf, device_id); | |
3383 | 3380 | pci_conf[0x04] = PCI_COMMAND_IOACCESS | PCI_COMMAND_MEMACCESS; |
3384 | 3381 | pci_conf[0x0a] = PCI_CLASS_SUB_VGA; |
3385 | 3382 | pci_conf[0x0b] = PCI_CLASS_BASE_DISPLAY; | ... | ... |
hw/e1000.c
... | ... | @@ -1049,8 +1049,8 @@ pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn) |
1049 | 1049 | pci_conf = d->dev.config; |
1050 | 1050 | memset(pci_conf, 0, 256); |
1051 | 1051 | |
1052 | - *(uint16_t *)(pci_conf+0x00) = cpu_to_le16(0x8086); | |
1053 | - *(uint16_t *)(pci_conf+0x02) = cpu_to_le16(E1000_DEVID); | |
1052 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
1053 | + pci_config_set_device_id(pci_conf, E1000_DEVID); | |
1054 | 1054 | *(uint16_t *)(pci_conf+0x04) = cpu_to_le16(0x0407); |
1055 | 1055 | *(uint16_t *)(pci_conf+0x06) = cpu_to_le16(0x0010); |
1056 | 1056 | pci_conf[0x08] = 0x03; | ... | ... |
hw/eepro100.c
... | ... | @@ -422,9 +422,9 @@ static void pci_reset(EEPRO100State * s) |
422 | 422 | logout("%p\n", s); |
423 | 423 | |
424 | 424 | /* PCI Vendor ID */ |
425 | - PCI_CONFIG_16(PCI_VENDOR_ID, 0x8086); | |
425 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
426 | 426 | /* PCI Device ID */ |
427 | - PCI_CONFIG_16(PCI_DEVICE_ID, 0x1209); | |
427 | + pci_config_set_device_id(pci_conf, 0x1209); | |
428 | 428 | /* PCI Command */ |
429 | 429 | PCI_CONFIG_16(PCI_COMMAND, 0x0000); |
430 | 430 | /* PCI Status */ | ... | ... |
hw/es1370.c
... | ... | @@ -1031,10 +1031,8 @@ int es1370_init (PCIBus *bus, AudioState *audio) |
1031 | 1031 | } |
1032 | 1032 | |
1033 | 1033 | c = d->dev.config; |
1034 | - c[0x00] = 0x74; | |
1035 | - c[0x01] = 0x12; | |
1036 | - c[0x02] = 0x00; | |
1037 | - c[0x03] = 0x50; | |
1034 | + pci_config_set_vendor_id(c, PCI_VENDOR_ID_ENSONIQ); | |
1035 | + pci_config_set_device_id(c, PCI_DEVICE_ID_ENSONIQ_ES1370); | |
1038 | 1036 | c[0x07] = 2 << 1; |
1039 | 1037 | c[0x0a] = 0x01; |
1040 | 1038 | c[0x0b] = 0x04; | ... | ... |
hw/grackle_pci.c
... | ... | @@ -144,10 +144,8 @@ PCIBus *pci_grackle_init(uint32_t base, qemu_irq *pic) |
144 | 144 | cpu_register_physical_memory(base + 0x00200000, 0x1000, pci_mem_data); |
145 | 145 | d = pci_register_device(s->bus, "Grackle host bridge", sizeof(PCIDevice), |
146 | 146 | 0, NULL, NULL); |
147 | - d->config[0x00] = 0x57; // vendor_id | |
148 | - d->config[0x01] = 0x10; | |
149 | - d->config[0x02] = 0x02; // device_id | |
150 | - d->config[0x03] = 0x00; | |
147 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_MOTOROLA); | |
148 | + pci_config_set_device_id(d->config, PCI_DEVICE_ID_MOTOROLA_MPC106); | |
151 | 149 | d->config[0x08] = 0x00; // revision |
152 | 150 | d->config[0x09] = 0x01; |
153 | 151 | d->config[0x0a] = 0x00; // class_sub = host | ... | ... |
hw/gt64xxx.c
... | ... | @@ -1136,10 +1136,8 @@ PCIBus *pci_gt64120_init(qemu_irq *pic) |
1136 | 1136 | |
1137 | 1137 | /* FIXME: Malta specific hw assumptions ahead */ |
1138 | 1138 | |
1139 | - d->config[0x00] = 0xab; /* vendor_id */ | |
1140 | - d->config[0x01] = 0x11; | |
1141 | - d->config[0x02] = 0x20; /* device_id */ | |
1142 | - d->config[0x03] = 0x46; | |
1139 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_MARVELL); | |
1140 | + pci_config_set_device_id(d->config, 0x4620); /* device_id */ | |
1143 | 1141 | |
1144 | 1142 | d->config[0x04] = 0x00; |
1145 | 1143 | d->config[0x05] = 0x00; | ... | ... |
hw/ide.c
... | ... | @@ -3342,10 +3342,8 @@ void pci_cmd646_ide_init(PCIBus *bus, BlockDriverState **hd_table, |
3342 | 3342 | NULL, NULL); |
3343 | 3343 | d->type = IDE_TYPE_CMD646; |
3344 | 3344 | pci_conf = d->dev.config; |
3345 | - pci_conf[0x00] = 0x95; // CMD646 | |
3346 | - pci_conf[0x01] = 0x10; | |
3347 | - pci_conf[0x02] = 0x46; | |
3348 | - pci_conf[0x03] = 0x06; | |
3345 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_CMD); | |
3346 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_CMD_646); | |
3349 | 3347 | |
3350 | 3348 | pci_conf[0x08] = 0x07; // IDE controller revision |
3351 | 3349 | pci_conf[0x09] = 0x8f; |
... | ... | @@ -3417,10 +3415,8 @@ void pci_piix3_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn, |
3417 | 3415 | d->type = IDE_TYPE_PIIX3; |
3418 | 3416 | |
3419 | 3417 | pci_conf = d->dev.config; |
3420 | - pci_conf[0x00] = 0x86; // Intel | |
3421 | - pci_conf[0x01] = 0x80; | |
3422 | - pci_conf[0x02] = 0x10; | |
3423 | - pci_conf[0x03] = 0x70; | |
3418 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
3419 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_INTEL_82371SB_1); | |
3424 | 3420 | pci_conf[0x09] = 0x80; // legacy ATA mode |
3425 | 3421 | pci_conf[0x0a] = 0x01; // class_sub = PCI_IDE |
3426 | 3422 | pci_conf[0x0b] = 0x01; // class_base = PCI_mass_storage |
... | ... | @@ -3456,10 +3452,8 @@ void pci_piix4_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn, |
3456 | 3452 | d->type = IDE_TYPE_PIIX4; |
3457 | 3453 | |
3458 | 3454 | pci_conf = d->dev.config; |
3459 | - pci_conf[0x00] = 0x86; // Intel | |
3460 | - pci_conf[0x01] = 0x80; | |
3461 | - pci_conf[0x02] = 0x11; | |
3462 | - pci_conf[0x03] = 0x71; | |
3455 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
3456 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_INTEL_82371AB); | |
3463 | 3457 | pci_conf[0x09] = 0x80; // legacy ATA mode |
3464 | 3458 | pci_conf[0x0a] = 0x01; // class_sub = PCI_IDE |
3465 | 3459 | pci_conf[0x0b] = 0x01; // class_base = PCI_mass_storage | ... | ... |
hw/lsi53c895a.c
... | ... | @@ -1963,6 +1963,7 @@ void lsi_scsi_attach(void *opaque, BlockDriverState *bd, int id) |
1963 | 1963 | void *lsi_scsi_init(PCIBus *bus, int devfn) |
1964 | 1964 | { |
1965 | 1965 | LSIState *s; |
1966 | + uint8_t *pci_conf; | |
1966 | 1967 | |
1967 | 1968 | s = (LSIState *)pci_register_device(bus, "LSI53C895A SCSI HBA", |
1968 | 1969 | sizeof(*s), devfn, NULL, NULL); |
... | ... | @@ -1971,21 +1972,21 @@ void *lsi_scsi_init(PCIBus *bus, int devfn) |
1971 | 1972 | return NULL; |
1972 | 1973 | } |
1973 | 1974 | |
1975 | + pci_conf = s->pci_dev.config; | |
1976 | + | |
1974 | 1977 | /* PCI Vendor ID (word) */ |
1975 | - s->pci_dev.config[0x00] = 0x00; | |
1976 | - s->pci_dev.config[0x01] = 0x10; | |
1978 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_LSI_LOGIC); | |
1977 | 1979 | /* PCI device ID (word) */ |
1978 | - s->pci_dev.config[0x02] = 0x12; | |
1979 | - s->pci_dev.config[0x03] = 0x00; | |
1980 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_LSI_53C895A); | |
1980 | 1981 | /* PCI base class code */ |
1981 | - s->pci_dev.config[0x0b] = 0x01; | |
1982 | + pci_conf[0x0b] = 0x01; | |
1982 | 1983 | /* PCI subsystem ID */ |
1983 | - s->pci_dev.config[0x2e] = 0x00; | |
1984 | - s->pci_dev.config[0x2f] = 0x10; | |
1984 | + pci_conf[0x2e] = 0x00; | |
1985 | + pci_conf[0x2f] = 0x10; | |
1985 | 1986 | /* PCI latency timer = 255 */ |
1986 | - s->pci_dev.config[0x0d] = 0xff; | |
1987 | + pci_conf[0x0d] = 0xff; | |
1987 | 1988 | /* Interrupt pin 1 */ |
1988 | - s->pci_dev.config[0x3d] = 0x01; | |
1989 | + pci_conf[0x3d] = 0x01; | |
1989 | 1990 | |
1990 | 1991 | s->mmio_io_addr = cpu_register_io_memory(0, lsi_mmio_readfn, |
1991 | 1992 | lsi_mmio_writefn, s); | ... | ... |
hw/macio.c
... | ... | @@ -106,10 +106,9 @@ void macio_init (PCIBus *bus, int device_id, int is_oldworld, int pic_mem_index, |
106 | 106 | macio_state->ide_mem_index[i] = -1; |
107 | 107 | /* Note: this code is strongly inspirated from the corresponding code |
108 | 108 | in PearPC */ |
109 | - d->config[0x00] = 0x6b; // vendor_id | |
110 | - d->config[0x01] = 0x10; | |
111 | - d->config[0x02] = device_id; | |
112 | - d->config[0x03] = device_id >> 8; | |
109 | + | |
110 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_APPLE); | |
111 | + pci_config_set_device_id(d->config, device_id); | |
113 | 112 | |
114 | 113 | d->config[0x0a] = 0x00; // class_sub = pci2pci |
115 | 114 | d->config[0x0b] = 0xff; // class_base = bridge | ... | ... |
hw/ne2000.c
... | ... | @@ -790,10 +790,8 @@ void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn) |
790 | 790 | devfn, |
791 | 791 | NULL, NULL); |
792 | 792 | pci_conf = d->dev.config; |
793 | - pci_conf[0x00] = 0xec; // Realtek 8029 | |
794 | - pci_conf[0x01] = 0x10; | |
795 | - pci_conf[0x02] = 0x29; | |
796 | - pci_conf[0x03] = 0x80; | |
793 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_REALTEK); | |
794 | + pci_config_set_device_id(pci_conf, 0x8029); // Realtek 8029 | |
797 | 795 | pci_conf[0x0a] = 0x00; // ethernet network controller |
798 | 796 | pci_conf[0x0b] = 0x02; |
799 | 797 | pci_conf[0x0e] = 0x00; // header_type | ... | ... |
hw/openpic.c
... | ... | @@ -1017,10 +1017,8 @@ qemu_irq *openpic_init (PCIBus *bus, int *pmem_index, int nb_cpus, |
1017 | 1017 | if (opp == NULL) |
1018 | 1018 | return NULL; |
1019 | 1019 | pci_conf = opp->pci_dev.config; |
1020 | - pci_conf[0x00] = 0x14; // IBM MPIC2 | |
1021 | - pci_conf[0x01] = 0x10; | |
1022 | - pci_conf[0x02] = 0xFF; | |
1023 | - pci_conf[0x03] = 0xFF; | |
1020 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_IBM); | |
1021 | + pci_config_set_device_id(pci_conf, 0xffff); // MPIC2 | |
1024 | 1022 | pci_conf[0x0a] = 0x80; // PIC |
1025 | 1023 | pci_conf[0x0b] = 0x08; |
1026 | 1024 | pci_conf[0x0e] = 0x00; // header_type | ... | ... |
hw/pci.h
... | ... | @@ -8,7 +8,63 @@ |
8 | 8 | |
9 | 9 | extern target_phys_addr_t pci_mem_base; |
10 | 10 | |
11 | -/* see pci-ids.txt */ | |
11 | +#define PCI_VENDOR_ID_LSI_LOGIC 0x1000 | |
12 | +#define PCI_DEVICE_ID_LSI_53C895A 0x0012 | |
13 | + | |
14 | +#define PCI_VENDOR_ID_DEC 0x1011 | |
15 | + | |
16 | +#define PCI_VENDOR_ID_CIRRUS 0x1013 | |
17 | + | |
18 | +#define PCI_VENDOR_ID_IBM 0x1014 | |
19 | + | |
20 | +#define PCI_VENDOR_ID_AMD 0x1022 | |
21 | +#define PCI_DEVICE_ID_AMD_LANCE 0x2000 | |
22 | + | |
23 | +#define PCI_VENDOR_ID_HITACHI 0x1054 | |
24 | + | |
25 | +#define PCI_VENDOR_ID_MOTOROLA 0x1057 | |
26 | +#define PCI_DEVICE_ID_MOTOROLA_MPC106 0x0002 | |
27 | +#define PCI_DEVICE_ID_MOTOROLA_RAVEN 0x4801 | |
28 | + | |
29 | +#define PCI_VENDOR_ID_APPLE 0x106b | |
30 | +#define PCI_DEVICE_ID_APPLE_UNI_N_AGP 0x0020 | |
31 | + | |
32 | +#define PCI_VENDOR_ID_SUN 0x108e | |
33 | +#define PCI_DEVICE_ID_SUN_EBUS 0x1000 | |
34 | +#define PCI_DEVICE_ID_SUN_SABRE 0xa000 | |
35 | + | |
36 | +#define PCI_VENDOR_ID_CMD 0x1095 | |
37 | +#define PCI_DEVICE_ID_CMD_646 0x0646 | |
38 | + | |
39 | +#define PCI_VENDOR_ID_REALTEK 0x10ec | |
40 | +#define PCI_DEVICE_ID_REALTEK_8139 0x8139 | |
41 | + | |
42 | +#define PCI_VENDOR_ID_XILINX 0x10ee | |
43 | + | |
44 | +#define PCI_VENDOR_ID_MARVELL 0x11ab | |
45 | + | |
46 | +#define PCI_VENDOR_ID_ENSONIQ 0x1274 | |
47 | +#define PCI_DEVICE_ID_ENSONIQ_ES1370 0x5000 | |
48 | + | |
49 | +#define PCI_VENDOR_ID_VMWARE 0x15ad | |
50 | +#define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405 | |
51 | +#define PCI_DEVICE_ID_VMWARE_SVGA 0x0710 | |
52 | +#define PCI_DEVICE_ID_VMWARE_NET 0x0720 | |
53 | +#define PCI_DEVICE_ID_VMWARE_SCSI 0x0730 | |
54 | +#define PCI_DEVICE_ID_VMWARE_IDE 0x1729 | |
55 | + | |
56 | +#define PCI_VENDOR_ID_INTEL 0x8086 | |
57 | +#define PCI_DEVICE_ID_INTEL_82441 0x1237 | |
58 | +#define PCI_DEVICE_ID_INTEL_82801AA_5 0x2415 | |
59 | +#define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000 | |
60 | +#define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010 | |
61 | +#define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020 | |
62 | +#define PCI_DEVICE_ID_INTEL_82371AB_0 0x7110 | |
63 | +#define PCI_DEVICE_ID_INTEL_82371AB 0x7111 | |
64 | +#define PCI_DEVICE_ID_INTEL_82371AB_2 0x7112 | |
65 | +#define PCI_DEVICE_ID_INTEL_82371AB_3 0x7113 | |
66 | + | |
67 | +/* Red Hat / Qumranet (for QEMU) -- see pci-ids.txt */ | |
12 | 68 | #define PCI_VENDOR_ID_REDHAT_QUMRANET 0x1af4 |
13 | 69 | #define PCI_SUBVENDOR_ID_REDHAT_QUMRANET 0x1af4 |
14 | 70 | #define PCI_SUBDEVICE_ID_QEMU 0x1100 |
... | ... | @@ -130,6 +186,18 @@ void pci_info(void); |
130 | 186 | PCIBus *pci_bridge_init(PCIBus *bus, int devfn, uint32_t id, |
131 | 187 | pci_map_irq_fn map_irq, const char *name); |
132 | 188 | |
189 | +static inline void | |
190 | +pci_config_set_vendor_id(uint8_t *pci_config, uint16_t val) | |
191 | +{ | |
192 | + cpu_to_le16wu((uint16_t *)&pci_config[PCI_VENDOR_ID], val); | |
193 | +} | |
194 | + | |
195 | +static inline void | |
196 | +pci_config_set_device_id(uint8_t *pci_config, uint16_t val) | |
197 | +{ | |
198 | + cpu_to_le16wu((uint16_t *)&pci_config[PCI_DEVICE_ID], val); | |
199 | +} | |
200 | + | |
133 | 201 | /* lsi53c895a.c */ |
134 | 202 | #define LSI_MAX_DEVS 7 |
135 | 203 | void lsi_scsi_attach(void *opaque, BlockDriverState *bd, int id); | ... | ... |
hw/pcnet.c
... | ... | @@ -2000,8 +2000,8 @@ void pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn) |
2000 | 2000 | |
2001 | 2001 | pci_conf = d->dev.config; |
2002 | 2002 | |
2003 | - *(uint16_t *)&pci_conf[0x00] = cpu_to_le16(0x1022); | |
2004 | - *(uint16_t *)&pci_conf[0x02] = cpu_to_le16(0x2000); | |
2003 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_AMD); | |
2004 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_AMD_LANCE); | |
2005 | 2005 | *(uint16_t *)&pci_conf[0x04] = cpu_to_le16(0x0007); |
2006 | 2006 | *(uint16_t *)&pci_conf[0x06] = cpu_to_le16(0x0280); |
2007 | 2007 | pci_conf[0x08] = 0x10; | ... | ... |
hw/piix_pci.c
... | ... | @@ -192,10 +192,8 @@ PCIBus *i440fx_init(PCIDevice **pi440fx_state, qemu_irq *pic) |
192 | 192 | d = pci_register_device(b, "i440FX", sizeof(PCIDevice), 0, |
193 | 193 | NULL, i440fx_write_config); |
194 | 194 | |
195 | - d->config[0x00] = 0x86; // vendor_id | |
196 | - d->config[0x01] = 0x80; | |
197 | - d->config[0x02] = 0x37; // device_id | |
198 | - d->config[0x03] = 0x12; | |
195 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_INTEL); | |
196 | + pci_config_set_device_id(d->config, PCI_DEVICE_ID_INTEL_82441); | |
199 | 197 | d->config[0x08] = 0x02; // revision |
200 | 198 | d->config[0x0a] = 0x00; // class_sub = host2pci |
201 | 199 | d->config[0x0b] = 0x06; // class_base = PCI_bridge |
... | ... | @@ -337,10 +335,8 @@ int piix3_init(PCIBus *bus, int devfn) |
337 | 335 | piix3_dev = d; |
338 | 336 | pci_conf = d->config; |
339 | 337 | |
340 | - pci_conf[0x00] = 0x86; // Intel | |
341 | - pci_conf[0x01] = 0x80; | |
342 | - pci_conf[0x02] = 0x00; // 82371SB PIIX3 PCI-to-ISA bridge (Step A1) | |
343 | - pci_conf[0x03] = 0x70; | |
338 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
339 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_INTEL_82371SB_0); // 82371SB PIIX3 PCI-to-ISA bridge (Step A1) | |
344 | 340 | pci_conf[0x0a] = 0x01; // class_sub = PCI_ISA |
345 | 341 | pci_conf[0x0b] = 0x06; // class_base = PCI_bridge |
346 | 342 | pci_conf[0x0e] = 0x80; // header_type = PCI_multifunction, generic |
... | ... | @@ -361,10 +357,8 @@ int piix4_init(PCIBus *bus, int devfn) |
361 | 357 | piix4_dev = d; |
362 | 358 | pci_conf = d->config; |
363 | 359 | |
364 | - pci_conf[0x00] = 0x86; // Intel | |
365 | - pci_conf[0x01] = 0x80; | |
366 | - pci_conf[0x02] = 0x10; // 82371AB/EB/MB PIIX4 PCI-to-ISA bridge | |
367 | - pci_conf[0x03] = 0x71; | |
360 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
361 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_INTEL_82371AB_0); // 82371AB/EB/MB PIIX4 PCI-to-ISA bridge | |
368 | 362 | pci_conf[0x0a] = 0x01; // class_sub = PCI_ISA |
369 | 363 | pci_conf[0x0b] = 0x06; // class_base = PCI_bridge |
370 | 364 | pci_conf[0x0e] = 0x80; // header_type = PCI_multifunction, generic | ... | ... |
hw/ppc4xx_pci.c
... | ... | @@ -366,6 +366,7 @@ PCIBus *ppc4xx_pci_init(CPUState *env, qemu_irq pci_irqs[4], |
366 | 366 | PPC4xxPCIState *controller; |
367 | 367 | int index; |
368 | 368 | static int ppc4xx_pci_id; |
369 | + uint8_t *pci_conf; | |
369 | 370 | |
370 | 371 | controller = qemu_mallocz(sizeof(PPC4xxPCIState)); |
371 | 372 | if (!controller) |
... | ... | @@ -378,12 +379,11 @@ PCIBus *ppc4xx_pci_init(CPUState *env, qemu_irq pci_irqs[4], |
378 | 379 | controller->pci_dev = pci_register_device(controller->pci_state.bus, |
379 | 380 | "host bridge", sizeof(PCIDevice), |
380 | 381 | 0, NULL, NULL); |
381 | - controller->pci_dev->config[0x00] = 0x14; // vendor_id | |
382 | - controller->pci_dev->config[0x01] = 0x10; | |
383 | - controller->pci_dev->config[0x02] = 0x7f; // device_id | |
384 | - controller->pci_dev->config[0x03] = 0x02; | |
385 | - controller->pci_dev->config[0x0a] = 0x80; // class_sub = other bridge type | |
386 | - controller->pci_dev->config[0x0b] = 0x06; // class_base = PCI_bridge | |
382 | + pci_conf = controller->pci_dev->config; | |
383 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_IBM); | |
384 | + pci_config_set_device_id(pci_conf, 0x027f); // device_id | |
385 | + pci_conf[0x0a] = 0x80; // class_sub = other bridge type | |
386 | + pci_conf[0x0b] = 0x06; // class_base = PCI_bridge | |
387 | 387 | |
388 | 388 | /* CFGADDR */ |
389 | 389 | index = cpu_register_io_memory(0, pci4xx_cfgaddr_read, | ... | ... |
hw/prep_pci.c
... | ... | @@ -155,10 +155,8 @@ PCIBus *pci_prep_init(qemu_irq *pic) |
155 | 155 | /* PCI host bridge */ |
156 | 156 | d = pci_register_device(s->bus, "PREP Host Bridge - Motorola Raven", |
157 | 157 | sizeof(PCIDevice), 0, NULL, NULL); |
158 | - d->config[0x00] = 0x57; // vendor_id : Motorola | |
159 | - d->config[0x01] = 0x10; | |
160 | - d->config[0x02] = 0x01; // device_id : Raven | |
161 | - d->config[0x03] = 0x48; | |
158 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_MOTOROLA); | |
159 | + pci_config_set_device_id(d->config, PCI_DEVICE_ID_MOTOROLA_RAVEN); | |
162 | 160 | d->config[0x08] = 0x00; // revision |
163 | 161 | d->config[0x0A] = 0x00; // class_sub = pci host |
164 | 162 | d->config[0x0B] = 0x06; // class_base = PCI_bridge | ... | ... |
hw/rtl8139.c
... | ... | @@ -1187,8 +1187,8 @@ static void rtl8139_reset(RTL8139State *s) |
1187 | 1187 | s->eeprom.contents[0] = 0x8129; |
1188 | 1188 | #if 1 |
1189 | 1189 | // PCI vendor and device ID should be mirrored here |
1190 | - s->eeprom.contents[1] = 0x10ec; | |
1191 | - s->eeprom.contents[2] = 0x8139; | |
1190 | + s->eeprom.contents[1] = PCI_VENDOR_ID_REALTEK; | |
1191 | + s->eeprom.contents[2] = PCI_DEVICE_ID_REALTEK_8139; | |
1192 | 1192 | #endif |
1193 | 1193 | |
1194 | 1194 | s->eeprom.contents[7] = s->macaddr[0] | s->macaddr[1] << 8; |
... | ... | @@ -3425,10 +3425,8 @@ void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn) |
3425 | 3425 | devfn, |
3426 | 3426 | NULL, NULL); |
3427 | 3427 | pci_conf = d->dev.config; |
3428 | - pci_conf[0x00] = 0xec; /* Realtek 8139 */ | |
3429 | - pci_conf[0x01] = 0x10; | |
3430 | - pci_conf[0x02] = 0x39; | |
3431 | - pci_conf[0x03] = 0x81; | |
3428 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_REALTEK); | |
3429 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_REALTEK_8139); | |
3432 | 3430 | pci_conf[0x04] = 0x05; /* command = I/O space, Bus Master */ |
3433 | 3431 | pci_conf[0x08] = RTL8139_PCI_REVID; /* PCI revision ID; >=0x20 is for 8139C+ */ |
3434 | 3432 | pci_conf[0x0a] = 0x00; /* ethernet network controller */ | ... | ... |
hw/sh_pci.c
... | ... | @@ -188,10 +188,8 @@ PCIBus *sh_pci_register_bus(pci_set_irq_fn set_irq, pci_map_irq_fn map_irq, |
188 | 188 | cpu_register_physical_memory(0xfe240000, 0x40000, iop); |
189 | 189 | cpu_register_physical_memory(0xfd000000, 0x1000000, mem); |
190 | 190 | |
191 | - p->dev->config[0x00] = 0x54; // HITACHI | |
192 | - p->dev->config[0x01] = 0x10; // | |
193 | - p->dev->config[0x02] = 0x0e; // SH7751R | |
194 | - p->dev->config[0x03] = 0x35; // | |
191 | + pci_config_set_vendor_id(p->dev->config, PCI_VENDOR_ID_HITACHI); | |
192 | + pci_config_set_device_id(p->dev->config, 0x350e); // SH7751R | |
195 | 193 | p->dev->config[0x04] = 0x80; |
196 | 194 | p->dev->config[0x05] = 0x00; |
197 | 195 | p->dev->config[0x06] = 0x90; | ... | ... |
hw/sun4u.c
... | ... | @@ -365,10 +365,8 @@ pci_ebus_init(PCIBus *bus, int devfn) |
365 | 365 | PCIDevice *s; |
366 | 366 | |
367 | 367 | s = pci_register_device(bus, "EBUS", sizeof(*s), devfn, NULL, NULL); |
368 | - s->config[0x00] = 0x8e; // vendor_id : Sun | |
369 | - s->config[0x01] = 0x10; | |
370 | - s->config[0x02] = 0x00; // device_id | |
371 | - s->config[0x03] = 0x10; | |
368 | + pci_config_set_vendor_id(s->config, PCI_VENDOR_ID_SUN); | |
369 | + pci_config_set_device_id(s->config, PCI_DEVICE_ID_SUN_EBUS); | |
372 | 370 | s->config[0x04] = 0x06; // command = bus master, pci mem |
373 | 371 | s->config[0x05] = 0x00; |
374 | 372 | s->config[0x06] = 0xa0; // status = fast back-to-back, 66MHz, no error | ... | ... |
hw/unin_pci.c
... | ... | @@ -174,10 +174,8 @@ PCIBus *pci_pmac_init(qemu_irq *pic) |
174 | 174 | cpu_register_physical_memory(0xf2c00000, 0x1000, pci_mem_data); |
175 | 175 | d = pci_register_device(s->bus, "Uni-north main", sizeof(PCIDevice), |
176 | 176 | 11 << 3, NULL, NULL); |
177 | - d->config[0x00] = 0x6b; // vendor_id : Apple | |
178 | - d->config[0x01] = 0x10; | |
179 | - d->config[0x02] = 0x1F; // device_id | |
180 | - d->config[0x03] = 0x00; | |
177 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_APPLE); | |
178 | + pci_config_set_device_id(d->config, 0x001f); // device_id | |
181 | 179 | d->config[0x08] = 0x00; // revision |
182 | 180 | d->config[0x0A] = 0x00; // class_sub = pci host |
183 | 181 | d->config[0x0B] = 0x06; // class_base = PCI_bridge |
... | ... | @@ -190,10 +188,8 @@ PCIBus *pci_pmac_init(qemu_irq *pic) |
190 | 188 | /* pci-to-pci bridge */ |
191 | 189 | d = pci_register_device("Uni-north bridge", sizeof(PCIDevice), 0, 13 << 3, |
192 | 190 | NULL, NULL); |
193 | - d->config[0x00] = 0x11; // vendor_id : TI | |
194 | - d->config[0x01] = 0x10; | |
195 | - d->config[0x02] = 0x26; // device_id | |
196 | - d->config[0x03] = 0x00; | |
191 | + pci_config_set_vendor_id(d->config, 0x1011); // vendor_id : TI | |
192 | + pci_config_set_device_id(d->config, 0x0026); // device_id | |
197 | 193 | d->config[0x08] = 0x05; // revision |
198 | 194 | d->config[0x0A] = 0x04; // class_sub = pci2pci |
199 | 195 | d->config[0x0B] = 0x06; // class_base = PCI_bridge |
... | ... | @@ -229,10 +225,8 @@ PCIBus *pci_pmac_init(qemu_irq *pic) |
229 | 225 | |
230 | 226 | d = pci_register_device("Uni-north AGP", sizeof(PCIDevice), 0, 11 << 3, |
231 | 227 | NULL, NULL); |
232 | - d->config[0x00] = 0x6b; // vendor_id : Apple | |
233 | - d->config[0x01] = 0x10; | |
234 | - d->config[0x02] = 0x20; // device_id | |
235 | - d->config[0x03] = 0x00; | |
228 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_APPLE); | |
229 | + pci_config_set_device_id(d->config, PCI_DEVICE_ID_APPLE_UNI_N_AGP); | |
236 | 230 | d->config[0x08] = 0x00; // revision |
237 | 231 | d->config[0x0A] = 0x00; // class_sub = pci host |
238 | 232 | d->config[0x0B] = 0x06; // class_base = PCI_bridge |
... | ... | @@ -254,10 +248,8 @@ PCIBus *pci_pmac_init(qemu_irq *pic) |
254 | 248 | |
255 | 249 | d = pci_register_device("Uni-north internal", sizeof(PCIDevice), |
256 | 250 | 3, 11 << 3, NULL, NULL); |
257 | - d->config[0x00] = 0x6b; // vendor_id : Apple | |
258 | - d->config[0x01] = 0x10; | |
259 | - d->config[0x02] = 0x1E; // device_id | |
260 | - d->config[0x03] = 0x00; | |
251 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_APPLE); | |
252 | + pci_config_set_device_id(d->config, 0x001E); // device_id | |
261 | 253 | d->config[0x08] = 0x00; // revision |
262 | 254 | d->config[0x0A] = 0x00; // class_sub = pci host |
263 | 255 | d->config[0x0B] = 0x06; // class_base = PCI_bridge | ... | ... |
hw/usb-ohci.c
... | ... | @@ -1671,8 +1671,6 @@ static void ohci_mapfunc(PCIDevice *pci_dev, int i, |
1671 | 1671 | void usb_ohci_init_pci(struct PCIBus *bus, int num_ports, int devfn) |
1672 | 1672 | { |
1673 | 1673 | OHCIPCIState *ohci; |
1674 | - int vid = 0x106b; | |
1675 | - int did = 0x003f; | |
1676 | 1674 | |
1677 | 1675 | ohci = (OHCIPCIState *)pci_register_device(bus, "OHCI USB", sizeof(*ohci), |
1678 | 1676 | devfn, NULL, NULL); |
... | ... | @@ -1681,10 +1679,8 @@ void usb_ohci_init_pci(struct PCIBus *bus, int num_ports, int devfn) |
1681 | 1679 | return; |
1682 | 1680 | } |
1683 | 1681 | |
1684 | - ohci->pci_dev.config[0x00] = vid & 0xff; | |
1685 | - ohci->pci_dev.config[0x01] = (vid >> 8) & 0xff; | |
1686 | - ohci->pci_dev.config[0x02] = did & 0xff; | |
1687 | - ohci->pci_dev.config[0x03] = (did >> 8) & 0xff; | |
1682 | + pci_config_set_vendor_id(ohci->pci_dev.config, PCI_VENDOR_ID_APPLE); | |
1683 | + pci_config_set_device_id(ohci->pci_dev.config, 0x003f); // device_id | |
1688 | 1684 | ohci->pci_dev.config[0x09] = 0x10; /* OHCI */ |
1689 | 1685 | ohci->pci_dev.config[0x0a] = 0x3; |
1690 | 1686 | ohci->pci_dev.config[0x0b] = 0xc; | ... | ... |
hw/usb-uhci.c
... | ... | @@ -1080,10 +1080,8 @@ void usb_uhci_piix3_init(PCIBus *bus, int devfn) |
1080 | 1080 | "USB-UHCI", sizeof(UHCIState), |
1081 | 1081 | devfn, NULL, NULL); |
1082 | 1082 | pci_conf = s->dev.config; |
1083 | - pci_conf[0x00] = 0x86; | |
1084 | - pci_conf[0x01] = 0x80; | |
1085 | - pci_conf[0x02] = 0x20; | |
1086 | - pci_conf[0x03] = 0x70; | |
1083 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
1084 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_INTEL_82371SB_2); | |
1087 | 1085 | pci_conf[0x08] = 0x01; // revision number |
1088 | 1086 | pci_conf[0x09] = 0x00; |
1089 | 1087 | pci_conf[0x0a] = 0x03; |
... | ... | @@ -1117,10 +1115,8 @@ void usb_uhci_piix4_init(PCIBus *bus, int devfn) |
1117 | 1115 | "USB-UHCI", sizeof(UHCIState), |
1118 | 1116 | devfn, NULL, NULL); |
1119 | 1117 | pci_conf = s->dev.config; |
1120 | - pci_conf[0x00] = 0x86; | |
1121 | - pci_conf[0x01] = 0x80; | |
1122 | - pci_conf[0x02] = 0x12; | |
1123 | - pci_conf[0x03] = 0x71; | |
1118 | + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL); | |
1119 | + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_INTEL_82371AB_2); | |
1124 | 1120 | pci_conf[0x08] = 0x01; // revision number |
1125 | 1121 | pci_conf[0x09] = 0x00; |
1126 | 1122 | pci_conf[0x0a] = 0x03; | ... | ... |
hw/versatile_pci.c
... | ... | @@ -124,11 +124,9 @@ PCIBus *pci_vpb_init(qemu_irq *pic, int irq, int realview) |
124 | 124 | isa_mmio_init(base + 0x03000000, 0x00100000); |
125 | 125 | } |
126 | 126 | |
127 | - d->config[0x00] = 0xee; // vendor_id | |
128 | - d->config[0x01] = 0x10; | |
127 | + pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_XILINX); | |
129 | 128 | /* Both boards have the same device ID. Oh well. */ |
130 | - d->config[0x02] = 0x00; // device_id | |
131 | - d->config[0x03] = 0x03; | |
129 | + pci_config_set_device_id(d->config, 0x0300); // device_id | |
132 | 130 | d->config[0x04] = 0x00; |
133 | 131 | d->config[0x05] = 0x00; |
134 | 132 | d->config[0x06] = 0x20; | ... | ... |
hw/vga.c
... | ... | @@ -2512,10 +2512,8 @@ int pci_vga_init(PCIBus *bus, uint8_t *vga_ram_base, |
2512 | 2512 | s->pci_dev = &d->dev; |
2513 | 2513 | |
2514 | 2514 | pci_conf = d->dev.config; |
2515 | - pci_conf[0x00] = 0x34; // dummy VGA (same as Bochs ID) | |
2516 | - pci_conf[0x01] = 0x12; | |
2517 | - pci_conf[0x02] = 0x11; | |
2518 | - pci_conf[0x03] = 0x11; | |
2515 | + pci_config_set_vendor_id(pci_conf, 0x1234); // dummy VGA (same as Bochs ID) | |
2516 | + pci_config_set_device_id(pci_conf, 0x1111); | |
2519 | 2517 | pci_conf[0x0a] = 0x00; // VGA controller |
2520 | 2518 | pci_conf[0x0b] = 0x03; |
2521 | 2519 | pci_conf[0x0e] = 0x00; // header_type | ... | ... |
hw/virtio.c
... | ... | @@ -830,10 +830,8 @@ VirtIODevice *virtio_init_pci(PCIBus *bus, const char *name, |
830 | 830 | vdev->vq = qemu_mallocz(sizeof(VirtQueue) * VIRTIO_PCI_QUEUE_MAX); |
831 | 831 | |
832 | 832 | config = pci_dev->config; |
833 | - config[0x00] = vendor & 0xFF; | |
834 | - config[0x01] = (vendor >> 8) & 0xFF; | |
835 | - config[0x02] = device & 0xFF; | |
836 | - config[0x03] = (device >> 8) & 0xFF; | |
833 | + pci_config_set_vendor_id(config, vendor); | |
834 | + pci_config_set_device_id(config, device); | |
837 | 835 | |
838 | 836 | config[0x08] = VIRTIO_PCI_ABI_VERSION; |
839 | 837 | ... | ... |
hw/vmware_vga.c
... | ... | @@ -1204,12 +1204,6 @@ static void pci_vmsvga_map_mem(PCIDevice *pci_dev, int region_num, |
1204 | 1204 | iomemtype); |
1205 | 1205 | } |
1206 | 1206 | |
1207 | -#define PCI_VENDOR_ID_VMWARE 0x15ad | |
1208 | -#define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405 | |
1209 | -#define PCI_DEVICE_ID_VMWARE_SVGA 0x0710 | |
1210 | -#define PCI_DEVICE_ID_VMWARE_NET 0x0720 | |
1211 | -#define PCI_DEVICE_ID_VMWARE_SCSI 0x0730 | |
1212 | -#define PCI_DEVICE_ID_VMWARE_IDE 0x1729 | |
1213 | 1207 | #define PCI_CLASS_BASE_DISPLAY 0x03 |
1214 | 1208 | #define PCI_CLASS_SUB_VGA 0x00 |
1215 | 1209 | #define PCI_CLASS_HEADERTYPE_00h 0x00 |
... | ... | @@ -1223,10 +1217,8 @@ void pci_vmsvga_init(PCIBus *bus, uint8_t *vga_ram_base, |
1223 | 1217 | s = (struct pci_vmsvga_state_s *) |
1224 | 1218 | pci_register_device(bus, "QEMUware SVGA", |
1225 | 1219 | sizeof(struct pci_vmsvga_state_s), -1, 0, 0); |
1226 | - s->card.config[PCI_VENDOR_ID] = PCI_VENDOR_ID_VMWARE & 0xff; | |
1227 | - s->card.config[PCI_VENDOR_ID + 1] = PCI_VENDOR_ID_VMWARE >> 8; | |
1228 | - s->card.config[PCI_DEVICE_ID] = SVGA_PCI_DEVICE_ID & 0xff; | |
1229 | - s->card.config[PCI_DEVICE_ID + 1] = SVGA_PCI_DEVICE_ID >> 8; | |
1220 | + pci_config_set_vendor_id(s->card.config, PCI_VENDOR_ID_VMWARE); | |
1221 | + pci_config_set_device_id(s->card.config, SVGA_PCI_DEVICE_ID); | |
1230 | 1222 | s->card.config[PCI_COMMAND] = 0x07; /* I/O + Memory */ |
1231 | 1223 | s->card.config[PCI_CLASS_DEVICE] = PCI_CLASS_SUB_VGA; |
1232 | 1224 | s->card.config[0x0b] = PCI_CLASS_BASE_DISPLAY; | ... | ... |