mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-01 22:21:16 +02:00
Refactor PCI and USB device status printing
To be able to get rid of lots of #ifdefs and centralize programmer-specific data more... - introduce two new fields to struct programmer_entry, namely enum type (OTHER, USB, PCI) and union devs (pcidev_status, usbdev_status or char *note). - use those fields to generate device listings in print.c and print_wiki.c. Bonus: add printing of USB devices to print_wiki.c and count supported PCI and USB devices. Corresponding to flashrom svn r1631. Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
This commit is contained in:
41
programmer.h
41
programmer.h
@ -90,8 +90,20 @@ enum programmer {
|
||||
PROGRAMMER_INVALID /* This must always be the last entry. */
|
||||
};
|
||||
|
||||
enum programmer_type {
|
||||
PCI = 1, /* to detect uninitialized values */
|
||||
USB,
|
||||
OTHER,
|
||||
};
|
||||
|
||||
struct programmer_entry {
|
||||
const char *name;
|
||||
const enum programmer_type type;
|
||||
union {
|
||||
const struct pcidev_status *const pci;
|
||||
const struct usbdev_status *const usb;
|
||||
const char *const note;
|
||||
} devs;
|
||||
|
||||
int (*init) (void);
|
||||
|
||||
@ -219,13 +231,6 @@ void internal_delay(int usecs);
|
||||
extern uint32_t io_base_addr;
|
||||
extern struct pci_access *pacc;
|
||||
extern struct pci_dev *pcidev_dev;
|
||||
struct pcidev_status {
|
||||
uint16_t vendor_id;
|
||||
uint16_t device_id;
|
||||
const enum test_state status;
|
||||
const char *vendor_name;
|
||||
const char *device_name;
|
||||
};
|
||||
uintptr_t pcidev_readbar(struct pci_dev *dev, int bar);
|
||||
uintptr_t pcidev_init(int bar, const struct pcidev_status *devs);
|
||||
/* rpci_write_* are reversible writes. The original PCI config space register
|
||||
@ -242,6 +247,21 @@ int rpci_write_long(struct pci_dev *dev, int reg, uint32_t data);
|
||||
void print_supported_pcidevs(const struct pcidev_status *devs);
|
||||
#endif
|
||||
|
||||
struct usbdev_status {
|
||||
uint16_t vendor_id;
|
||||
uint16_t device_id;
|
||||
const enum test_state status;
|
||||
const char *vendor_name;
|
||||
const char *device_name;
|
||||
};
|
||||
struct pcidev_status {
|
||||
uint16_t vendor_id;
|
||||
uint16_t device_id;
|
||||
const enum test_state status;
|
||||
const char *vendor_name;
|
||||
const char *device_name;
|
||||
};
|
||||
|
||||
#if CONFIG_INTERNAL == 1
|
||||
/* board_enable.c */
|
||||
int board_parse_parameter(const char *boardstring, const char **vendor, const char **model);
|
||||
@ -420,13 +440,6 @@ extern const struct pcidev_status ata_hpt[];
|
||||
|
||||
/* ft2232_spi.c */
|
||||
#if CONFIG_FT2232_SPI == 1
|
||||
struct usbdev_status {
|
||||
uint16_t vendor_id;
|
||||
uint16_t device_id;
|
||||
const enum test_state status;
|
||||
const char *vendor_name;
|
||||
const char *device_name;
|
||||
};
|
||||
int ft2232_spi_init(void);
|
||||
extern const struct usbdev_status devs_ft2232spi[];
|
||||
void print_supported_usbdevs(const struct usbdev_status *devs);
|
||||
|
Reference in New Issue
Block a user