mirror of
				https://review.coreboot.org/flashrom.git
				synced 2025-11-04 07:00:39 +01:00 
			
		
		
		
	tree: Port programmers to pass programmer_cfg to extractors
Ran;
```
 $ find -name '*.c' -exec sed -i 's/extract_programmer_param_str(NULL/extract_programmer_param_str(cfg/g' '{}' \;
```
Manually fix i2c_helper_linux.c and other cases after.
Treat cases of;
 - pcidev.c , and
 - usb_device.c
as exceptional to be dealt with in later patches.
Change-Id: If7b7987e803d35582dda219652a6fc3ed5729b47
Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/66656
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Anastasia Klimchuk
					
				
			
			
				
	
			
			
			
						parent
						
							c3df94cb96
						
					
				
				
					commit
					5c710ea54a
				
			
							
								
								
									
										2
									
								
								atavia.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								atavia.c
									
									
									
									
									
								
							@@ -145,7 +145,7 @@ static const struct par_master lpc_master_atavia = {
 | 
			
		||||
 | 
			
		||||
static int atavia_init(const struct programmer_cfg *cfg)
 | 
			
		||||
{
 | 
			
		||||
	char *arg = extract_programmer_param_str(NULL, "offset");
 | 
			
		||||
	char *arg = extract_programmer_param_str(cfg, "offset");
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		if (strlen(arg) == 0) {
 | 
			
		||||
			msg_perr("Missing argument for offset.\n");
 | 
			
		||||
 
 | 
			
		||||
@@ -332,7 +332,7 @@ static int buspirate_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	unsigned char *bp_commbuf;
 | 
			
		||||
	int bp_commbufsize;
 | 
			
		||||
 | 
			
		||||
	dev = extract_programmer_param_str(NULL, "dev");
 | 
			
		||||
	dev = extract_programmer_param_str(cfg, "dev");
 | 
			
		||||
	if (dev && !strlen(dev)) {
 | 
			
		||||
		free(dev);
 | 
			
		||||
		dev = NULL;
 | 
			
		||||
@@ -342,7 +342,7 @@ static int buspirate_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		for (i = 0; spispeeds[i].name; i++) {
 | 
			
		||||
			if (!strncasecmp(spispeeds[i].name, tmp, strlen(spispeeds[i].name))) {
 | 
			
		||||
@@ -356,7 +356,7 @@ static int buspirate_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	/* Extract serialspeed parameter */
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "serialspeed");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "serialspeed");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		for (i = 0; serialspeeds[i].name; i++) {
 | 
			
		||||
			if (!strncasecmp(serialspeeds[i].name, tmp, strlen(serialspeeds[i].name))) {
 | 
			
		||||
@@ -369,7 +369,7 @@ static int buspirate_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "pullups");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "pullups");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		if (strcasecmp("on", tmp) == 0)
 | 
			
		||||
			pullup = 1;
 | 
			
		||||
@@ -380,7 +380,7 @@ static int buspirate_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "psus");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "psus");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		if (strcasecmp("on", tmp) == 0)
 | 
			
		||||
			psu = 1;
 | 
			
		||||
 
 | 
			
		||||
@@ -428,7 +428,7 @@ static int enable_flash_ich_fwh_decode(struct pci_dev *dev, enum ich_chipset ich
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	char *idsel = extract_programmer_param_str(NULL, "fwh_idsel");
 | 
			
		||||
	char *idsel = extract_programmer_param_str(NULL, "fwh_idsel"); /* TODO(quasisec): pass prog_param */
 | 
			
		||||
	if (idsel && strlen(idsel)) {
 | 
			
		||||
		if (!implemented) {
 | 
			
		||||
			msg_perr("Error: fwh_idsel= specified, but (yet) unsupported on this chipset.\n");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								dediprog.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								dediprog.c
									
									
									
									
									
								
							@@ -1087,7 +1087,7 @@ static int dediprog_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	long target = FLASH_TYPE_APPLICATION_FLASH_1;
 | 
			
		||||
	int i, ret;
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		for (i = 0; spispeeds[i].name; ++i) {
 | 
			
		||||
			if (!strcasecmp(spispeeds[i].name, param_str)) {
 | 
			
		||||
@@ -1103,7 +1103,7 @@ static int dediprog_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		free(param_str);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "voltage");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "voltage");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		millivolt = parse_voltage(param_str);
 | 
			
		||||
		free(param_str);
 | 
			
		||||
@@ -1112,7 +1112,7 @@ static int dediprog_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		msg_pinfo("Setting voltage to %i mV\n", millivolt);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "id");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "id");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		char prefix0, prefix1;
 | 
			
		||||
		if (sscanf(param_str, "%c%c%d", &prefix0, &prefix1, &id) != 3) {
 | 
			
		||||
@@ -1135,7 +1135,7 @@ static int dediprog_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
	free(param_str);
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "device");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "device");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		char *dev_suffix;
 | 
			
		||||
		if (id != -1) {
 | 
			
		||||
@@ -1162,7 +1162,7 @@ static int dediprog_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
	free(param_str);
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "target");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "target");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		char *target_suffix;
 | 
			
		||||
		errno = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -152,7 +152,7 @@ static int developerbox_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	char *serialno = extract_programmer_param_str(NULL, "serial");
 | 
			
		||||
	char *serialno = extract_programmer_param_str(cfg, "serial");
 | 
			
		||||
	if (serialno)
 | 
			
		||||
		msg_pdbg("Looking for serial number commencing %s\n", serialno);
 | 
			
		||||
	cp210x_handle = usb_dev_get_by_vid_pid_serial(usb_ctx,
 | 
			
		||||
 
 | 
			
		||||
@@ -408,7 +408,7 @@ static int digilent_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		goto close_handle;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		for (i = 0; spispeeds[i].name; ++i) {
 | 
			
		||||
			if (!strcasecmp(spispeeds[i].name, param_str)) {
 | 
			
		||||
@@ -424,7 +424,7 @@ static int digilent_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		free(param_str);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "reset");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "reset");
 | 
			
		||||
	if (param_str && strlen(param_str))
 | 
			
		||||
		reset_board = (param_str[0] == '1');
 | 
			
		||||
	else
 | 
			
		||||
 
 | 
			
		||||
@@ -958,7 +958,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
	char *status = NULL;
 | 
			
		||||
	int size = -1;  /* size for VARIABLE_SIZE chip device */
 | 
			
		||||
 | 
			
		||||
	bustext = extract_programmer_param_str(NULL, "bus");
 | 
			
		||||
	bustext = extract_programmer_param_str(cfg, "bus");
 | 
			
		||||
	msg_pdbg("Requested buses are: %s\n", bustext ? bustext : "default");
 | 
			
		||||
	if (!bustext)
 | 
			
		||||
		bustext = strdup("parallel+lpc+fwh+spi+prog");
 | 
			
		||||
@@ -990,7 +990,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
		msg_pdbg("Support for all flash bus types disabled.\n");
 | 
			
		||||
	free(bustext);
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "spi_write_256_chunksize");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "spi_write_256_chunksize");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		data->spi_write_256_chunksize = strtoul(tmp, &endptr, 0);
 | 
			
		||||
		if (*endptr != '\0' || data->spi_write_256_chunksize < 1) {
 | 
			
		||||
@@ -1001,7 +1001,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
	}
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "spi_blacklist");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "spi_blacklist");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		i = strlen(tmp);
 | 
			
		||||
		if (!strncmp(tmp, "0x", 2)) {
 | 
			
		||||
@@ -1037,7 +1037,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
	}
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "spi_ignorelist");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "spi_ignorelist");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		i = strlen(tmp);
 | 
			
		||||
		if (!strncmp(tmp, "0x", 2)) {
 | 
			
		||||
@@ -1074,7 +1074,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	/* frequency to emulate in Hz (default), KHz, or MHz */
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "freq");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "freq");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		unsigned long int freq;
 | 
			
		||||
		char *units = tmp;
 | 
			
		||||
