1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 07:02:34 +02:00

sb600spi.c: Allow passing programmer_cfg directly

Modify the type signature of the programmer entry-point
xxx_init() functions to allow for the consumption of the
programmer parameterisation string data.
Also plumb programmer_cfg though handle_imc and handle_speed.

Change-Id: I82f9ee75df90c582ef345c00a5487c687f28cdd5
Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/66660
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
This commit is contained in:
Edward O'Callaghan 2022-08-12 14:09:06 +10:00 committed by Anastasia Klimchuk
parent 848825e049
commit 65c99b17b8
3 changed files with 8 additions and 7 deletions

View File

@ -1407,7 +1407,7 @@ static int enable_flash_sb600(struct pci_dev *dev, const char *name)
internal_buses_supported &= BUS_LPC | BUS_FWH;
ret = sb600_probe_spi(dev);
ret = sb600_probe_spi(NULL, dev); /* TODO(quasisec): pass prog_param */
/* Read ROM strap override register. */
OUTB(0x8f, 0xcd6);

View File

@ -387,7 +387,7 @@ int mcp6x_spi_init(int want_spi);
/* sb600spi.c */
int sb600_probe_spi(struct pci_dev *dev);
int sb600_probe_spi(const struct programmer_cfg *cfg, struct pci_dev *dev);
/* wbsio_spi.c */
int wbsio_check_for_spi(void);

View File

@ -408,7 +408,8 @@ static int set_mode(struct pci_dev *dev, uint8_t mode, uint8_t *sb600_spibar)
return 0;
}
static int handle_speed(struct pci_dev *dev, enum amd_chipset amd_gen, uint8_t *sb600_spibar)
static int handle_speed(const struct programmer_cfg *cfg,
struct pci_dev *dev, enum amd_chipset amd_gen, uint8_t *sb600_spibar)
{
uint32_t tmp;
int16_t spispeed_idx = -1;
@ -521,7 +522,7 @@ static int handle_speed(struct pci_dev *dev, enum amd_chipset amd_gen, uint8_t *
return set_speed(dev, amd_gen, spispeed_idx, sb600_spibar);
}
static int handle_imc(struct pci_dev *dev, enum amd_chipset amd_gen)
static int handle_imc(const struct programmer_cfg *cfg, struct pci_dev *dev, enum amd_chipset amd_gen)
{
/* Handle IMC everywhere but sb600 which does not have one. */
if (amd_gen == CHIPSET_SB6XX)
@ -629,7 +630,7 @@ static const struct spi_master spi_master_promontory = {
.probe_opcode = default_spi_probe_opcode,
};
int sb600_probe_spi(struct pci_dev *dev)
int sb600_probe_spi(const struct programmer_cfg *cfg, struct pci_dev *dev)
{
struct pci_dev *smbus_dev;
uint32_t tmp;
@ -789,10 +790,10 @@ int sb600_probe_spi(struct pci_dev *dev)
return 0;
}
if (handle_speed(dev, amd_gen, sb600_spibar) != 0)
if (handle_speed(cfg, dev, amd_gen, sb600_spibar) != 0)
return ERROR_FATAL;
if (handle_imc(dev, amd_gen) != 0)
if (handle_imc(cfg, dev, amd_gen) != 0)
return ERROR_FATAL;
struct sb600spi_data *data = calloc(1, sizeof(*data));