From 1233e638336f2d67be57b31bb769aa85aa5bd583 Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Fri, 12 Aug 2022 13:37:13 +1000 Subject: tree: Allow passing programmer_cfg directly to programmer Modify the type signature of each programmer entry-point xxx_init() functions to allow for the consumption of the programmer parameterisation string data. ``` $ find -name '*.c' -exec sed -i 's/_init(void)/_init(const char *prog_param)/g' '{}' \; $ find -name '*.c' -exec sed -i 's/get_params(/get_params(const char *prog_param, /g' '{}' \; $ find -name '*.c' -exec sed -i 's/const char \*prog_param)/const struct programmer_cfg *cfg)/g' '{}' \; $ find -name '*.c' -exec sed -i 's/const char \*prog_param,/const struct programmer_cfg *cfg,/g' '{}' \; ``` and manually fix up any remaining parts. Change-Id: I8bab51a635b9d3a43e1619a7a32b334f4ce2cdd2 Signed-off-by: Edward O'Callaghan Reviewed-on: https://review.coreboot.org/c/flashrom/+/66655 Tested-by: build bot (Jenkins) Reviewed-by: Anastasia Klimchuk Reviewed-by: Felix Singer --- atahpt.c | 2 +- atapromise.c | 2 +- atavia.c | 2 +- buspirate_spi.c | 2 +- ch341a_spi.c | 2 +- dediprog.c | 2 +- developerbox_spi.c | 2 +- digilent_spi.c | 2 +- drkaiser.c | 2 +- dummyflasher.c | 2 +- flashrom.c | 2 +- ft2232_spi.c | 2 +- gfxnvidia.c | 2 +- include/programmer.h | 4 ++-- internal.c | 8 +++++--- it8212.c | 2 +- jlink_spi.c | 2 +- linux_mtd.c | 2 +- linux_spi.c | 2 +- mediatek_i2c_spi.c | 6 +++--- 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 | 6 +++--- pickit2_spi.c | 2 +- pony_spi.c | 6 +++--- raiden_debug_spi.c | 2 +- rayer_spi.c | 2 +- realtek_mst_i2c_spi.c | 6 +++--- satamv.c | 2 +- satasii.c | 2 +- serprog.c | 2 +- stlinkv3_spi.c | 2 +- usbblaster_spi.c | 2 +- 40 files changed, 53 insertions(+), 51 deletions(-) diff --git a/atahpt.c b/atahpt.c index 1cefef3f..2ab51a80 100644 --- a/atahpt.c +++ b/atahpt.c @@ -84,7 +84,7 @@ static const struct par_master par_master_atahpt = { .shutdown = atahpt_shutdown, }; -static int atahpt_init(void) +static int atahpt_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uint32_t io_base_addr; diff --git a/atapromise.c b/atapromise.c index a901e8b3..4be2f716 100644 --- a/atapromise.c +++ b/atapromise.c @@ -129,7 +129,7 @@ static const struct par_master par_master_atapromise = { .shutdown = atapromise_shutdown, }; -static int atapromise_init(void) +static int atapromise_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uint32_t io_base_addr; diff --git a/atavia.c b/atavia.c index fe86664d..45078204 100644 --- a/atavia.c +++ b/atavia.c @@ -143,7 +143,7 @@ static const struct par_master lpc_master_atavia = { .chip_writen = fallback_chip_writen, }; -static int atavia_init(void) +static int atavia_init(const struct programmer_cfg *cfg) { char *arg = extract_programmer_param_str(NULL, "offset"); if (arg) { diff --git a/buspirate_spi.c b/buspirate_spi.c index 2fcf445b..8aa72431 100644 --- a/buspirate_spi.c +++ b/buspirate_spi.c @@ -314,7 +314,7 @@ static int buspirate_spi_send_command_v2(const struct flashctx *flash, unsigned */ #define BP_DIVISOR(baud) ((4000000/(baud)) - 1) -static int buspirate_spi_init(void) +static int buspirate_spi_init(const struct programmer_cfg *cfg) { char *tmp; char *dev; diff --git a/ch341a_spi.c b/ch341a_spi.c index 3978d992..78b9cee6 100644 --- a/ch341a_spi.c +++ b/ch341a_spi.c @@ -420,7 +420,7 @@ static const struct spi_master spi_master_ch341a_spi = { .probe_opcode = default_spi_probe_opcode, }; -static int ch341a_spi_init(void) +static int ch341a_spi_init(const struct programmer_cfg *cfg) { if (handle != NULL) { msg_cerr("%s: handle already set! Please report a bug at flashrom@flashrom.org\n", __func__); diff --git a/dediprog.c b/dediprog.c index 86d72aac..cd115056 100644 --- a/dediprog.c +++ b/dediprog.c @@ -1076,7 +1076,7 @@ static int dediprog_open(int index, struct dediprog_data *dp_data) return 0; } -static int dediprog_init(void) +static int dediprog_init(const struct programmer_cfg *cfg) { char *param_str; int spispeed_idx = 1; diff --git a/developerbox_spi.c b/developerbox_spi.c index d585418a..16fa351f 100644 --- a/developerbox_spi.c +++ b/developerbox_spi.c @@ -142,7 +142,7 @@ static int developerbox_spi_shutdown(void *spi_data) return 0; } -static int developerbox_spi_init(void) +static int developerbox_spi_init(const struct programmer_cfg *cfg) { struct libusb_context *usb_ctx; libusb_device_handle *cp210x_handle; diff --git a/digilent_spi.c b/digilent_spi.c index a16ae7b3..b6e998d5 100644 --- a/digilent_spi.c +++ b/digilent_spi.c @@ -374,7 +374,7 @@ static const struct digilent_spispeeds spispeeds[] = { { NULL, 0 }, }; -static int digilent_spi_init(void) +static int digilent_spi_init(const struct programmer_cfg *cfg) { char *param_str; uint32_t speed_hz = spispeeds[0].speed; diff --git a/drkaiser.c b/drkaiser.c index 9267dfe0..2fb6b910 100644 --- a/drkaiser.c +++ b/drkaiser.c @@ -81,7 +81,7 @@ static const struct par_master par_master_drkaiser = { .shutdown = drkaiser_shutdown, }; -static int drkaiser_init(void) +static int drkaiser_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uint32_t addr; diff --git a/dummyflasher.c b/dummyflasher.c index 03c7f274..f27ad464 100644 --- a/dummyflasher.c +++ b/dummyflasher.c @@ -1338,7 +1338,7 @@ static int init_data(struct emu_data *data, enum chipbustype *dummy_buses_suppor return 0; } -static int dummy_init(void) +static int dummy_init(const struct programmer_cfg *cfg) { struct stat image_stat; diff --git a/flashrom.c b/flashrom.c index 5b7bbbd2..0e2fa42e 100644 --- a/flashrom.c +++ b/flashrom.c @@ -151,7 +151,7 @@ int programmer_init(const struct programmer_entry *prog, const char *param) programmer_param = param; msg_pdbg("Initializing %s programmer\n", programmer->name); - ret = programmer->init(); + ret = programmer->init(NULL); if (programmer_param && strlen(programmer_param)) { if (ret != 0) { /* It is quite possible that any unhandled programmer parameter would have been valid, diff --git a/ft2232_spi.c b/ft2232_spi.c index 7c310132..c7dbbb2a 100644 --- a/ft2232_spi.c +++ b/ft2232_spi.c @@ -304,7 +304,7 @@ static const struct spi_master spi_master_ft2232 = { }; /* Returns 0 upon success, a negative number upon errors. */ -static int ft2232_spi_init(void) +static int ft2232_spi_init(const struct programmer_cfg *cfg) { int ret = 0; unsigned char buf[512]; diff --git a/gfxnvidia.c b/gfxnvidia.c index 0da3e8d4..19fa2b66 100644 --- a/gfxnvidia.c +++ b/gfxnvidia.c @@ -105,7 +105,7 @@ static const struct par_master par_master_gfxnvidia = { .shutdown = gfxnvidia_shutdown, }; -static int gfxnvidia_init(void) +static int gfxnvidia_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uint32_t reg32; diff --git a/include/programmer.h b/include/programmer.h index c58459fd..95e25ca6 100644 --- a/include/programmer.h +++ b/include/programmer.h @@ -47,7 +47,7 @@ struct programmer_entry { const char *const note; } devs; - int (*init) (void); + int (*init) (const struct programmer_cfg *cfg); void *(*map_flash_region) (const char *descr, uintptr_t phys_addr, size_t len); void (*unmap_flash_region) (void *virt_addr, size_t len); @@ -376,7 +376,7 @@ int init_superio_ite(void); #if CONFIG_LINUX_MTD == 1 /* trivial wrapper to avoid cluttering internal_init() with #if */ -static inline int try_mtd(void) { return programmer_linux_mtd.init(); }; +static inline int try_mtd(void) { return programmer_linux_mtd.init(NULL); }; #else static inline int try_mtd(void) { return 1; }; #endif diff --git a/internal.c b/internal.c index 8e267cdb..66eebdc9 100644 --- a/internal.c +++ b/internal.c @@ -116,7 +116,8 @@ static const struct par_master par_master_internal = { .chip_writen = fallback_chip_writen, }; -static int get_params(int *boardenable, int *boardmismatch, +static int get_params(const struct programmer_cfg *cfg, + int *boardenable, int *boardmismatch, int *force_laptop, int *not_a_laptop, char **board_vendor, char **board_model) { @@ -188,7 +189,7 @@ static int get_params(int *boardenable, int *boardmismatch, return 0; } -static int internal_init(void) +static int internal_init(const struct programmer_cfg *cfg) { int ret = 0; int force_laptop; @@ -200,7 +201,8 @@ static int internal_init(void) const char *cb_model = NULL; #endif - ret = get_params(&force_boardenable, &force_boardmismatch, + ret = get_params(cfg, + &force_boardenable, &force_boardmismatch, &force_laptop, ¬_a_laptop, &board_vendor, &board_model); if (ret) diff --git a/it8212.c b/it8212.c index ac8126cc..4d736659 100644 --- a/it8212.c +++ b/it8212.c @@ -74,7 +74,7 @@ static const struct par_master par_master_it8212 = { .shutdown = it8212_shutdown, }; -static int it8212_init(void) +static int it8212_init(const struct programmer_cfg *cfg) { uint8_t *bar; diff --git a/jlink_spi.c b/jlink_spi.c index eba8dbc3..48239f3b 100644 --- a/jlink_spi.c +++ b/jlink_spi.c @@ -193,7 +193,7 @@ static const struct spi_master spi_master_jlink_spi = { .probe_opcode = default_spi_probe_opcode, }; -static int jlink_spi_init(void) +static int jlink_spi_init(const struct programmer_cfg *cfg) { char *arg; unsigned long speed = 0; diff --git a/linux_mtd.c b/linux_mtd.c index 414a6b47..ef908859 100644 --- a/linux_mtd.c +++ b/linux_mtd.c @@ -493,7 +493,7 @@ linux_mtd_setup_exit: return ret; } -static int linux_mtd_init(void) +static int linux_mtd_init(const struct programmer_cfg *cfg) { char *param_str; int dev_num = 0; diff --git a/linux_spi.c b/linux_spi.c index cef7909a..b54ab17a 100644 --- a/linux_spi.c +++ b/linux_spi.c @@ -165,7 +165,7 @@ out: return result; } -static int linux_spi_init(void) +static int linux_spi_init(const struct programmer_cfg *cfg) { char *param_str, *endp; uint32_t speed_hz = 2 * 1000 * 1000; diff --git a/mediatek_i2c_spi.c b/mediatek_i2c_spi.c index 4133edbc..c460da18 100644 --- a/mediatek_i2c_spi.c +++ b/mediatek_i2c_spi.c @@ -464,7 +464,7 @@ static const struct spi_master spi_master_i2c_mediatek = { .probe_opcode = default_spi_probe_opcode, }; -static int get_params(bool *allow_brick) +static int get_params(const struct programmer_cfg *cfg, bool *allow_brick) { char *brick_str = NULL; int ret = 0; @@ -484,12 +484,12 @@ static int get_params(bool *allow_brick) return ret; } -static int mediatek_init(void) +static int mediatek_init(const struct programmer_cfg *cfg) { int ret; bool allow_brick; - if (get_params(&allow_brick)) + if (get_params(cfg, &allow_brick)) return SPI_GENERIC_ERROR; /* diff --git a/mstarddc_spi.c b/mstarddc_spi.c index 50a75d30..5b9e40e0 100644 --- a/mstarddc_spi.c +++ b/mstarddc_spi.c @@ -150,7 +150,7 @@ static const struct spi_master spi_master_mstarddc = { }; /* Returns 0 upon success, a negative number upon errors. */ -static int mstarddc_spi_init(void) +static int mstarddc_spi_init(const struct programmer_cfg *cfg) { int ret = 0; int mstarddc_fd = -1; diff --git a/ni845x_spi.c b/ni845x_spi.c index f75c3991..0096307b 100644 --- a/ni845x_spi.c +++ b/ni845x_spi.c @@ -540,7 +540,7 @@ static const struct spi_master spi_programmer_ni845x = { .probe_opcode = default_spi_probe_opcode, }; -static int ni845x_spi_init(void) +static int ni845x_spi_init(const struct programmer_cfg *cfg) { char *speed_str = NULL; char *CS_str = NULL; diff --git a/nic3com.c b/nic3com.c index de7a5e56..fd4fe2b5 100644 --- a/nic3com.c +++ b/nic3com.c @@ -101,7 +101,7 @@ static const struct par_master par_master_nic3com = { .shutdown = nic3com_shutdown, }; -static int nic3com_init(void) +static int nic3com_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uint32_t io_base_addr = 0; diff --git a/nicintel.c b/nicintel.c index e1656118..9ef03157 100644 --- a/nicintel.c +++ b/nicintel.c @@ -77,7 +77,7 @@ static const struct par_master par_master_nicintel = { .shutdown = nicintel_shutdown, }; -static int nicintel_init(void) +static int nicintel_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uintptr_t addr; diff --git a/nicintel_eeprom.c b/nicintel_eeprom.c index c09c1d11..8e59a458 100644 --- a/nicintel_eeprom.c +++ b/nicintel_eeprom.c @@ -479,7 +479,7 @@ static const struct opaque_master opaque_master_nicintel_ee_i210 = { .shutdown = nicintel_ee_shutdown_i210, }; -static int nicintel_ee_init(void) +static int nicintel_ee_init(const struct programmer_cfg *cfg) { const struct opaque_master *mst; uint32_t eec = 0; diff --git a/nicintel_spi.c b/nicintel_spi.c index 54d1c3c4..74cb1223 100644 --- a/nicintel_spi.c +++ b/nicintel_spi.c @@ -285,7 +285,7 @@ static int nicintel_spi_i210_enable_flash(struct nicintel_spi_data *data) return 0; } -static int nicintel_spi_init(void) +static int nicintel_spi_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; diff --git a/nicnatsemi.c b/nicnatsemi.c index 9d98155c..b9c58bc3 100644 --- a/nicnatsemi.c +++ b/nicnatsemi.c @@ -88,7 +88,7 @@ static const struct par_master par_master_nicnatsemi = { .shutdown = nicnatsemi_shutdown, }; -static int nicnatsemi_init(void) +static int nicnatsemi_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uint32_t io_base_addr; diff --git a/nicrealtek.c b/nicrealtek.c index ebe9dab5..61eb38ba 100644 --- a/nicrealtek.c +++ b/nicrealtek.c @@ -97,7 +97,7 @@ static const struct par_master par_master_nicrealtek = { .shutdown = nicrealtek_shutdown, }; -static int nicrealtek_init(void) +static int nicrealtek_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uint32_t io_base_addr = 0; diff --git a/ogp_spi.c b/ogp_spi.c index b3c404c2..a994cb90 100644 --- a/ogp_spi.c +++ b/ogp_spi.c @@ -107,7 +107,7 @@ static int ogp_spi_shutdown(void *data) return 0; } -static int ogp_spi_init(void) +static int ogp_spi_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; char *type; diff --git a/parade_lspcon.c b/parade_lspcon.c index 815f398a..a82cc315 100644 --- a/parade_lspcon.c +++ b/parade_lspcon.c @@ -440,7 +440,7 @@ static const struct spi_master spi_master_parade_lspcon = { .probe_opcode = default_spi_probe_opcode, }; -static int get_params(bool *allow_brick) +static int get_params(const struct programmer_cfg *cfg, bool *allow_brick) { char *brick_str = NULL; int ret = 0; @@ -460,11 +460,11 @@ static int get_params(bool *allow_brick) return ret; } -static int parade_lspcon_init(void) +static int parade_lspcon_init(const struct programmer_cfg *cfg) { bool allow_brick; - if (get_params(&allow_brick)) + if (get_params(cfg, &allow_brick)) return SPI_GENERIC_ERROR; /* diff --git a/pickit2_spi.c b/pickit2_spi.c index 7c84d96d..312eaeae 100644 --- a/pickit2_spi.c +++ b/pickit2_spi.c @@ -388,7 +388,7 @@ static const struct spi_master spi_master_pickit2 = { .probe_opcode = default_spi_probe_opcode, }; -static int pickit2_spi_init(void) +static int pickit2_spi_init(const struct programmer_cfg *cfg) { uint8_t buf[CMD_LENGTH] = { CMD_EXEC_SCRIPT, diff --git a/pony_spi.c b/pony_spi.c index 50f44da7..69be3aa0 100644 --- a/pony_spi.c +++ b/pony_spi.c @@ -120,7 +120,7 @@ static int pony_spi_shutdown(void *data) return ret; } -static int get_params(enum pony_type *type, int *have_device) +static int get_params(const struct programmer_cfg *cfg, enum pony_type *type, int *have_device) { char *arg = NULL; int ret = 0; @@ -159,7 +159,7 @@ static int get_params(enum pony_type *type, int *have_device) return ret; } -static int pony_spi_init(void) +static int pony_spi_init(const struct programmer_cfg *cfg) { int i, data_out; enum pony_type type; @@ -167,7 +167,7 @@ static int pony_spi_init(void) int have_device; int have_prog = 0; - if (get_params(&type, &have_device)) { + if (get_params(cfg, &type, &have_device)) { serialport_shutdown(NULL); return 1; } diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c index 3382b9ea..c6689acd 100644 --- a/raiden_debug_spi.c +++ b/raiden_debug_spi.c @@ -1482,7 +1482,7 @@ static void free_dev_list(struct usb_device **dev_lst) dev = usb_device_free(dev); } -static int raiden_debug_spi_init(void) +static int raiden_debug_spi_init(const struct programmer_cfg *cfg) { struct usb_match match; char *serial = extract_programmer_param_str(NULL, "serial"); diff --git a/rayer_spi.c b/rayer_spi.c index 82c49b32..95f7bbcf 100644 --- a/rayer_spi.c +++ b/rayer_spi.c @@ -235,7 +235,7 @@ static const struct bitbang_spi_master bitbang_spi_master_rayer = { .half_period = 0, }; -static int rayer_spi_init(void) +static int rayer_spi_init(const struct programmer_cfg *cfg) { const struct rayer_programmer *prog = rayer_spi_types; char *arg = NULL; diff --git a/realtek_mst_i2c_spi.c b/realtek_mst_i2c_spi.c index 6c2b86f1..c4482acf 100644 --- a/realtek_mst_i2c_spi.c +++ b/realtek_mst_i2c_spi.c @@ -444,7 +444,7 @@ static const struct spi_master spi_master_i2c_realtek_mst = { .probe_opcode = default_spi_probe_opcode, }; -static int get_params(bool *reset, bool *enter_isp, bool *allow_brick) +static int get_params(const struct programmer_cfg *cfg, bool *reset, bool *enter_isp, bool *allow_brick) { char *param_str; int ret = 0; @@ -492,12 +492,12 @@ static int get_params(bool *reset, bool *enter_isp, bool *allow_brick) return ret; } -static int realtek_mst_i2c_spi_init(void) +static int realtek_mst_i2c_spi_init(const struct programmer_cfg *cfg) { int ret = 0; bool reset, enter_isp, allow_brick; - if (get_params(&reset, &enter_isp, &allow_brick)) + if (get_params(cfg, &reset, &enter_isp, &allow_brick)) return SPI_GENERIC_ERROR; /* diff --git a/satamv.c b/satamv.c index 8c79f086..19ecf227 100644 --- a/satamv.c +++ b/satamv.c @@ -114,7 +114,7 @@ static const struct par_master par_master_satamv = { * 0xc08 PCI BAR2 (Flash/NVRAM) Control * 0x1046c Flash Parameters */ -static int satamv_init(void) +static int satamv_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uintptr_t addr; diff --git a/satasii.c b/satasii.c index 7e795c2d..a56171b2 100644 --- a/satasii.c +++ b/satasii.c @@ -105,7 +105,7 @@ static const struct par_master par_master_satasii = { .shutdown = satasii_shutdown, }; -static int satasii_init(void) +static int satasii_init(const struct programmer_cfg *cfg) { struct pci_dev *dev = NULL; uint32_t addr; diff --git a/serprog.c b/serprog.c index 44802854..e0258930 100644 --- a/serprog.c +++ b/serprog.c @@ -564,7 +564,7 @@ static const struct par_master par_master_serprog = { static enum chipbustype serprog_buses_supported = BUS_NONE; -static int serprog_init(void) +static int serprog_init(const struct programmer_cfg *cfg) { uint16_t iface; unsigned char pgmname[17]; diff --git a/stlinkv3_spi.c b/stlinkv3_spi.c index ccba1d91..07fdedd6 100644 --- a/stlinkv3_spi.c +++ b/stlinkv3_spi.c @@ -474,7 +474,7 @@ static const struct spi_master spi_programmer_stlinkv3 = { .probe_opcode = default_spi_probe_opcode, }; -static int stlinkv3_spi_init(void) +static int stlinkv3_spi_init(const struct programmer_cfg *cfg) { uint16_t sck_freq_kHz = 1000; // selecting 1 MHz SCK is a good bet char *param_str; diff --git a/usbblaster_spi.c b/usbblaster_spi.c index b1ab80a3..2880a3c3 100644 --- a/usbblaster_spi.c +++ b/usbblaster_spi.c @@ -177,7 +177,7 @@ static const struct spi_master spi_master_usbblaster = { }; /* Returns 0 upon success, a negative number upon errors. */ -static int usbblaster_spi_init(void) +static int usbblaster_spi_init(const struct programmer_cfg *cfg) { uint8_t buf[BUF_SIZE + 1] = { 0 }; struct ftdi_context ftdic; -- cgit v1.2.3