@@ -1124,7 +1124,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
	}
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "size");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "size");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		size = strtol(tmp, NULL, 10);
 | 
			
		||||
		if (size <= 0 || (size % 1024 != 0)) {
 | 
			
		||||
@@ -1136,7 +1136,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
		free(tmp);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "hwwp");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "hwwp");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		if (!strcmp(tmp, "yes")) {
 | 
			
		||||
			msg_pdbg("Emulated chip will have hardware WP enabled\n");
 | 
			
		||||
@@ -1151,7 +1151,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
		free(tmp);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "emulate");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "emulate");
 | 
			
		||||
	if (!tmp) {
 | 
			
		||||
		if (size != -1) {
 | 
			
		||||
			msg_perr("%s: size parameter is only valid for VARIABLE_SIZE chip.\n", __func__);
 | 
			
		||||
@@ -1275,7 +1275,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	/* Should emulated flash erase to zero (yes/no)? */
 | 
			
		||||
	tmp = extract_programmer_param_str(NULL, "erase_to_zero");
 | 
			
		||||
	tmp = extract_programmer_param_str(cfg, "erase_to_zero");
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		if (data->emu_chip != EMULATE_VARIABLE_SIZE) {
 | 
			
		||||
			msg_perr("%s: erase_to_zero parameter is not valid for real chip.\n", __func__);
 | 
			
		||||
@@ -1295,7 +1295,7 @@ static int init_data(const struct programmer_cfg *cfg,
 | 
			
		||||
	}
 | 
			
		||||
	free(tmp);
 | 
			
		||||
 | 
			
		||||
	status = extract_programmer_param_str(NULL, "spi_status");
 | 
			
		||||
	status = extract_programmer_param_str(cfg, "spi_status");
 | 
			
		||||
	if (status) {
 | 
			
		||||
		unsigned int emu_status;
 | 
			
		||||
 | 
			
		||||
@@ -1371,7 +1371,7 @@ static int dummy_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	memset(data->flashchip_contents, data->erase_to_zero ? 0x00 : 0xff, data->emu_chip_size);
 | 
			
		||||
 | 
			
		||||
	/* Will be freed by shutdown function if necessary. */
 | 
			
		||||
	data->emu_persistent_image = extract_programmer_param_str(NULL, "image");
 | 
			
		||||
	data->emu_persistent_image = extract_programmer_param_str(cfg, "image");
 | 
			
		||||
	if (!data->emu_persistent_image) {
 | 
			
		||||
		/* Nothing else to do. */
 | 
			
		||||
		goto dummy_init_out;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								ft2232_spi.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ft2232_spi.c
									
									
									
									
									
								
							@@ -340,7 +340,7 @@ static int ft2232_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	struct ftdi_context ftdic;
 | 
			
		||||
	struct ft2232_data *spi_data;
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "type");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "type");
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		if (!strcasecmp(arg, "2232H")) {
 | 
			
		||||
			ft2232_type = FTDI_FT2232H_PID;
 | 
			
		||||
@@ -447,7 +447,7 @@ static int ft2232_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	/* Remember reserved pins before pindir gets modified. */
 | 
			
		||||
	const uint8_t rsv_bits = pindir & 0xf0;
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "port");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "port");
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		switch (toupper((unsigned char)*arg)) {
 | 
			
		||||
		case 'A':
 | 
			
		||||
@@ -480,7 +480,7 @@ static int ft2232_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
	free(arg);
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "divisor");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "divisor");
 | 
			
		||||
	if (arg && strlen(arg)) {
 | 
			
		||||
		unsigned int temp = 0;
 | 
			
		||||
		char *endptr;
 | 
			
		||||
@@ -496,7 +496,7 @@ static int ft2232_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	free(arg);
 | 
			
		||||
 | 
			
		||||
	bool csgpiol_set = false;
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "csgpiol");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "csgpiol");
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		csgpiol_set = true;
 | 
			
		||||
		msg_pwarn("Deprecation warning: `csgpiol` is deprecated and will be removed "
 | 
			
		||||
@@ -529,7 +529,7 @@ static int ft2232_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	for (int pin = 0; pin < 4; pin++) {
 | 
			
		||||
		char gpiol_param[7];
 | 
			
		||||
		snprintf(gpiol_param, sizeof(gpiol_param), "gpiol%d", pin);
 | 
			
		||||
		arg = extract_programmer_param_str(NULL, gpiol_param);
 | 
			
		||||
		arg = extract_programmer_param_str(cfg, gpiol_param);
 | 
			
		||||
 | 
			
		||||
		if (!arg)
 | 
			
		||||
			continue;
 | 
			
		||||
@@ -602,8 +602,8 @@ format_error:
 | 
			
		||||
		msg_perr("Unable to select channel (%s).\n", ftdi_get_error_string(&ftdic));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "serial");
 | 
			
		||||
	arg2 = extract_programmer_param_str(NULL, "description");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "serial");
 | 
			
		||||
	arg2 = extract_programmer_param_str(cfg, "description");
 | 
			
		||||
 | 
			
		||||
	f = ftdi_usb_open_desc(&ftdic, ft2232_vid, ft2232_type, arg2, arg);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -96,12 +96,12 @@ static int get_bus_number(char *bus_str)
 | 
			
		||||
	return bus;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int i2c_open_from_programmer_params(uint16_t addr, int force)
 | 
			
		||||
