1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-06-30 21:52:36 +02:00

programmer: Smoothen register_par_master API

It was impossible to register a const struct par_master that would
point to dynamically allocated `data`. Fix that so that we won't
have to create more mutable globals.

BUG=b:185191942
TEST=builds

Change-Id: I95bc92f6c54c5bcdac1c522ca87054aaffed0f40
Signed-off-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/54169
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
This commit is contained in:
Anastasia Klimchuk
2021-05-21 09:40:58 +10:00
committed by Edward O'Callaghan
parent daa86b5301
commit 6a5db26e68
17 changed files with 21 additions and 17 deletions

View File

@ -75,7 +75,7 @@ int atahpt_init(void)
reg32 |= (1 << 24);
rpci_write_long(dev, REG_FLASH_ACCESS, reg32);
register_par_master(&par_master_atahpt, BUS_PARALLEL);
register_par_master(&par_master_atahpt, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -140,7 +140,7 @@ int atapromise_init(void)
}
max_rom_decode.parallel = rom_size;
register_par_master(&par_master_atapromise, BUS_PARALLEL);
register_par_master(&par_master_atapromise, BUS_PARALLEL, NULL);
msg_pwarn("Do not use this device as a generic programmer. It will leave anything outside\n"
"the first %zu kB of the flash chip in an undefined state. It works fine for the\n"

View File

@ -160,7 +160,7 @@ int atavia_init(void)
return 1;
}
register_par_master(&lpc_master_atavia, BUS_LPC);
register_par_master(&lpc_master_atavia, BUS_LPC, NULL);
return 0;
}

View File

@ -77,7 +77,7 @@ int drkaiser_init(void)
return 1;
max_rom_decode.parallel = 128 * 1024;
register_par_master(&par_master_drkaiser, BUS_PARALLEL);
register_par_master(&par_master_drkaiser, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -1027,7 +1027,8 @@ dummy_init_out:
}
if (dummy_buses_supported & BUS_NONSPI)
register_par_master(&par_master_dummy,
dummy_buses_supported & BUS_NONSPI);
dummy_buses_supported & BUS_NONSPI,
NULL);
if (dummy_buses_supported & BUS_SPI)
register_spi_master(&spi_master_dummyflasher, data);

View File

@ -103,7 +103,7 @@ int gfxnvidia_init(void)
/* Write/erase doesn't work. */
programmer_may_write = 0;
register_par_master(&par_master_gfxnvidia, BUS_PARALLEL);
register_par_master(&par_master_gfxnvidia, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -335,7 +335,7 @@ int internal_init(void)
#endif /* IS_X86 */
if (internal_buses_supported & BUS_NONSPI)
register_par_master(&par_master_internal, internal_buses_supported);
register_par_master(&par_master_internal, internal_buses_supported, NULL);
/* Report if a non-whitelisted laptop is detected that likely uses a legacy bus. */
if (is_laptop && !laptop_ok) {

View File

@ -67,7 +67,7 @@ int it8212_init(void)
rpci_write_long(dev, PCI_ROM_ADDRESS, io_base_addr | 0x01);
max_rom_decode.parallel = IT8212_MEMMAP_SIZE;
register_par_master(&par_master_it8212, BUS_PARALLEL);
register_par_master(&par_master_it8212, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -120,7 +120,7 @@ int nic3com_init(void)
return 1;
max_rom_decode.parallel = 128 * 1024;
register_par_master(&par_master_nic3com, BUS_PARALLEL);
register_par_master(&par_master_nic3com, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -99,7 +99,7 @@ int nicintel_init(void)
pci_rmmio_writew(0x0001, nicintel_control_bar + CSR_FCR);
max_rom_decode.parallel = NICINTEL_MEMMAP_SIZE;
register_par_master(&par_master_nicintel, BUS_PARALLEL);
register_par_master(&par_master_nicintel, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -71,7 +71,7 @@ int nicnatsemi_init(void)
* functions below wants to be 0x0000FFFF.
*/
max_rom_decode.parallel = 131072;
register_par_master(&par_master_nicnatsemi, BUS_PARALLEL);
register_par_master(&par_master_nicnatsemi, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -86,7 +86,7 @@ int nicrealtek_init(void)
if (register_shutdown(nicrealtek_shutdown, NULL))
return 1;
register_par_master(&par_master_nicrealtek, BUS_PARALLEL);
register_par_master(&par_master_nicrealtek, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -81,7 +81,8 @@ void fallback_chip_readn(const struct flashctx *flash, uint8_t *buf,
}
int register_par_master(const struct par_master *mst,
const enum chipbustype buses)
const enum chipbustype buses,
void *data)
{
struct registered_master rmst = {0};
@ -96,6 +97,8 @@ int register_par_master(const struct par_master *mst,
rmst.buses_supported = buses;
rmst.par = *mst;
if (data)
rmst.par.data = data;
return register_master(&rmst);
}

View File

@ -747,7 +747,7 @@ struct par_master {
void (*chip_readn) (const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len);
void *data;
};
int register_par_master(const struct par_master *mst, const enum chipbustype buses);
int register_par_master(const struct par_master *mst, const enum chipbustype buses, void *data);
struct registered_master {
enum chipbustype buses_supported;
struct {

View File

@ -148,7 +148,7 @@ int satamv_init(void)
/* 512 kByte with two 8-bit latches, and
* 4 MByte with additional 3-bit latch. */
max_rom_decode.parallel = 4 * 1024 * 1024;
register_par_master(&par_master_satamv, BUS_PARALLEL);
register_par_master(&par_master_satamv, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -100,7 +100,7 @@ int satasii_init(void)
if ((id != 0x0680) && (!(pci_mmio_readl(sii_bar) & (1 << 26))))
msg_pwarn("Warning: Flash seems unconnected.\n");
register_par_master(&par_master_satasii, BUS_PARALLEL);
register_par_master(&par_master_satasii, BUS_PARALLEL, NULL);
return 0;
}

View File

@ -885,7 +885,7 @@ int serprog_init(void)
if (serprog_buses_supported & BUS_SPI)
register_spi_master(&spi_master_serprog, NULL);
if (serprog_buses_supported & BUS_NONSPI)
register_par_master(&par_master_serprog, serprog_buses_supported & BUS_NONSPI);
register_par_master(&par_master_serprog, serprog_buses_supported & BUS_NONSPI, NULL);
return 0;
}