diff options
author | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2012-12-27 18:40:26 +0000 |
---|---|---|
committer | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2012-12-27 18:40:26 +0000 |
commit | af358d6af23b21f93f6e27278e76eec21a3d148f (patch) | |
tree | be7adedc94b5c55dec0e7e1f1dae88ef4e127fad /flashrom.c | |
parent | a6d96480176417478350e97338451554b5450cba (diff) | |
download | ast2050-flashrom-af358d6af23b21f93f6e27278e76eec21a3d148f.zip ast2050-flashrom-af358d6af23b21f93f6e27278e76eec21a3d148f.tar.gz |
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>
Diffstat (limited to 'flashrom.c')
-rw-r--r-- | flashrom.c | 65 |
1 files changed, 64 insertions, 1 deletions
@@ -64,6 +64,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_INTERNAL == 1 { .name = "internal", + .type = OTHER, + .devs.note = NULL, .init = internal_init, .map_flash_region = physmap, .unmap_flash_region = physunmap, @@ -74,6 +76,9 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_DUMMY == 1 { .name = "dummy", + .type = OTHER, + /* FIXME */ + .devs.note = "Dummy device, does nothing and logs all accesses\n", .init = dummy_init, .map_flash_region = dummy_map, .unmap_flash_region = dummy_unmap, @@ -84,6 +89,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_NIC3COM == 1 { .name = "nic3com", + .type = PCI, + .devs.pci = nics_3com, .init = nic3com_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -95,6 +102,8 @@ const struct programmer_entry programmer_table[] = { { /* This programmer works for Realtek RTL8139 and SMC 1211. */ .name = "nicrealtek", + .type = PCI, + .devs.pci = nics_realtek, .init = nicrealtek_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -105,6 +114,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_NICNATSEMI == 1 { .name = "nicnatsemi", + .type = PCI, + .devs.pci = nics_natsemi, .init = nicnatsemi_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -115,6 +126,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_GFXNVIDIA == 1 { .name = "gfxnvidia", + .type = PCI, + .devs.pci = gfx_nvidia, .init = gfxnvidia_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -125,6 +138,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_DRKAISER == 1 { .name = "drkaiser", + .type = PCI, + .devs.pci = drkaiser_pcidev, .init = drkaiser_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -135,6 +150,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_SATASII == 1 { .name = "satasii", + .type = PCI, + .devs.pci = satas_sii, .init = satasii_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -145,6 +162,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_ATAHPT == 1 { .name = "atahpt", + .type = PCI, + .devs.pci = ata_hpt, .init = atahpt_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -155,6 +174,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_FT2232_SPI == 1 { .name = "ft2232_spi", + .type = USB, + .devs.usb = devs_ft2232spi, .init = ft2232_spi_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -165,6 +186,9 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_SERPROG == 1 { .name = "serprog", + .type = OTHER, + /* FIXME */ + .devs.note = "All programmer devices speaking the serprog protocol\n", .init = serprog_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -175,6 +199,9 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_BUSPIRATE_SPI == 1 { .name = "buspirate_spi", + .type = OTHER, + /* FIXME */ + .devs.note = "Dangerous Prototypes Bus Pirate\n", .init = buspirate_spi_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -185,6 +212,9 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_DEDIPROG == 1 { .name = "dediprog", + .type = OTHER, + /* FIXME */ + .devs.note = "Dediprog SF100\n", .init = dediprog_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -195,6 +225,9 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_RAYER_SPI == 1 { .name = "rayer_spi", + .type = OTHER, + /* FIXME */ + .devs.note = "RayeR parallel port programmer\n", .init = rayer_spi_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -205,16 +238,21 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_PONY_SPI == 1 { .name = "pony_spi", + .type = OTHER, + /* FIXME */ + .devs.note = "Programmers compatible with SI-Prog, serbang or AJAWe\n", .init = pony_spi_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, .delay = internal_delay, -}, + }, #endif #if CONFIG_NICINTEL == 1 { .name = "nicintel", + .type = PCI, + .devs.pci = nics_intel, .init = nicintel_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -225,6 +263,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_NICINTEL_SPI == 1 { .name = "nicintel_spi", + .type = PCI, + .devs.pci = nics_intel_spi, .init = nicintel_spi_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -235,6 +275,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_OGP_SPI == 1 { .name = "ogp_spi", + .type = PCI, + .devs.pci = ogp_spi, .init = ogp_spi_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -245,6 +287,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_SATAMV == 1 { .name = "satamv", + .type = PCI, + .devs.pci = satas_mv, .init = satamv_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -255,6 +299,8 @@ const struct programmer_entry programmer_table[] = { #if CONFIG_LINUX_SPI == 1 { .name = "linux_spi", + .type = OTHER, + .devs.note = "Device files /dev/spidev*.*\n", .init = linux_spi_init, .map_flash_region = fallback_map, .unmap_flash_region = fallback_unmap, @@ -1577,6 +1623,23 @@ int selfcheck(void) * messages below without jumping through hoops. */ continue; } + switch (p.type) { + case USB: + case PCI: + case OTHER: + if (p.devs.note == NULL) { + if (strcmp("internal", p.name) == 0) + break; /* This one has its device list stored separately. */ + msg_gerr("Programmer %s has neither a device list nor a textual description!\n", + p.name); + ret = 1; + } + break; + default: + msg_gerr("Programmer %s does not have a valid type set!\n", p.name); + ret = 1; + break; + } if (p.init == NULL) { msg_gerr("Programmer %s does not have a valid init function!\n", p.name); ret = 1; |