int i2c_open_from_programmer_params(const struct programmer_cfg *cfg, uint16_t addr, int force)
 | 
			
		||||
{
 | 
			
		||||
	int fd = -1;
 | 
			
		||||
 | 
			
		||||
	char *bus_str = extract_programmer_param_str(NULL, "bus");
 | 
			
		||||
	char *device_path = extract_programmer_param_str(NULL, "devpath");
 | 
			
		||||
	char *bus_str = extract_programmer_param_str(cfg, "bus");
 | 
			
		||||
	char *device_path = extract_programmer_param_str(cfg, "devpath");
 | 
			
		||||
 | 
			
		||||
	if (device_path != NULL && bus_str != NULL) {
 | 
			
		||||
		msg_perr("%s: only one of bus and devpath may be specified\n", __func__);
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,8 @@
 | 
			
		||||
 | 
			
		||||
#include <inttypes.h>
 | 
			
		||||
 | 
			
		||||
struct programmer_cfg; /* defined in programmer.h */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * An convenient structure that contains the buffer size and the buffer
 | 
			
		||||
 * pointer. Used to wrap buffer details while doing the I2C data
 | 
			
		||||
@@ -86,7 +88,7 @@ int i2c_open_path(const char *path, uint16_t addr, int force);
 | 
			
		||||
 * I2C device to use from programmer parameters. It is meant to be called
 | 
			
		||||
 * from I2C-based programmers to avoid repeating parameter parsing code.
 | 
			
		||||
 */
 | 
			
		||||
int i2c_open_from_programmer_params(uint16_t addr, int force);
 | 
			
		||||
int i2c_open_from_programmer_params(const struct programmer_cfg *cfg, uint16_t addr, int force);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * i2c_close - closes the file descriptor returned by i2c_open
 | 
			
		||||
 
 | 
			
		||||
@@ -129,7 +129,7 @@ static int get_params(const struct programmer_cfg *cfg,
 | 
			
		||||
	*board_vendor = NULL;
 | 
			
		||||
	*board_model = NULL;
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "boardenable");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "boardenable");
 | 
			
		||||
	if (arg && !strcmp(arg,"force")) {
 | 
			
		||||
		*boardenable = 1;
 | 
			
		||||
	} else if (arg && !strlen(arg)) {
 | 
			
		||||
@@ -143,7 +143,7 @@ static int get_params(const struct programmer_cfg *cfg,
 | 
			
		||||
	}
 | 
			
		||||
	free(arg);
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "boardmismatch");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "boardmismatch");
 | 
			
		||||
	if (arg && !strcmp(arg,"force")) {
 | 
			
		||||
		*boardmismatch = 1;
 | 
			
		||||
	} else if (arg && !strlen(arg)) {
 | 
			
		||||
@@ -157,7 +157,7 @@ static int get_params(const struct programmer_cfg *cfg,
 | 
			
		||||
	}
 | 
			
		||||
	free(arg);
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "laptop");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "laptop");
 | 
			
		||||
	if (arg && !strcmp(arg, "force_I_want_a_brick"))
 | 
			
		||||
		*force_laptop = 1;
 | 
			
		||||
	else if (arg && !strcmp(arg, "this_is_not_a_laptop"))
 | 
			
		||||
