cvs server: Diffing . Index: config.c =================================================================== RCS file: /cvs/grub/netboot/config.c,v retrieving revision 1.10 diff -u -r1.10 config.c --- config.c 2001/02/02 12:21:18 1.10 +++ config.c 2001/07/27 09:51:20 @@ -35,112 +35,114 @@ #if defined(ETHERBOOT32) /* only for 32 bit machines */ #define INCLUDE_PCI #include "pci.h" +#include "cards.h" + static unsigned short pci_ioaddrs[16]; static struct pci_device pci_nic_list[] = { #ifdef INCLUDE_NS8390 { PCI_VENDOR_ID_REALTEK, PCI_DEVICE_ID_REALTEK_8029, - "Realtek 8029", 0, 0, 0}, + "Realtek 8029", 0, 0, 0, 0, nepci_probe}, { PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940, - "Winbond NE2000-PCI", 0, 0, 0}, + "Winbond NE2000-PCI", 0, 0, 0, 0, nepci_probe}, { PCI_VENDOR_ID_COMPEX, PCI_DEVICE_ID_COMPEX_RL2000, - "Compex ReadyLink 2000", 0, 0, 0}, + "Compex ReadyLink 2000", 0, 0, 0, 0, nepci_probe}, { PCI_VENDOR_ID_KTI, PCI_DEVICE_ID_KTI_ET32P2, - "KTI ET32P2", 0, 0, 0}, + "KTI ET32P2", 0, 0, 0, 0, nepci_probe}, { PCI_VENDOR_ID_NETVIN, PCI_DEVICE_ID_NETVIN_NV5000SC, - "NetVin NV5000SC", 0, 0, 0}, + "NetVin NV5000SC", 0, 0, 0, 0, nepci_probe}, #endif #ifdef INCLUDE_3C90X { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C900TPO, - "3Com900-TPO", 0, 0, 0}, + "3Com900-TPO", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C900COMBO, - "3Com900-Combo", 0, 0, 0}, + "3Com900-Combo", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C905TX, - "3Com905-TX", 0, 0, 0}, + "3Com905-TX", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C905T4, - "3Com905-T4", 0, 0, 0}, + "3Com905-T4", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, 0x9004, - "3Com900B-TPO", 0, 0, 0}, + "3Com900B-TPO", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, 0x9005, - "3Com900B-Combo", 0, 0, 0}, + "3Com900B-Combo", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, 0x9006, - "3Com900B-2/T", 0, 0, 0}, + "3Com900B-2/T", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, 0x900A, - "3Com900B-FL", 0, 0, 0}, + "3Com900B-FL", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C905B_TX, - "3Com905B-TX", 0, 0, 0}, + "3Com905B-TX", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, 0x9056, - "3Com905B-T4", 0, 0, 0}, + "3Com905B-T4", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, 0x905A, - "3Com905B-FL", 0, 0, 0}, + "3Com905B-FL", 0, 0, 0, 0, a3c90x_probe}, { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C905C_TXM, - "3Com905C-TXM", 0, 0, 0}, + "3Com905C-TXM", 0, 0, 0, 0, a3c90x_probe}, #endif #ifdef INCLUDE_3C595 { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C590, - "3Com590", 0, 0, 0}, + "3Com590", 0, 0, 0, 0, t595_probe}, { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C595, - "3Com595", 0, 0, 0}, + "3Com595", 0, 0, 0, 0, t595_probe}, { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C595_1, - "3Com595", 0, 0, 0}, + "3Com595", 0, 0, 0, 0, t595_probe}, { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C595_2, - "3Com595", 0, 0, 0}, + "3Com595", 0, 0, 0, 0, t595_probe}, #endif #ifdef INCLUDE_EEPRO100 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82557, - "Intel EtherExpressPro100", 0, 0, 0}, + "Intel EtherExpressPro100", 0, 0, 0, 0, eepro100_probe}, #endif #ifdef INCLUDE_EPIC100 { PCI_VENDOR_ID_SMC, PCI_DEVICE_ID_SMC_EPIC100, - "SMC EtherPowerII", 0, 0, 0}, + "SMC EtherPowerII", 0, 0, 0, 0, epic100_probe}, #endif #ifdef INCLUDE_LANCE { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_LANCE, - "AMD Lance/PCI", 0, 0, 0}, + "AMD Lance/PCI", 0, 0, 0, 0, lancepci_probe}, #endif #ifdef INCLUDE_RTL8139 { PCI_VENDOR_ID_REALTEK, PCI_DEVICE_ID_REALTEK_8139, - "Realtek 8139", 0, 0, 0}, + "Realtek 8139", 0, 0, 0, 0, rtl8139_probe}, { PCI_VENDOR_ID_SMC_1211, PCI_DEVICE_ID_SMC_1211, - "SMC EZ10/100", 0, 0, 0}, + "SMC EZ10/100", 0, 0, 0, 0, rtl8139_probe}, #endif #ifdef INCLUDE_OTULIP { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP, - "Digital Tulip", 0, 0, 0}, + "Digital Tulip", 0, 0, 0, 0, otulip_probe}, { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST, - "Digital Tulip Fast", 0, 0, 0}, + "Digital Tulip Fast", 0, 0, 0, 0, otulip_probe}, { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_PLUS, - "Digital Tulip+", 0, 0, 0}, + "Digital Tulip+", 0, 0, 0, 0, otulip_probe}, { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, - "Digital Tulip 21142", 0, 0, 0}, + "Digital Tulip 21142", 0, 0, 0, 0, otulip_probe}, #endif #ifdef INCLUDE_TULIP { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP, - "Digital Tulip", 0, 0, 0}, + "Digital Tulip", 0, 0, 0, 0, tulip_probe}, { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST, - "Digital Tulip Fast", 0, 0, 0}, + "Digital Tulip Fast", 0, 0, 0, 0, tulip_probe}, { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_PLUS, - "Digital Tulip+", 0, 0, 0}, + "Digital Tulip+", 0, 0, 0, 0, tulip_probe}, { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, - "Digital Tulip 21142", 0, 0, 0}, + "Digital Tulip 21142", 0, 0, 0, 0, tulip_probe}, { PCI_VENDOR_ID_MACRONIX, PCI_DEVICE_ID_MX987x5, - "Macronix MX987x5", 0, 0, 0}, + "Macronix MX987x5", 0, 0, 0, 0, tulip_probe}, { PCI_VENDOR_ID_LINKSYS, PCI_DEVICE_ID_LC82C115, - "LinkSys LNE100TX", 0, 0, 0}, + "LinkSys LNE100TX", 0, 0, 0, 0, tulip_probe}, { PCI_VENDOR_ID_LINKSYS, PCI_DEVICE_ID_DEC_TULIP, - "Netgear FA310TX", 0, 0, 0}, + "Netgear FA310TX", 0, 0, 0, 0, tulip_probe}, { PCI_VENDOR_ID_DAVICOM, PCI_DEVICE_ID_DM9102, - "Davicom 9102", 0, 0, 0}, + "Davicom 9102", 0, 0, 0, 0, tulip_probe}, { PCI_VENDOR_ID_ADMTEK, PCI_DEVICE_ID_ADMTEK_0985, - "ADMtek Centaur-P", 0, 0, 0}, + "ADMtek Centaur-P", 0, 0, 0, 0, tulip_probe}, #endif #ifdef INCLUDE_VIA_RHINE { PCI_VENDOR_ID_VIATEC, PCI_DEVICE_ID_VIA_RHINE_I, - "VIA 3043", 0, 0, 0}, + "VIA 3043", 0, 0, 0, 0, rhine_probe}, { PCI_VENDOR_ID_VIATEC, PCI_DEVICE_ID_VIA_86C100A, - "VIA 86C100A", 0, 0, 0}, + "VIA 86C100A", 0, 0, 0, 0, rhine_probe}, #endif /* other PCI NICs go here */ {0, 0, NULL, 0, 0, 0} @@ -150,82 +152,6 @@ #include "cards.h" -#if defined(GRUB) && defined(INCLUDE_PCI) -struct pci_dispatch_table -{ - unsigned short vendor; - unsigned short dev_id; - struct nic *(*eth_probe) (struct nic *, unsigned short *, - struct pci_device *); -}; - -static struct pci_dispatch_table PCI_NIC[] = -{ -# ifdef INCLUDE_NS8390 - { PCI_VENDOR_ID_REALTEK, PCI_DEVICE_ID_REALTEK_8029, nepci_probe }, - { PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940, nepci_probe }, - { PCI_VENDOR_ID_COMPEX, PCI_DEVICE_ID_COMPEX_RL2000, nepci_probe }, - { PCI_VENDOR_ID_KTI, PCI_DEVICE_ID_KTI_ET32P2, nepci_probe }, - { PCI_VENDOR_ID_NETVIN, PCI_DEVICE_ID_NETVIN_NV5000SC, nepci_probe }, -# endif /* INCLUDE_NS8390 */ -# ifdef INCLUDE_3C90X - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C900TPO, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C900COMBO, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C905TX, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C905T4, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, 0x9004, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, 0x9005, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, 0x9006, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, 0x900A, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C905B_TX, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, 0x9056, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, 0x905A, a3c90x_probe }, - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C905C_TXM, a3c90x_probe }, -# endif /* INCLUDE_3C90X */ -# ifdef INCLUDE_3C595 - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C590, t595_probe }, - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C595, t595_probe }, - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C595_1, t595_probe }, - { PCI_VENDOR_ID_3COM, PCI_DEVICE_ID_3COM_3C595_2, t595_probe }, -# endif /* INCLUDE_3C595 */ -# ifdef INCLUDE_EEPRO100 - { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82557, eepro100_probe }, -# endif /* INCLUDE_EEPRO100 */ -# ifdef INCLUDE_EPIC100 - { PCI_VENDOR_ID_SMC, PCI_DEVICE_ID_SMC_EPIC100, epic100_probe }, -# endif /* INCLUDE_EPIC100 */ -# ifdef INCLUDE_LANCE - { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_LANCE, lancepci_probe }, -# endif /* INCLUDE_LANCE */ -# ifdef INCLUDE_RTL8139 - { PCI_VENDOR_ID_REALTEK, PCI_DEVICE_ID_REALTEK_8139, rtl8139_probe }, - { PCI_VENDOR_ID_SMC_1211, PCI_DEVICE_ID_SMC_1211, rtl8139_probe }, -# endif /* INCLUDE_RTL8139 */ -# ifdef INCLUDE_OTULIP - { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP, otulip_probe }, - { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST, otulip_probe }, - { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_PLUS, otulip_probe }, - { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, otulip_probe }, -# endif /* INCLUDE_OTULIP */ -# ifdef INCLUDE_TULIP - { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP, tulip_probe }, - { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST, tulip_probe }, - { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_PLUS, tulip_probe }, - { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, tulip_probe }, - { PCI_VENDOR_ID_MACRONIX, PCI_DEVICE_ID_MX987x5, tulip_probe }, - { PCI_VENDOR_ID_LINKSYS, PCI_DEVICE_ID_LC82C115, tulip_probe }, - { PCI_VENDOR_ID_LINKSYS, PCI_DEVICE_ID_DEC_TULIP, tulip_probe }, - { PCI_VENDOR_ID_DAVICOM, PCI_DEVICE_ID_DM9102, tulip_probe }, - { PCI_VENDOR_ID_ADMTEK, PCI_DEVICE_ID_ADMTEK_0985, tulip_probe }, -# endif /* INCLUDE_TULIP */ -# ifdef INCLUDE_VIA_RHINE - { PCI_VENDOR_ID_VIATEC, PCI_DEVICE_ID_VIA_RHINE_I, rhine_probe }, - { PCI_VENDOR_ID_VIATEC, PCI_DEVICE_ID_VIA_86C100A, rhine_probe }, -# endif /* INCLUDE_VIA_RHINE */ - { 0, 0, 0 } -}; -#endif /* GRUB && INCLUDE_PCI */ - struct dispatch_table { const char *nic_name; @@ -245,9 +171,6 @@ */ static struct dispatch_table NIC[] = { -#ifdef INCLUDE_RTL8139 - { "RTL8139", rtl8139_probe, pci_ioaddrs }, -#endif #ifdef INCLUDE_WD { "WD", wd_probe, 0 }, #endif @@ -263,24 +186,6 @@ #ifdef INCLUDE_3C529 { "3C5x9", t529_probe, 0 }, #endif -#ifdef INCLUDE_3C595 - { "3C595", t595_probe, pci_ioaddrs }, -#endif -#ifdef INCLUDE_3C90X - { "3C90X", a3c90x_probe, pci_ioaddrs }, -#endif -#ifdef INCLUDE_EEPRO100 - { "EEPRO100", eepro100_probe, pci_ioaddrs }, -#endif -#ifdef INCLUDE_EPIC100 - { "EPIC100", epic100_probe, pci_ioaddrs }, -#endif -#ifdef INCLUDE_OTULIP - { "OTulip", otulip_probe, pci_ioaddrs }, -#endif -#ifdef INCLUDE_TULIP - { "Tulip", tulip_probe, pci_ioaddrs }, -#endif #ifdef INCLUDE_CS89X0 { "CS89x0", cs89x0_probe, 0 }, #endif @@ -311,15 +216,6 @@ #ifdef INCLUDE_DEPCA { "DEPCA", depca_probe, 0 }, #endif -#ifdef INCLUDE_NS8390 - { "NE2000/PCI", nepci_probe, pci_ioaddrs }, -#endif -#ifdef INCLUDE_LANCE - { "LANCE/PCI", lancepci_probe, pci_ioaddrs }, -#endif -#ifdef INCLUDE_VIA_RHINE - { "VIA 86C100", rhine_probe, pci_ioaddrs }, -#endif /* this entry must always be last to mark the end of list */ { 0, 0, 0 } }; @@ -420,29 +316,15 @@ for (p = pci_nic_list; p->vendor != 0; ++p) { if (p->ioaddr != 0) { pci_ioaddrs[0] = p->ioaddr; - break; + if (p->eth_probe(&nic, pci_ioaddrs, p)) { + probed = 1; + return 1; + } + } } #endif printf("Probing..."); - -#if defined(GRUB) && defined(INCLUDE_PCI) - if (p->vendor) - { - struct pci_dispatch_table *pt; - - for (pt = PCI_NIC; pt->eth_probe != 0; pt++) - if (p->vendor == pt->vendor && p->dev_id == pt->dev_id) - { - printf ("[%s]", p->name); - if ((pt->eth_probe) (&nic, pci_ioaddrs, p)) - { - probed = 1; - return 1; - } - } - } -#endif /* GRUB && INCLUDE_PCI */ for (t = NIC; t->nic_name != 0; ++t) { Index: eepro100.c =================================================================== RCS file: /cvs/grub/netboot/eepro100.c,v retrieving revision 1.3 diff -u -r1.3 eepro100.c --- eepro100.c 2000/04/22 01:17:09 1.3 +++ eepro100.c 2001/07/27 09:51:21 @@ -547,7 +547,7 @@ int options; int promisc; - unsigned char pci_bus = 0; + unsigned char pci_bus = p->busnr; unsigned short pci_command; unsigned short new_command; unsigned char pci_latency; Index: lance.c =================================================================== RCS file: /cvs/grub/netboot/lance.c,v retrieving revision 1.4 diff -u -r1.4 lance.c --- lance.c 2000/04/22 01:17:09 1.4 +++ lance.c 2001/07/27 09:51:22 @@ -465,10 +465,10 @@ break; #endif #ifdef INCLUDE_LANCE - pcibios_read_config_word(0, pci->devfn, PCI_COMMAND, &pci_cmd); + pcibios_read_config_word(pci->busnr, pci->devfn, PCI_COMMAND, &pci_cmd); if (!(pci_cmd & PCI_COMMAND_MASTER)) { pci_cmd |= PCI_COMMAND_MASTER; - pcibios_write_config_word(0, pci->devfn, PCI_COMMAND, pci_cmd); + pcibios_write_config_word(pci->busnr, pci->devfn, PCI_COMMAND, pci_cmd); } if (lance_probe1(nic, pci) >= 0) break; Index: otulip.c =================================================================== RCS file: /cvs/grub/netboot/otulip.c,v retrieving revision 1.1 diff -u -r1.1 otulip.c --- otulip.c 2000/04/22 01:17:09 1.1 +++ otulip.c 2001/07/27 09:51:22 @@ -350,7 +350,7 @@ membase = (unsigned int *)pci->membase; /* wakeup chip */ - pcibios_write_config_dword(0,pci->devfn,0x40,0x00000000); + pcibios_write_config_dword(pci->busnr,pci->devfn,0x40,0x00000000); /* Stop the chip's Tx and Rx processes. */ /* outl(inl(ioaddr + CSR6) & ~0x2002, ioaddr + CSR6); */ Index: pci.c =================================================================== RCS file: /cvs/grub/netboot/pci.c,v retrieving revision 1.5 diff -u -r1.5 pci.c --- pci.c 2000/05/31 02:15:13 1.5 +++ pci.c 2001/07/27 09:51:22 @@ -456,6 +456,7 @@ pcidev[i].membase = membase; pcidev[i].ioaddr = ioaddr; pcidev[i].devfn = devfn; + pcidev[i].busnr = bus; return; } Index: pci.h =================================================================== RCS file: /cvs/grub/netboot/pci.h,v retrieving revision 1.7 diff -u -r1.7 pci.h --- pci.h 2000/07/29 19:22:54 1.7 +++ pci.h 2001/07/27 09:51:22 @@ -143,12 +143,16 @@ #define PCI_VENDOR_ID_DAVICOM 0x1282 #define PCI_DEVICE_ID_DM9102 0x9102 +struct nic; struct pci_device { unsigned short vendor, dev_id; const char *name; unsigned int membase; unsigned short ioaddr; unsigned short devfn; + unsigned short busnr; + struct nic *(*eth_probe) (struct nic *, unsigned short *, + struct pci_device *); }; extern void eth_pci_init(struct pci_device *); Index: tulip.c =================================================================== RCS file: /cvs/grub/netboot/tulip.c,v retrieving revision 1.4 diff -u -r1.4 tulip.c --- tulip.c 2000/07/29 19:22:54 1.4 +++ tulip.c 2001/07/27 09:51:23 @@ -691,7 +691,7 @@ ioaddr = *io_addrs; /* wakeup chip */ - pcibios_write_config_dword(0, pci->devfn, 0x40, 0x00000000); + pcibios_write_config_dword(pci->busnr, pci->devfn, 0x40, 0x00000000); /* Stop the chip's Tx and Rx processes. */ outl(inl(ioaddr + CSR6) & ~0x00002002, ioaddr + CSR6); Index: via-rhine.c =================================================================== RCS file: /cvs/grub/netboot/via-rhine.c,v retrieving revision 1.2 diff -u -r1.2 via-rhine.c --- via-rhine.c 2000/04/22 01:17:09 1.2 +++ via-rhine.c 2001/07/27 09:51:24 @@ -877,21 +877,21 @@ if (nic) { /* Get and check the bus-master and latency values. */ - pcibios_read_config_word (0, pci->devfn, PCI_COMMAND, &pci_command); + pcibios_read_config_word (pci->busnr, pci->devfn, PCI_COMMAND, &pci_command); if (!(pci_command & PCI_COMMAND_MASTER)) { printf (" PCI Master Bit has not been set! Setting...\n"); pci_command |= PCI_COMMAND_MASTER; - pcibios_write_config_word (0, pci->devfn, PCI_COMMAND, + pcibios_write_config_word (pci->busnr, pci->devfn, PCI_COMMAND, pci_command); } - pcibios_read_config_byte (0, pci->devfn, PCI_LATENCY_TIMER, + pcibios_read_config_byte (pci->busnr, pci->devfn, PCI_LATENCY_TIMER, &pci_latency); if (pci_latency < 10) { printf (" PCI latency timer (CFLT) is unreasonably low " "at %d. Setting to 64 clocks.\n", pci_latency); - pcibios_write_config_byte (0, pci->devfn, PCI_LATENCY_TIMER, 64); + pcibios_write_config_byte (pci->busnr, pci->devfn, PCI_LATENCY_TIMER, 64); } else if (rhine_debug > 1) printf (" PCI latency timer (CFLT) is %#x.\n", pci_latency);