From 67d50156170b17e5bca460ab6e5648e2b11f061c Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Wed, 7 Sep 2022 22:21:39 +1000 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/c/flashrom/+/67404 Tested-by: build bot (Jenkins) Reviewed-by: Felix Singer Reviewed-by: Anastasia Klimchuk Reviewed-by: Angel Pons --- atahpt.c | 2 -- atapromise.c | 2 -- atavia.c | 1 - buspirate_spi.c | 2 -- ch341a_spi.c | 2 -- dediprog.c | 2 -- developerbox_spi.c | 2 -- digilent_spi.c | 2 -- drkaiser.c | 2 -- flashrom.c | 19 +++++++++---------- ft2232_spi.c | 2 -- gfxnvidia.c | 2 -- it8212.c | 2 -- jlink_spi.c | 2 -- linux_mtd.c | 2 -- linux_spi.c | 2 -- mediatek_i2c_spi.c | 2 -- mstarddc_spi.c | 2 -- ni845x_spi.c | 2 -- nic3com.c | 2 -- nicintel.c | 2 -- nicintel_eeprom.c | 2 -- nicintel_spi.c | 2 -- nicnatsemi.c | 2 -- nicrealtek.c | 2 -- ogp_spi.c | 2 -- parade_lspcon.c | 2 -- pickit2_spi.c | 2 -- pony_spi.c | 2 -- raiden_debug_spi.c | 2 -- rayer_spi.c | 2 -- realtek_mst_i2c_spi.c | 2 -- satamv.c | 2 -- satasii.c | 2 -- serprog.c | 1 - stlinkv3_spi.c | 2 -- usbblaster_spi.c | 2 -- 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, };