@@ -173,7 +173,7 @@ static int get_params(const struct programmer_cfg *cfg,
 | 
			
		||||
	}
 | 
			
		||||
	free(arg);
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "mainboard");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "mainboard");
 | 
			
		||||
	if (arg && strlen(arg)) {
 | 
			
		||||
		if (board_parse_parameter(arg, board_vendor, board_model)) {
 | 
			
		||||
			free(arg);
 | 
			
		||||
 
 | 
			
		||||
@@ -328,7 +328,7 @@ static uint16_t it87spi_probe(const struct programmer_cfg *cfg, uint16_t port)
 | 
			
		||||
 | 
			
		||||
	enter_conf_mode_ite(port);
 | 
			
		||||
 | 
			
		||||
	char *param = extract_programmer_param_str(NULL, "dualbiosindex");
 | 
			
		||||
	char *param = extract_programmer_param_str(cfg, "dualbiosindex");
 | 
			
		||||
	if (param != NULL) {
 | 
			
		||||
		sio_write(port, 0x07, 0x07); /* Select GPIO LDN */
 | 
			
		||||
		tmp = sio_read(port, 0xEF);
 | 
			
		||||
@@ -394,7 +394,7 @@ static uint16_t it87spi_probe(const struct programmer_cfg *cfg, uint16_t port)
 | 
			
		||||
	flashport |= sio_read(port, 0x65);
 | 
			
		||||
	msg_pdbg("Serial flash port 0x%04x\n", flashport);
 | 
			
		||||
	/* Non-default port requested? */
 | 
			
		||||
	param = extract_programmer_param_str(NULL, "it87spiport");
 | 
			
		||||
	param = extract_programmer_param_str(cfg, "it87spiport");
 | 
			
		||||
	if (param) {
 | 
			
		||||
		char *endptr = NULL;
 | 
			
		||||
		unsigned long forced_flashport;
 | 
			
		||||
 
 | 
			
		||||
@@ -203,7 +203,7 @@ static int jlink_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	struct jlink_spi_data *jlink_data = NULL;
 | 
			
		||||
	bool enable_target_power;
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		char *endptr;
 | 
			
		||||
@@ -230,7 +230,7 @@ static int jlink_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	bool use_serial_number;
 | 
			
		||||
	uint32_t serial_number;
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "serial");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "serial");
 | 
			
		||||
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		if (!strlen(arg)) {
 | 
			
		||||
@@ -259,7 +259,7 @@ static int jlink_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	free(arg);
 | 
			
		||||
 | 
			
		||||
	reset_cs = true;
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "cs");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "cs");
 | 
			
		||||
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		if (!strcasecmp(arg, "reset")) {
 | 
			
		||||
@@ -281,7 +281,7 @@ static int jlink_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		msg_pdbg("Using TRST as chip select signal.\n");
 | 
			
		||||
 | 
			
		||||
	enable_target_power = false;
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "power");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "power");
 | 
			
		||||
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		if (!strcasecmp(arg, "on")) {
 | 
			
		||||
 
 | 
			
		||||
@@ -500,7 +500,7 @@ static int linux_mtd_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	int ret = 1;
 | 
			
		||||
	struct linux_mtd_data *data = NULL;
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "dev");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "dev");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		char *endptr;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -177,7 +177,7 @@ static int linux_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	size_t max_kernel_buf_size;
 | 
			
		||||
	struct linux_spi_data *spi_data;
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
	if (param_str && strlen(param_str)) {
 | 
			
		||||
		speed_hz = (uint32_t)strtoul(param_str, &endp, 10) * 1000;
 | 
			
		||||
		if (param_str == endp || speed_hz == 0) {
 | 
			
		||||
@@ -192,7 +192,7 @@ static int linux_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
	free(param_str);
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "dev");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "dev");
 | 
			
		||||
	if (!param_str || !strlen(param_str)) {
 | 
			
		||||
		msg_perr("No SPI device given. Use flashrom -p "
 | 
			
		||||
			 "linux_spi:dev=/dev/spidevX.Y\n");
 | 
			
		||||
 
 | 
			
		||||
@@ -470,7 +470,7 @@ static int get_params(const struct programmer_cfg *cfg, bool *allow_brick)
 | 
			
		||||
	int ret = 0;
 | 
			
		||||
 | 
			
		||||
	*allow_brick = false; /* Default behaviour is to bail. */
 | 
			
		||||
	brick_str = extract_programmer_param_str(NULL, "allow_brick");
 | 
			
		||||
	brick_str = extract_programmer_param_str(cfg, "allow_brick");
 | 
			
		||||
	if (brick_str) {
 | 
			
		||||
		if (!strcmp(brick_str, "yes")) {
 | 
			
		||||
			*allow_brick = true;
 | 
			
		||||
@@ -504,7 +504,7 @@ static int mediatek_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		return SPI_GENERIC_ERROR;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int fd = i2c_open_from_programmer_params(ISP_PORT, 0);
 | 
			
		||||
	int fd = i2c_open_from_programmer_params(cfg, ISP_PORT, 0);
 | 
			
		||||
	if (fd < 0) {
 | 
			
		||||
		msg_perr("Failed to open i2c\n");
 | 
			
		||||
		return fd;
 | 
			
		||||
 
 | 
			
		||||
@@ -159,7 +159,7 @@ static int mstarddc_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	struct mstarddc_spi_data *mstarddc_data;
 | 
			
		||||
 | 
			
		||||
	// Get device, address from command-line
 | 
			
		||||
	char *i2c_device = extract_programmer_param_str(NULL, "dev");
 | 
			
		||||
	char *i2c_device = extract_programmer_param_str(cfg, "dev");
 | 
			
		||||
	if (i2c_device != NULL && strlen(i2c_device) > 0) {
 | 
			
		||||
		char *i2c_address = strchr(i2c_device, ':');
 | 
			
		||||
		if (i2c_address != NULL) {
 | 
			
		||||
@@ -182,7 +182,7 @@ static int mstarddc_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	msg_pinfo("Info: Will try to use device %s and address 0x%02x.\n", i2c_device, mstarddc_addr);
 | 
			
		||||
 | 
			
		||||
	// Get noreset=1 option from command-line
 | 
			
		||||
	char *noreset = extract_programmer_param_str(NULL, "noreset");
 | 
			
		||||
	char *noreset = extract_programmer_param_str(cfg, "noreset");
 | 
			
		||||
	if (noreset != NULL && noreset[0] == '1')
 | 
			
		||||
		mstarddc_doreset = 0;
 | 
			
		||||
	free(noreset);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								ni845x_spi.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ni845x_spi.c
									
									
									
									
									
								
							@@ -553,7 +553,7 @@ static int ni845x_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	int32 tmp = 0;
 | 
			
		||||
 | 
			
		||||
	// read the cs parameter (which Chip select should we use)
 | 
			
		||||
	CS_str = extract_programmer_param_str(NULL, "cs");
 | 
			
		||||
	CS_str = extract_programmer_param_str(cfg, "cs");
 | 
			
		||||
	if (CS_str) {
 | 
			
		||||
		CS_number = CS_str[0] - '0';
 | 
			
		||||
		free(CS_str);
 | 
			
		||||
@@ -563,7 +563,7 @@ static int ni845x_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	voltage = extract_programmer_param_str(NULL, "voltage");
 | 
			
		||||
	voltage = extract_programmer_param_str(cfg, "voltage");
 | 
			
		||||
	if (voltage != NULL) {
 | 
			
		||||
		requested_io_voltage_mV = parse_voltage(voltage);
 | 
			
		||||
		free(voltage);
 | 
			
		||||
@@ -571,9 +571,9 @@ static int ni845x_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
			return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	serial_number = extract_programmer_param_str(NULL, "serial");
 | 
			
		||||
	serial_number = extract_programmer_param_str(cfg, "serial");
 | 
			
		||||
 | 
			
		||||
	speed_str = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	speed_str = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
	if (speed_str) {
 | 
			
		||||
		spi_speed_KHz = strtoul(speed_str, &endptr, 0);
 | 
			
		||||
		if (*endptr) {
 | 
			
		||||
@@ -586,7 +586,7 @@ static int ni845x_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ignore_io_voltage_limits = false;
 | 
			
		||||
	ignore_io_voltage_limits_str = extract_programmer_param_str(NULL, "ignore_io_voltage_limits");
 | 
			
		||||
	ignore_io_voltage_limits_str = extract_programmer_param_str(cfg, "ignore_io_voltage_limits");
 | 
			
		||||
	if (ignore_io_voltage_limits_str
 | 
			
		||||
		&& strcmp(ignore_io_voltage_limits_str, "yes") == 0) {
 | 
			
		||||
		ignore_io_voltage_limits = true;
 | 
			
		||||
 
 | 
			
		||||
@@ -117,7 +117,7 @@ static int ogp_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	uint32_t ogp_reg__ce;
 | 
			
		||||
	uint32_t ogp_reg_sck;
 | 
			
		||||
 | 
			
		||||
	type = extract_programmer_param_str(NULL, "rom");
 | 
			
		||||
	type = extract_programmer_param_str(cfg, "rom");
 | 
			
		||||
 | 
			
		||||
	if (!type) {
 | 
			
		||||
		msg_perr("Please use flashrom -p ogp_spi:rom=... to specify "
 | 
			
		||||
 
 | 
			
		||||
@@ -446,7 +446,7 @@ static int get_params(const struct programmer_cfg *cfg, bool *allow_brick)
 | 
			
		||||
	int ret = 0;
 | 
			
		||||
 | 
			
		||||
	*allow_brick = false; /* Default behaviour is to bail. */
 | 
			
		||||
	brick_str = extract_programmer_param_str(NULL, "allow_brick");
 | 
			
		||||
	brick_str = extract_programmer_param_str(cfg, "allow_brick");
 | 
			
		||||
	if (brick_str) {
 | 
			
		||||
		if (!strcmp(brick_str, "yes")) {
 | 
			
		||||
			*allow_brick = true;
 | 
			
		||||
@@ -479,7 +479,7 @@ static int parade_lspcon_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		return SPI_GENERIC_ERROR;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int fd = i2c_open_from_programmer_params(REGISTER_ADDRESS, 0);
 | 
			
		||||
	int fd = i2c_open_from_programmer_params(cfg, REGISTER_ADDRESS, 0);
 | 
			
		||||
	if (fd < 0)
 | 
			
		||||
		return fd;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								pcidev.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								pcidev.c
									
									
									
									
									
								
							@@ -272,7 +272,7 @@ struct pci_dev *pcidev_init(const struct dev_entry *devs, int bar)
 | 
			
		||||
	pci_filter_init(pacc, &filter);
 | 
			
		||||
 | 
			
		||||
	/* Filter by bb:dd.f (if supplied by the user). */
 | 
			
		||||
	pcidev_bdf = extract_programmer_param_str(NULL, "pci");
 | 
			
		||||
	pcidev_bdf = extract_programmer_param_str(NULL, "pci"); /* TODO(quasisec): pass prog_param */
 | 
			
		||||
	if (pcidev_bdf != NULL) {
 | 
			
		||||
		if ((msg = pci_filter_parse_slot(&filter, pcidev_bdf))) {
 | 
			
		||||
			msg_perr("Error: %s\n", msg);
 | 
			
		||||
 
 | 
			
		||||
@@ -412,7 +412,7 @@ static int pickit2_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	int spispeed_idx = 0;
 | 
			
		||||
	char *param_str;
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
	if (param_str != NULL) {
 | 
			
		||||
		int i = 0;
 | 
			
		||||
		for (; spispeeds[i].name; i++) {
 | 
			
		||||
@@ -430,7 +430,7 @@ static int pickit2_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int millivolt = 3500;
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "voltage");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "voltage");
 | 
			
		||||
	if (param_str != NULL) {
 | 
			
		||||
		millivolt = parse_voltage(param_str);
 | 
			
		||||
		free(param_str);
 | 
			
		||||
 
 | 
			
		||||
@@ -130,7 +130,7 @@ static int get_params(const struct programmer_cfg *cfg, enum pony_type *type, in
 | 
			
		||||
	*have_device = 0;
 | 
			
		||||
 | 
			
		||||
	/* The parameter is in format "dev=/dev/device,type=serbang" */
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "dev");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "dev");
 | 
			
		||||
	if (arg && strlen(arg)) {
 | 
			
		||||
		sp_fd = sp_openserport(arg, 9600);
 | 
			
		||||
		if (sp_fd == SER_INV_FD)
 | 
			
		||||
@@ -140,7 +140,7 @@ static int get_params(const struct programmer_cfg *cfg, enum pony_type *type, in
 | 
			
		||||
	}
 | 
			
		||||
	free(arg);
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "type");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "type");
 | 
			
		||||
	if (arg && !strcasecmp(arg, "serbang")) {
 | 
			
		||||
		*type = TYPE_SERBANG;
 | 
			
		||||
	} else if (arg && !strcasecmp(arg, "si_prog")) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1432,7 +1432,7 @@ static int configure_protocol(struct raiden_debug_spi_data *ctx_data)
 | 
			
		||||
static int get_ap_request_type(const struct programmer_cfg *cfg)
 | 
			
		||||
{
 | 
			
		||||
	int ap_request = RAIDEN_DEBUG_SPI_REQ_ENABLE_AP;
 | 
			
		||||
	char *custom_rst_str = extract_programmer_param_str(NULL, "custom_rst");
 | 
			
		||||
	char *custom_rst_str = extract_programmer_param_str(cfg, "custom_rst");
 | 
			
		||||
	if (custom_rst_str) {
 | 
			
		||||
		if (!strcasecmp(custom_rst_str, "true")) {
 | 
			
		||||
			ap_request = RAIDEN_DEBUG_SPI_REQ_ENABLE_AP_CUSTOM;
 | 
			
		||||
@@ -1456,7 +1456,7 @@ static int get_target(const struct programmer_cfg *cfg)
 | 
			
		||||
	 */
 | 
			
		||||
	int request_enable = RAIDEN_DEBUG_SPI_REQ_ENABLE;
 | 
			
		||||
 | 
			
		||||
	char *target_str = extract_programmer_param_str(NULL, "target");
 | 
			
		||||
	char *target_str = extract_programmer_param_str(cfg, "target");
 | 
			
		||||
	if (target_str) {
 | 
			
		||||
		if (!strcasecmp(target_str, "ap"))
 | 
			
		||||
			request_enable = get_ap_request_type(cfg);
 | 
			
		||||
@@ -1485,7 +1485,7 @@ static void free_dev_list(struct usb_device **dev_lst)
 | 
			
		||||
static int raiden_debug_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
{
 | 
			
		||||
	struct usb_match match;
 | 
			
		||||
	char *serial = extract_programmer_param_str(NULL, "serial");
 | 
			
		||||
	char *serial = extract_programmer_param_str(cfg, "serial");
 | 
			
		||||
	struct usb_device *current;
 | 
			
		||||
	struct usb_device *device = NULL;
 | 
			
		||||
	int found = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -244,7 +244,7 @@ static int rayer_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	uint8_t lpt_outbyte;
 | 
			
		||||
 | 
			
		||||
	/* Non-default port requested? */
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "iobase");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "iobase");
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		char *endptr = NULL;
 | 
			
		||||
		unsigned long tmp;
 | 
			
		||||
@@ -277,7 +277,7 @@ static int rayer_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	msg_pdbg("Using address 0x%x as I/O base for parallel port access.\n",
 | 
			
		||||
		 lpt_iobase);
 | 
			
		||||
 | 
			
		||||
	arg = extract_programmer_param_str(NULL, "type");
 | 
			
		||||
	arg = extract_programmer_param_str(cfg, "type");
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		for (; prog->type != NULL; prog++) {
 | 
			
		||||
			if (strcasecmp(arg, prog->type) == 0) {
 | 
			
		||||
 
 | 
			
		||||
@@ -450,7 +450,7 @@ static int get_params(const struct programmer_cfg *cfg, bool *reset, bool *enter
 | 
			
		||||
	int ret = 0;
 | 
			
		||||
 | 
			
		||||
	*allow_brick = false; /* Default behaviour is to bail. */
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "allow_brick");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "allow_brick");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		if (!strcmp(param_str, "yes")) {
 | 
			
		||||
			*allow_brick = true;
 | 
			
		||||
@@ -462,7 +462,7 @@ static int get_params(const struct programmer_cfg *cfg, bool *reset, bool *enter
 | 
			
		||||
	free(param_str);
 | 
			
		||||
 | 
			
		||||
	*reset = false; /* Default behaviour is no MCU reset on tear-down. */
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "reset_mcu");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "reset_mcu");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		if (param_str[0] == '1') {
 | 
			
		||||
			*reset = true;
 | 
			
		||||
@@ -476,7 +476,7 @@ static int get_params(const struct programmer_cfg *cfg, bool *reset, bool *enter
 | 
			
		||||
	free(param_str);
 | 
			
		||||
 | 
			
		||||
	*enter_isp = true; /* Default behaviour is enter ISP on setup. */
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "enter_isp");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "enter_isp");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		if (param_str[0] == '1') {
 | 
			
		||||
			*enter_isp = true;
 | 
			
		||||
@@ -512,7 +512,7 @@ static int realtek_mst_i2c_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		return SPI_GENERIC_ERROR;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int fd = i2c_open_from_programmer_params(REGISTER_ADDRESS, 0);
 | 
			
		||||
	int fd = i2c_open_from_programmer_params(cfg, REGISTER_ADDRESS, 0);
 | 
			
		||||
	if (fd < 0)
 | 
			
		||||
		return fd;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -416,7 +416,7 @@ static int handle_speed(const struct programmer_cfg *cfg,
 | 
			
		||||
	int16_t spireadmode_idx = -1;
 | 
			
		||||
	char *param_str;
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
	if (param_str != NULL) {
 | 
			
		||||
		unsigned int i;
 | 
			
		||||
		for (i = 0; i < ARRAY_SIZE(spispeeds); i++) {
 | 
			
		||||
@@ -440,7 +440,7 @@ static int handle_speed(const struct programmer_cfg *cfg,
 | 
			
		||||
		free(param_str);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "spireadmode");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "spireadmode");
 | 
			
		||||
	if (param_str != NULL) {
 | 
			
		||||
		unsigned int i;
 | 
			
		||||
		for (i = 0; i < ARRAY_SIZE(spireadmodes); i++) {
 | 
			
		||||
@@ -529,7 +529,7 @@ static int handle_imc(const struct programmer_cfg *cfg, struct pci_dev *dev, enu
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
	bool amd_imc_force = false;
 | 
			
		||||
	char *param_value = extract_programmer_param_str(NULL, "amd_imc_force");
 | 
			
		||||
	char *param_value = extract_programmer_param_str(cfg, "amd_imc_force");
 | 
			
		||||
	if (param_value && !strcmp(param_value, "yes")) {
 | 
			
		||||
		amd_imc_force = true;
 | 
			
		||||
		msg_pspew("amd_imc_force enabled.\n");
 | 
			
		||||
 
 | 
			
		||||
@@ -574,7 +574,7 @@ static int serprog_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	int have_device = 0;
 | 
			
		||||
 | 
			
		||||
	/* the parameter is either of format "dev=/dev/device[:baud]" or "ip=ip:port" */
 | 
			
		||||
	device = extract_programmer_param_str(NULL, "dev");
 | 
			
		||||
	device = extract_programmer_param_str(cfg, "dev");
 | 
			
		||||
	if (device && strlen(device)) {
 | 
			
		||||
		char *baud_str = strstr(device, ":");
 | 
			
		||||
		if (baud_str != NULL) {
 | 
			
		||||
@@ -611,7 +611,7 @@ static int serprog_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
	free(device);
 | 
			
		||||
 | 
			
		||||
	device = extract_programmer_param_str(NULL, "ip");
 | 
			
		||||
	device = extract_programmer_param_str(cfg, "ip");
 | 
			
		||||
	if (have_device && device) {
 | 
			
		||||
		msg_perr("Error: Both host and device specified.\n"
 | 
			
		||||
			 "Please use either dev= or ip= but not both.\n");
 | 
			
		||||
@@ -739,7 +739,7 @@ static int serprog_init(const struct programmer_cfg *cfg)
 | 
			
		||||
			spi_master_serprog.max_data_read = v;
 | 
			
		||||
			msg_pdbg(MSGHEADER "Maximum read-n length is %d\n", v);
 | 
			
		||||
		}
 | 
			
		||||
		spispeed = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
		spispeed = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
		if (spispeed && strlen(spispeed)) {
 | 
			
		||||
			uint32_t f_spi_req, f_spi;
 | 
			
		||||
			uint8_t buf[4];
 | 
			
		||||
 
 | 
			
		||||
@@ -490,7 +490,7 @@ static int stlinkv3_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "serial");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "serial");
 | 
			
		||||
	if (param_str)
 | 
			
		||||
		msg_pdbg("Opening STLINK-V3 with serial: %s\n", param_str);
 | 
			
		||||
 | 
			
		||||
@@ -515,7 +515,7 @@ static int stlinkv3_spi_init(const struct programmer_cfg *cfg)
 | 
			
		||||
	}
 | 
			
		||||
	free(param_str);
 | 
			
		||||
 | 
			
		||||
	param_str = extract_programmer_param_str(NULL, "spispeed");
 | 
			
		||||
	param_str = extract_programmer_param_str(cfg, "spispeed");
 | 
			
		||||
	if (param_str) {
 | 
			
		||||
		sck_freq_kHz = strtoul(param_str, &endptr, 0);
 | 
			
		||||
		if (*endptr || sck_freq_kHz == 0) {
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,7 @@
 | 
			
		||||
static void usb_match_value_init(struct usb_match_value *match,
 | 
			
		||||
				 char const *parameter)
 | 
			
		||||
{
 | 
			
		||||
	char *string = extract_programmer_param_str(NULL, parameter);
 | 
			
		||||
	char *string = extract_programmer_param_str(NULL, parameter); /* TODO(quasisec): pass prog_param */
 | 
			
		||||
 | 
			
		||||
	match->name = parameter;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user