summaryrefslogtreecommitdiffstats
path: root/dummyflasher.c
diff options
context:
space:
mode:
Diffstat (limited to 'dummyflasher.c')
-rw-r--r--dummyflasher.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/dummyflasher.c b/dummyflasher.c
index 32a00abb7..82aa3c8d9 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -126,7 +126,7 @@ static struct spi_master spi_master_dummyflasher = {
.write_aai = default_spi_write_aai,
};
-static const struct par_master par_master_dummy = {
+static struct par_master par_master_dummy = {
.chip_readb = dummy_chip_readb,
.chip_readw = dummy_chip_readw,
.chip_readl = dummy_chip_readl,
@@ -166,7 +166,7 @@ int dummy_init(void)
unsigned int i;
#if EMULATE_SPI_CHIP
char *status = NULL;
- int size = -1; /* size for VARIOUS_SIZE chip device */
+ int size = -1; /* size for VARIABLE_SIZE chip device */
#endif
#if EMULATE_CHIP
struct stat image_stat;
@@ -180,6 +180,7 @@ int dummy_init(void)
data->emu_chip = EMULATE_NONE;
data->delay_us = 0;
spi_master_dummyflasher.data = data;
+ par_master_dummy.data = data;
msg_pspew("%s\n", __func__);
@@ -343,7 +344,7 @@ int dummy_init(void)
#if EMULATE_SPI_CHIP
tmp = extract_programmer_param("size");
if (tmp) {
- size = atoi(tmp);
+ size = strtol(tmp, NULL, 10);
if (size <= 0 || (size % 1024 != 0)) {
msg_perr("%s: Chip size is not a multipler of 1024: %s\n",
__func__, tmp);
@@ -351,9 +352,6 @@ int dummy_init(void)
return 1;
}
free(tmp);
- } else {
- msg_perr("%s: the size parameter is not given.\n", __func__);
- return 1;
}
#endif
@@ -433,6 +431,11 @@ int dummy_init(void)
* flashrom -p dummy:emulate=VARIABLE_SIZE,size=4194304
*/
if (!strcmp(tmp, "VARIABLE_SIZE")) {
+ if (size == -1) {
+ msg_perr("%s: the size parameter is not given.\n", __func__);
+ free(tmp);
+ return 1;
+ }
data->emu_chip = EMULATE_VARIABLE_SIZE;
data->emu_chip_size = size;
data->emu_max_byteprogram_size = 256;