Edward O'Callaghan has submitted this change. ( https://review.coreboot.org/c/flashrom/+/59280 )
Change subject: pcidev: Move pci_dev_find() from internal to canonical place ......................................................................
pcidev: Move pci_dev_find() from internal to canonical place
Also rename to `pcidev_find()` in fitting with pcidev.c helpers.
BUG=b:220950271 TEST=```sudo ./flashrom -p internal -r /tmp/bios <snip> Found Programmer flash chip "Opaque flash chip" (16384 kB, Programmer-specific) mapped at physical address 0x0000000000000000. Reading flash... done. ```
Change-Id: Ie21f87699481a84398ca4450b3f03548f0528191 Signed-off-by: Edward O'Callaghan quasisec@google.com Reviewed-on: https://review.coreboot.org/c/flashrom/+/59280 Reviewed-by: Thomas Heijligen src@posteo.de Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M board_enable.c M chipset_enable.c M internal.c M pcidev.c M programmer.h M sb600spi.c 6 files changed, 32 insertions(+), 33 deletions(-)
Approvals: build bot (Jenkins): Verified Thomas Heijligen: Looks good to me, approved
diff --git a/board_enable.c b/board_enable.c index 22db492..300fecb 100644 --- a/board_enable.c +++ b/board_enable.c @@ -893,7 +893,7 @@ uint16_t smbba; uint8_t b;
- dev = pci_dev_find(0x8086, 0x7113); /* Intel PIIX4, PM/SMBus function. */ + dev = pcidev_find(0x8086, 0x7113); /* Intel PIIX4, PM/SMBus function. */ if (!dev) { msg_perr("\nERROR: Intel PIIX4 PM not found.\n"); return -1; @@ -1045,7 +1045,7 @@ struct pci_dev *dev; uint32_t tmp;
- dev = pci_dev_find(0x10DE, 0x03EB); /* NVIDIA MCP61 SMBus. */ + dev = pcidev_find(0x10DE, 0x03EB); /* NVIDIA MCP61 SMBus. */ if (!dev) { msg_perr("\nERROR: NVIDIA MCP61 SMBus not found.\n"); return -1; @@ -1273,7 +1273,7 @@ if (ret) return ret;
- dev = pci_dev_find(0x10de, 0x0364); /* NVIDIA MCP55 LPC bridge */ + dev = pcidev_find(0x10de, 0x0364); /* NVIDIA MCP55 LPC bridge */ if (!dev) { msg_perr("\nERROR: NVIDIA MCP55 LPC bridge not found.\n"); return -1; @@ -1343,7 +1343,7 @@ struct pci_dev *dev; uint32_t reg;
- dev = pci_dev_find(0x1002, 0x4372); /* AMD SMBus controller */ + dev = pcidev_find(0x1002, 0x4372); /* AMD SMBus controller */ if (!dev) { msg_perr("\nERROR: AMD SMBus Controller (0x4372) not found.\n"); return -1; @@ -1407,7 +1407,7 @@ {0} };
- dev = pci_dev_find(0x8086, 0x7110); /* Intel PIIX4 ISA bridge */ + dev = pcidev_find(0x8086, 0x7110); /* Intel PIIX4 ISA bridge */ if (!dev) { msg_perr("\nERROR: Intel PIIX4 ISA bridge not found.\n"); return -1; @@ -1426,7 +1426,7 @@ return -1; }
- dev = pci_dev_find(0x8086, 0x7113); /* Intel PIIX4 PM */ + dev = pcidev_find(0x8086, 0x7113); /* Intel PIIX4 PM */ if (!dev) { msg_perr("\nERROR: Intel PIIX4 PM not found.\n"); return -1; @@ -1941,7 +1941,7 @@ uint32_t base, tmp;
/* VT82C686 power management */ - dev = pci_dev_find(0x1106, 0x3057); + dev = pcidev_find(0x1106, 0x3057); if (!dev) { msg_perr("\nERROR: VT82C686 PM device not found.\n"); return -1; @@ -2014,7 +2014,7 @@ struct pci_dev *dev; uint16_t base, temp;
- dev = pci_dev_find(0x1039, 0x0962); + dev = pcidev_find(0x1039, 0x0962); if (!dev) { msg_perr("Expected south bridge not found\n"); return 1; @@ -2078,7 +2078,7 @@ uint16_t rt_port; uint8_t val;
- dev = pci_dev_find(0x8086, 0x2410); /* Intel 82801AA ISA bridge */ + dev = pcidev_find(0x8086, 0x2410); /* Intel 82801AA ISA bridge */ if (!dev) { msg_perr("\nERROR: Intel 82801AA ISA bridge not found.\n"); return -1; @@ -2603,13 +2603,13 @@ if (!cur_model || strcasecmp(cur_model, model)) continue;
- if (!pci_dev_find(board->first_vendor, board->first_device)) { + if (!pcidev_find(board->first_vendor, board->first_device)) { msg_pdbg("Odd. Board name "%s":"%s" matches, but first PCI device %04x:%04x " "doesn't.\n", vendor, model, board->first_vendor, board->first_device); continue; }
- if (!pci_dev_find(board->second_vendor, board->second_device)) { + if (!pcidev_find(board->second_vendor, board->second_device)) { msg_pdbg("Odd. Board name "%s":"%s" matches, but second PCI device %04x:%04x " "doesn't.\n", vendor, model, board->second_vendor, board->second_device); continue; @@ -2658,7 +2658,7 @@ board->second_card_device)) continue; } else { - if (!pci_dev_find(board->second_vendor, + if (!pcidev_find(board->second_vendor, board->second_device)) continue; } diff --git a/chipset_enable.c b/chipset_enable.c index ac9377b..1cb1700 100644 --- a/chipset_enable.c +++ b/chipset_enable.c @@ -1117,7 +1117,7 @@
static int enable_flash_vt_vx(struct pci_dev *dev, const char *name) { - struct pci_dev *south_north = pci_dev_find(0x1106, 0xa353); + struct pci_dev *south_north = pcidev_find(0x1106, 0xa353); if (south_north == NULL) { msg_perr("Could not find South-North Module Interface Control device!\n"); return ERROR_FATAL; @@ -1557,7 +1557,7 @@ struct pci_dev *smbusdev;
/* Look for the SMBus device. */ - smbusdev = pci_dev_find(0x1002, 0x4372); + smbusdev = pcidev_find(0x1002, 0x4372);
if (!smbusdev) { msg_perr("ERROR: SMBus device not found. Aborting.\n"); @@ -2163,7 +2163,7 @@
/* Now let's try to find the chipset we have... */ for (i = 0; chipset_enables[i].vendor_name != NULL; i++) { - dev = pci_dev_find(chipset_enables[i].vendor_id, + dev = pcidev_find(chipset_enables[i].vendor_id, chipset_enables[i].device_id); if (!dev) continue; diff --git a/internal.c b/internal.c index cf9faf6..4049ef1 100644 --- a/internal.c +++ b/internal.c @@ -34,17 +34,6 @@
enum chipbustype internal_buses_supported = BUS_NONE;
-struct pci_dev *pci_dev_find(uint16_t vendor, uint16_t device) -{ - struct pci_filter filter; - - pci_filter_init(NULL, &filter); - filter.vendor = vendor; - filter.device = device; - - return pcidev_scandev(&filter, NULL); -} - #if defined(__i386__) || defined(__x86_64__) void probe_superio(void) { diff --git a/pcidev.c b/pcidev.c index 0049f0c..7fb6f1d 100644 --- a/pcidev.c +++ b/pcidev.c @@ -176,6 +176,17 @@ return NULL; }
+struct pci_dev *pcidev_find(uint16_t vendor, uint16_t device) +{ + struct pci_filter filter; + + pci_filter_init(NULL, &filter); + filter.vendor = vendor; + filter.device = device; + + return pcidev_scandev(&filter, NULL); +} + struct pci_dev *pcidev_getdevfn(struct pci_dev *dev, const int func) { #if !defined(OLD_PCI_GET_DEV) diff --git a/programmer.h b/programmer.h index 50753cf..c79422c 100644 --- a/programmer.h +++ b/programmer.h @@ -129,6 +129,7 @@ struct pci_dev *pcidev_getdevfn(struct pci_dev *dev, const int func); struct pci_dev *pcidev_find_vendorclass(uint16_t vendor, uint16_t devclass); struct pci_dev *pcidev_card_find(uint16_t vendor, uint16_t device, uint16_t card_vendor, uint16_t card_device); +struct pci_dev *pcidev_find(uint16_t vendor, uint16_t device); /* rpci_write_* are reversible writes. The original PCI config space register * contents will be restored on shutdown. * To clone the pci_dev instances internally, the `pacc` global @@ -261,9 +262,7 @@ #define SUPERIO_VENDOR_ITE 0x1 #define SUPERIO_VENDOR_WINBOND 0x2 #endif -#if NEED_PCI == 1 -struct pci_dev *pci_dev_find(uint16_t vendor, uint16_t device); -#endif + #if CONFIG_INTERNAL == 1 extern int is_laptop; extern int laptop_ok; diff --git a/sb600spi.c b/sb600spi.c index eb54028..6f8cc40 100644 --- a/sb600spi.c +++ b/sb600spi.c @@ -60,7 +60,7 @@
static int find_smbus_dev_rev(uint16_t vendor, uint16_t device) { - struct pci_dev *smbus_dev = pci_dev_find(vendor, device); + struct pci_dev *smbus_dev = pcidev_find(vendor, device); if (!smbus_dev) { msg_pdbg("No SMBus device with ID %04X:%04X found.\n", vendor, device); msg_perr("ERROR: SMBus device not found. Not enabling SPI.\n"); @@ -734,11 +734,11 @@ }
/* Look for the SMBus device. */ - smbus_dev = pci_dev_find(0x1002, 0x4385); + smbus_dev = pcidev_find(0x1002, 0x4385); if (!smbus_dev) - smbus_dev = pci_dev_find(0x1022, 0x780b); /* AMD FCH */ + smbus_dev = pcidev_find(0x1022, 0x780b); /* AMD FCH */ if (!smbus_dev) - smbus_dev = pci_dev_find(0x1022, 0x790b); /* AMD FP4 */ + smbus_dev = pcidev_find(0x1022, 0x790b); /* AMD FP4 */ if (!smbus_dev) { msg_perr("ERROR: SMBus device not found. Not enabling SPI.\n"); return ERROR_NONFATAL;