mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-01 14:11:15 +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:

committed by
Edward O'Callaghan

parent
daa86b5301
commit
6a5db26e68
2
atahpt.c
2
atahpt.c
@ -75,7 +75,7 @@ int atahpt_init(void)
|
|||||||
reg32 |= (1 << 24);
|
reg32 |= (1 << 24);
|
||||||
rpci_write_long(dev, REG_FLASH_ACCESS, reg32);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ int atapromise_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
max_rom_decode.parallel = rom_size;
|
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"
|
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"
|
"the first %zu kB of the flash chip in an undefined state. It works fine for the\n"
|
||||||
|
2
atavia.c
2
atavia.c
@ -160,7 +160,7 @@ int atavia_init(void)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
register_par_master(&lpc_master_atavia, BUS_LPC);
|
register_par_master(&lpc_master_atavia, BUS_LPC, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,7 @@ int drkaiser_init(void)
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
max_rom_decode.parallel = 128 * 1024;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1027,7 +1027,8 @@ dummy_init_out:
|
|||||||
}
|
}
|
||||||
if (dummy_buses_supported & BUS_NONSPI)
|
if (dummy_buses_supported & BUS_NONSPI)
|
||||||
register_par_master(&par_master_dummy,
|
register_par_master(&par_master_dummy,
|
||||||
dummy_buses_supported & BUS_NONSPI);
|
dummy_buses_supported & BUS_NONSPI,
|
||||||
|
NULL);
|
||||||
if (dummy_buses_supported & BUS_SPI)
|
if (dummy_buses_supported & BUS_SPI)
|
||||||
register_spi_master(&spi_master_dummyflasher, data);
|
register_spi_master(&spi_master_dummyflasher, data);
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ int gfxnvidia_init(void)
|
|||||||
|
|
||||||
/* Write/erase doesn't work. */
|
/* Write/erase doesn't work. */
|
||||||
programmer_may_write = 0;
|
programmer_may_write = 0;
|
||||||
register_par_master(&par_master_gfxnvidia, BUS_PARALLEL);
|
register_par_master(&par_master_gfxnvidia, BUS_PARALLEL, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -335,7 +335,7 @@ int internal_init(void)
|
|||||||
#endif /* IS_X86 */
|
#endif /* IS_X86 */
|
||||||
|
|
||||||
if (internal_buses_supported & BUS_NONSPI)
|
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. */
|
/* Report if a non-whitelisted laptop is detected that likely uses a legacy bus. */
|
||||||
if (is_laptop && !laptop_ok) {
|
if (is_laptop && !laptop_ok) {
|
||||||
|
2
it8212.c
2
it8212.c
@ -67,7 +67,7 @@ int it8212_init(void)
|
|||||||
rpci_write_long(dev, PCI_ROM_ADDRESS, io_base_addr | 0x01);
|
rpci_write_long(dev, PCI_ROM_ADDRESS, io_base_addr | 0x01);
|
||||||
|
|
||||||
max_rom_decode.parallel = IT8212_MEMMAP_SIZE;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ int nic3com_init(void)
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
max_rom_decode.parallel = 128 * 1024;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ int nicintel_init(void)
|
|||||||
pci_rmmio_writew(0x0001, nicintel_control_bar + CSR_FCR);
|
pci_rmmio_writew(0x0001, nicintel_control_bar + CSR_FCR);
|
||||||
|
|
||||||
max_rom_decode.parallel = NICINTEL_MEMMAP_SIZE;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ int nicnatsemi_init(void)
|
|||||||
* functions below wants to be 0x0000FFFF.
|
* functions below wants to be 0x0000FFFF.
|
||||||
*/
|
*/
|
||||||
max_rom_decode.parallel = 131072;
|
max_rom_decode.parallel = 131072;
|
||||||
register_par_master(&par_master_nicnatsemi, BUS_PARALLEL);
|
register_par_master(&par_master_nicnatsemi, BUS_PARALLEL, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ int nicrealtek_init(void)
|
|||||||
if (register_shutdown(nicrealtek_shutdown, NULL))
|
if (register_shutdown(nicrealtek_shutdown, NULL))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
register_par_master(&par_master_nicrealtek, BUS_PARALLEL);
|
register_par_master(&par_master_nicrealtek, BUS_PARALLEL, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,8 @@ void fallback_chip_readn(const struct flashctx *flash, uint8_t *buf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int register_par_master(const struct par_master *mst,
|
int register_par_master(const struct par_master *mst,
|
||||||
const enum chipbustype buses)
|
const enum chipbustype buses,
|
||||||
|
void *data)
|
||||||
{
|
{
|
||||||
struct registered_master rmst = {0};
|
struct registered_master rmst = {0};
|
||||||
|
|
||||||
@ -96,6 +97,8 @@ int register_par_master(const struct par_master *mst,
|
|||||||
|
|
||||||
rmst.buses_supported = buses;
|
rmst.buses_supported = buses;
|
||||||
rmst.par = *mst;
|
rmst.par = *mst;
|
||||||
|
if (data)
|
||||||
|
rmst.par.data = data;
|
||||||
return register_master(&rmst);
|
return register_master(&rmst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -747,7 +747,7 @@ struct par_master {
|
|||||||
void (*chip_readn) (const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len);
|
void (*chip_readn) (const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len);
|
||||||
void *data;
|
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 {
|
struct registered_master {
|
||||||
enum chipbustype buses_supported;
|
enum chipbustype buses_supported;
|
||||||
struct {
|
struct {
|
||||||
|
2
satamv.c
2
satamv.c
@ -148,7 +148,7 @@ int satamv_init(void)
|
|||||||
/* 512 kByte with two 8-bit latches, and
|
/* 512 kByte with two 8-bit latches, and
|
||||||
* 4 MByte with additional 3-bit latch. */
|
* 4 MByte with additional 3-bit latch. */
|
||||||
max_rom_decode.parallel = 4 * 1024 * 1024;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ int satasii_init(void)
|
|||||||
if ((id != 0x0680) && (!(pci_mmio_readl(sii_bar) & (1 << 26))))
|
if ((id != 0x0680) && (!(pci_mmio_readl(sii_bar) & (1 << 26))))
|
||||||
msg_pwarn("Warning: Flash seems unconnected.\n");
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -885,7 +885,7 @@ int serprog_init(void)
|
|||||||
if (serprog_buses_supported & BUS_SPI)
|
if (serprog_buses_supported & BUS_SPI)
|
||||||
register_spi_master(&spi_master_serprog, NULL);
|
register_spi_master(&spi_master_serprog, NULL);
|
||||||
if (serprog_buses_supported & BUS_NONSPI)
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user