summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdward O'Callaghan <quasisec@google.com>2022-09-07 22:21:39 +1000
committerAngel Pons <th3fanbus@gmail.com>2022-10-08 18:36:21 +0000
commit67d50156170b17e5bca460ab6e5648e2b11f061c (patch)
treef46620ea3f354e0ea623c2bcbb7d48fc05e78713
parent7e8d17a8bd6e8239375666920b1824c4d24d4a01 (diff)
downloadflashrom-67d50156170b17e5bca460ab6e5648e2b11f061c.tar.gz
flashrom-67d50156170b17e5bca460ab6e5648e2b11f061c.tar.bz2
flashrom-67d50156170b17e5bca460ab6e5648e2b11f061c.zip
drivers/: Make 'fallback_{un}map' the default unless defined
Drop the explicit need to specify the default 'fallback_{un}map' callback function pointer from the 'programmer_entry' struct. This is a reasonable default for every other driver in the tree with only a select few exceptions [atavia, serprog, dummyflasher and internal]. Thus this simplifies driver development and paves way to remove the 'programmer' global handle. Change-Id: I5ea7bd68f7ae2cd4af9902ef07255ab6ce0bfdb3 Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/67404 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <felixsinger@posteo.net> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rw-r--r--atahpt.c2
-rw-r--r--atapromise.c2
-rw-r--r--atavia.c1
-rw-r--r--buspirate_spi.c2
-rw-r--r--ch341a_spi.c2
-rw-r--r--dediprog.c2
-rw-r--r--developerbox_spi.c2
-rw-r--r--digilent_spi.c2
-rw-r--r--drkaiser.c2
-rw-r--r--flashrom.c19
-rw-r--r--ft2232_spi.c2
-rw-r--r--gfxnvidia.c2
-rw-r--r--it8212.c2
-rw-r--r--jlink_spi.c2
-rw-r--r--linux_mtd.c2
-rw-r--r--linux_spi.c2
-rw-r--r--mediatek_i2c_spi.c2
-rw-r--r--mstarddc_spi.c2
-rw-r--r--ni845x_spi.c2
-rw-r--r--nic3com.c2
-rw-r--r--nicintel.c2
-rw-r--r--nicintel_eeprom.c2
-rw-r--r--nicintel_spi.c2
-rw-r--r--nicnatsemi.c2
-rw-r--r--nicrealtek.c2
-rw-r--r--ogp_spi.c2
-rw-r--r--parade_lspcon.c2
-rw-r--r--pickit2_spi.c2
-rw-r--r--pony_spi.c2
-rw-r--r--raiden_debug_spi.c2
-rw-r--r--rayer_spi.c2
-rw-r--r--realtek_mst_i2c_spi.c2
-rw-r--r--satamv.c2
-rw-r--r--satasii.c2
-rw-r--r--serprog.c1
-rw-r--r--stlinkv3_spi.c2
-rw-r--r--usbblaster_spi.c2
37 files changed, 9 insertions, 80 deletions
diff --git a/atahpt.c b/atahpt.c
index fa69137e2..89b44c2f8 100644
--- a/atahpt.c
+++ b/atahpt.c
@@ -120,6 +120,4 @@ const struct programmer_entry programmer_atahpt = {
.type = PCI,
.devs.dev = ata_hpt,
.init = atahpt_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/atapromise.c b/atapromise.c
index 5de0921e8..625eb83b0 100644
--- a/atapromise.c
+++ b/atapromise.c
@@ -184,6 +184,4 @@ const struct programmer_entry programmer_atapromise = {
.type = PCI,
.devs.dev = ata_promise,
.init = atapromise_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/atavia.c b/atavia.c
index a0be396f1..66bca65ef 100644
--- a/atavia.c
+++ b/atavia.c
@@ -190,5 +190,4 @@ const struct programmer_entry programmer_atavia = {
.devs.dev = ata_via,
.init = atavia_init,
.map_flash_region = atavia_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/buspirate_spi.c b/buspirate_spi.c
index 121c7e507..dbaac4e5e 100644
--- a/buspirate_spi.c
+++ b/buspirate_spi.c
@@ -714,6 +714,4 @@ const struct programmer_entry programmer_buspirate_spi = {
/* FIXME */
.devs.note = "Dangerous Prototypes Bus Pirate\n",
.init = buspirate_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/ch341a_spi.c b/ch341a_spi.c
index 48c642079..294a6a655 100644
--- a/ch341a_spi.c
+++ b/ch341a_spi.c
@@ -525,7 +525,5 @@ const struct programmer_entry programmer_ch341a_spi = {
.type = USB,
.devs.dev = devs_ch341a_spi,
.init = ch341a_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
.delay = ch341a_spi_delay,
};
diff --git a/dediprog.c b/dediprog.c
index 99c91e026..ae9e4486a 100644
--- a/dediprog.c
+++ b/dediprog.c
@@ -1319,6 +1319,4 @@ const struct programmer_entry programmer_dediprog = {
.type = USB,
.devs.dev = devs_dediprog,
.init = dediprog_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/developerbox_spi.c b/developerbox_spi.c
index 04957a3c3..64b7e8a1b 100644
--- a/developerbox_spi.c
+++ b/developerbox_spi.c
@@ -193,6 +193,4 @@ const struct programmer_entry programmer_developerbox = {
.type = USB,
.devs.dev = devs_developerbox_spi,
.init = developerbox_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/digilent_spi.c b/digilent_spi.c
index 85f3884fb..6575cbffd 100644
--- a/digilent_spi.c
+++ b/digilent_spi.c
@@ -468,6 +468,4 @@ const struct programmer_entry programmer_digilent_spi = {
.type = USB,
.devs.dev = devs_digilent_spi,
.init = digilent_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/drkaiser.c b/drkaiser.c
index 039e68661..96f2c99e5 100644
--- a/drkaiser.c
+++ b/drkaiser.c
@@ -122,6 +122,4 @@ const struct programmer_entry programmer_drkaiser = {
.type = PCI,
.devs.dev = drkaiser_pcidev,
.init = drkaiser_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/flashrom.c b/flashrom.c
index 3328a716e..f74b79a93 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -205,7 +205,11 @@ int programmer_shutdown(void)
void *programmer_map_flash_region(const char *descr, uintptr_t phys_addr, size_t len)
{
- void *ret = programmer->map_flash_region(descr, phys_addr, len);
+ void *ret;
+ if (programmer->map_flash_region)
+ ret = programmer->map_flash_region(descr, phys_addr, len);
+ else
+ ret = fallback_map(descr, phys_addr, len);
msg_gspew("%s: mapping %s from 0x%0*" PRIxPTR " to 0x%0*" PRIxPTR "\n",
__func__, descr, PRIxPTR_WIDTH, phys_addr, PRIxPTR_WIDTH, (uintptr_t) ret);
return ret;
@@ -213,7 +217,10 @@ void *programmer_map_flash_region(const char *descr, uintptr_t phys_addr, size_t
void programmer_unmap_flash_region(void *virt_addr, size_t len)
{
- programmer->unmap_flash_region(virt_addr, len);
+ if (programmer->unmap_flash_region)
+ programmer->unmap_flash_region(virt_addr, len);
+ else
+ fallback_unmap(virt_addr, len);
msg_gspew("%s: unmapped 0x%0*" PRIxPTR "\n", __func__, PRIxPTR_WIDTH, (uintptr_t)virt_addr);
}
@@ -1423,14 +1430,6 @@ int selfcheck(void)
msg_gerr("Programmer %s does not have a valid init function!\n", p->name);
ret = 1;
}
- if (p->map_flash_region == NULL) {
- msg_gerr("Programmer %s does not have a valid map_flash_region function!\n", p->name);
- ret = 1;
- }
- if (p->unmap_flash_region == NULL) {
- msg_gerr("Programmer %s does not have a valid unmap_flash_region function!\n", p->name);
- ret = 1;
- }
}
/* It would be favorable if we could check for the correct layout (especially termination) of various
diff --git a/ft2232_spi.c b/ft2232_spi.c
index 6d7aa6a18..aec21bc9d 100644
--- a/ft2232_spi.c
+++ b/ft2232_spi.c
@@ -711,6 +711,4 @@ const struct programmer_entry programmer_ft2232_spi = {
.type = USB,
.devs.dev = devs_ft2232spi,
.init = ft2232_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/gfxnvidia.c b/gfxnvidia.c
index cab408c62..1d484ead6 100644
--- a/gfxnvidia.c
+++ b/gfxnvidia.c
@@ -150,6 +150,4 @@ const struct programmer_entry programmer_gfxnvidia = {
.type = PCI,
.devs.dev = gfx_nvidia,
.init = gfxnvidia_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/it8212.c b/it8212.c
index 9b4a2638c..8fe2b5985 100644
--- a/it8212.c
+++ b/it8212.c
@@ -111,6 +111,4 @@ const struct programmer_entry programmer_it8212 = {
.type = PCI,
.devs.dev = devs_it8212,
.init = it8212_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/jlink_spi.c b/jlink_spi.c
index ef4d9ca08..63d15b8f8 100644
--- a/jlink_spi.c
+++ b/jlink_spi.c
@@ -536,6 +536,4 @@ const struct programmer_entry programmer_jlink_spi = {
.type = OTHER,
.init = jlink_spi_init,
.devs.note = "SEGGER J-Link and compatible devices\n",
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/linux_mtd.c b/linux_mtd.c
index 26244a840..b8aee0616 100644
--- a/linux_mtd.c
+++ b/linux_mtd.c
@@ -557,6 +557,4 @@ const struct programmer_entry programmer_linux_mtd = {
.type = OTHER,
.devs.note = "Device files /dev/mtd*\n",
.init = linux_mtd_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/linux_spi.c b/linux_spi.c
index b51d9e980..ee023045c 100644
--- a/linux_spi.c
+++ b/linux_spi.c
@@ -251,6 +251,4 @@ const struct programmer_entry programmer_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,
};
diff --git a/mediatek_i2c_spi.c b/mediatek_i2c_spi.c
index 727f93341..3aa9dd97b 100644
--- a/mediatek_i2c_spi.c
+++ b/mediatek_i2c_spi.c
@@ -542,6 +542,4 @@ const struct programmer_entry programmer_mediatek_i2c_spi = {
.type = OTHER,
.devs.note = "Device files /dev/i2c-*\n",
.init = mediatek_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/mstarddc_spi.c b/mstarddc_spi.c
index 88a4afaf3..0c11717bb 100644
--- a/mstarddc_spi.c
+++ b/mstarddc_spi.c
@@ -255,6 +255,4 @@ const struct programmer_entry programmer_mstarddc_spi = {
.type = OTHER,
.devs.note = "MSTAR DDC devices addressable via /dev/i2c-* on Linux.\n",
.init = mstarddc_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/ni845x_spi.c b/ni845x_spi.c
index b5cfc06b6..2750334b9 100644
--- a/ni845x_spi.c
+++ b/ni845x_spi.c
@@ -635,6 +635,4 @@ const struct programmer_entry programmer_ni845x_spi = {
.type = OTHER, // choose other because NI-845x uses own USB implementation
.devs.note = "National Instruments USB-845x\n",
.init = ni845x_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/nic3com.c b/nic3com.c
index 8fafef955..efba9793f 100644
--- a/nic3com.c
+++ b/nic3com.c
@@ -168,6 +168,4 @@ const struct programmer_entry programmer_nic3com = {
.type = PCI,
.devs.dev = nics_3com,
.init = nic3com_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/nicintel.c b/nicintel.c
index fa91ff1a6..47edbb755 100644
--- a/nicintel.c
+++ b/nicintel.c
@@ -133,6 +133,4 @@ const struct programmer_entry programmer_nicintel = {
.type = PCI,
.devs.dev = nics_intel,
.init = nicintel_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/nicintel_eeprom.c b/nicintel_eeprom.c
index 01f907563..a25442076 100644
--- a/nicintel_eeprom.c
+++ b/nicintel_eeprom.c
@@ -538,6 +538,4 @@ const struct programmer_entry programmer_nicintel_eeprom = {
.type = PCI,
.devs.dev = nics_intel_ee,
.init = nicintel_ee_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/nicintel_spi.c b/nicintel_spi.c
index b99da53b6..2821d23a0 100644
--- a/nicintel_spi.c
+++ b/nicintel_spi.c
@@ -337,6 +337,4 @@ const struct programmer_entry programmer_nicintel_spi = {
.type = PCI,
.devs.dev = nics_intel_spi,
.init = nicintel_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/nicnatsemi.c b/nicnatsemi.c
index 7236d4d67..efa879a3b 100644
--- a/nicnatsemi.c
+++ b/nicnatsemi.c
@@ -127,6 +127,4 @@ const struct programmer_entry programmer_nicnatsemi = {
.type = PCI,
.devs.dev = nics_natsemi,
.init = nicnatsemi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/nicrealtek.c b/nicrealtek.c
index c96f99806..103ea9ece 100644
--- a/nicrealtek.c
+++ b/nicrealtek.c
@@ -146,6 +146,4 @@ const struct programmer_entry programmer_nicrealtek = {
.type = PCI,
.devs.dev = nics_realtek,
.init = nicrealtek_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/ogp_spi.c b/ogp_spi.c
index 52b1d4ee9..d85c82306 100644
--- a/ogp_spi.c
+++ b/ogp_spi.c
@@ -178,6 +178,4 @@ const struct programmer_entry programmer_ogp_spi = {
.type = PCI,
.devs.dev = ogp_spi,
.init = ogp_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/parade_lspcon.c b/parade_lspcon.c
index 72f76000e..a50346e7f 100644
--- a/parade_lspcon.c
+++ b/parade_lspcon.c
@@ -507,6 +507,4 @@ const struct programmer_entry programmer_parade_lspcon = {
.type = OTHER,
.devs.note = "Device files /dev/i2c-*.\n",
.init = parade_lspcon_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/pickit2_spi.c b/pickit2_spi.c
index f550b4ff4..e8c80af9d 100644
--- a/pickit2_spi.c
+++ b/pickit2_spi.c
@@ -511,6 +511,4 @@ const struct programmer_entry programmer_pickit2_spi = {
.type = USB,
.devs.dev = devs_pickit2_spi,
.init = pickit2_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/pony_spi.c b/pony_spi.c
index 63359d26d..3a85eebcf 100644
--- a/pony_spi.c
+++ b/pony_spi.c
@@ -272,6 +272,4 @@ const struct programmer_entry programmer_pony_spi = {
/* 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,
};
diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c
index 9ded5858d..a2e5e842c 100644
--- a/raiden_debug_spi.c
+++ b/raiden_debug_spi.c
@@ -1649,6 +1649,4 @@ const struct programmer_entry programmer_raiden_debug_spi = {
.type = USB,
.devs.dev = devs_raiden,
.init = raiden_debug_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/rayer_spi.c b/rayer_spi.c
index cd7a06641..8fdcc01cd 100644
--- a/rayer_spi.c
+++ b/rayer_spi.c
@@ -329,6 +329,4 @@ const struct programmer_entry programmer_rayer_spi = {
/* FIXME */
.devs.note = "RayeR parallel port programmer\n",
.init = rayer_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/realtek_mst_i2c_spi.c b/realtek_mst_i2c_spi.c
index 9637eca27..2a5d5ed6a 100644
--- a/realtek_mst_i2c_spi.c
+++ b/realtek_mst_i2c_spi.c
@@ -544,6 +544,4 @@ const struct programmer_entry programmer_realtek_mst_i2c_spi = {
.type = OTHER,
.devs.note = "Device files /dev/i2c-*.\n",
.init = realtek_mst_i2c_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/satamv.c b/satamv.c
index c3831d1d1..dcd53c753 100644
--- a/satamv.c
+++ b/satamv.c
@@ -211,6 +211,4 @@ const struct programmer_entry programmer_satamv = {
.type = PCI,
.devs.dev = satas_mv,
.init = satamv_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/satasii.c b/satasii.c
index 0f3311f7f..011562ef3 100644
--- a/satasii.c
+++ b/satasii.c
@@ -153,6 +153,4 @@ const struct programmer_entry programmer_satasii = {
.type = PCI,
.devs.dev = satas_sii,
.init = satasii_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/serprog.c b/serprog.c
index 57196a986..12d15d74c 100644
--- a/serprog.c
+++ b/serprog.c
@@ -967,6 +967,5 @@ const struct programmer_entry programmer_serprog = {
.devs.note = "All programmer devices speaking the serprog protocol\n",
.init = serprog_init,
.map_flash_region = serprog_map,
- .unmap_flash_region = fallback_unmap,
.delay = serprog_delay,
};
diff --git a/stlinkv3_spi.c b/stlinkv3_spi.c
index dcbed6dd0..9ae3df5fa 100644
--- a/stlinkv3_spi.c
+++ b/stlinkv3_spi.c
@@ -556,6 +556,4 @@ const struct programmer_entry programmer_stlinkv3_spi = {
.type = USB,
.devs.dev = devs_stlinkv3_spi,
.init = stlinkv3_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};
diff --git a/usbblaster_spi.c b/usbblaster_spi.c
index c5914c417..5e2c020a3 100644
--- a/usbblaster_spi.c
+++ b/usbblaster_spi.c
@@ -232,6 +232,4 @@ const struct programmer_entry programmer_usbblaster_spi = {
.type = USB,
.devs.dev = devs_usbblasterspi,
.init = usbblaster_spi_init,
- .map_flash_region = fallback_map,
- .unmap_flash_region = fallback_unmap,
};