[coreboot] [PATCH] flashrom: Refactor 3COM NIC code / generic PCI code
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Fri May 15 18:27:07 CEST 2009
[Is the quoting amount OK here? I'm trying to get a feeling for minimal
quoting. Feedback appreciated.]
On 15.05.2009 17:57, Uwe Hermann wrote:
> Refactor parts of the 3COM NIC code.
>
> Move the reusable PCI specific parts into pcidev.c, they'll be usable
> for other NIC code (Realtek, VIA, ...) and also for SATA/IDE controller
> cards as external programmers (for every PCI device which can program
> EEPROMs basically).
>
> Also add print_supported_pcidevs() to show the supported PCI devices
> (currently only NICs, soon more) in the 'flashrom -L' output.
>
> Signed-off-by: Uwe Hermann <uwe at hermann-uwe.de>
>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
with the changes below.
> Index: flash.h
> ===================================================================
> --- flash.h (Revision 514)
> +++ flash.h (Arbeitskopie)
> @@ -551,6 +551,23 @@
> struct pci_dev *pci_card_find(uint16_t vendor, uint16_t device,
> uint16_t card_vendor, uint16_t card_device);
>
> +/* pcidev.c */
> +#define OK 0
> +#define NT 1 /* Not tested */
>
Please use PCI_OK and PCI_NT (or PCI_UNTESTED).
> Index: pcidev.c
> ===================================================================
> --- pcidev.c (Revision 0)
> +++ pcidev.c (Revision 0)
> @@ -0,0 +1,115 @@
> +uint32_t pcidev_validate(struct pci_dev *dev, struct pcidev_status *devs)
> +{
> + int i;
> + uint32_t addr;
> +
> + for (i = 0; devs[i].device_name != NULL; i++) {
> + if (dev->device_id != devs[i].device_id)
> + continue;
> +
> + addr = (uint32_t)(dev->base_addr[0] & ~0x03);
> +
> + printf("Found \"%s %s\" (%04x:%04x, BDF %02x:%02x.%x)\n",
> + devs[i].vendor_name, devs[i].device_name, dev->vendor_id,
> + dev->device_id, dev->bus, dev->dev, dev->func);
> +
> + if (devs[i].status == NT) {
>
Same comment as above.
> +void print_supported_pcidevs(struct pcidev_status *devs)
> +{
> + int i;
> +
> + for (i = 0; devs[i].vendor_name != NULL; i++) {
> + printf("%s %s [%02x:%02x]%s\n", devs[i].vendor_name,
> + devs[i].device_name, devs[i].vendor_id,
> + devs[i].device_id,
> + (devs[i].status == NT) ? " (untested)" : "");
>
Dito.
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
More information about the coreboot
mailing list