summaryrefslogtreecommitdiffstats
path: root/flashrom.c
diff options
context:
space:
mode:
Diffstat (limited to 'flashrom.c')
-rw-r--r--flashrom.c65
1 files changed, 64 insertions, 1 deletions
diff --git a/flashrom.c b/flashrom.c
index a55dcd8..ae849cf 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -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;
OpenPOWER on IntegriCloud