mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 15:12:36 +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:
parent
848825e049
commit
65c99b17b8
@ -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);
|
||||
|
@ -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);
|
||||
|
11
sb600spi.c
11
sb600spi.c
@ -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));
|
||||
|
Loading…
x
Reference in New Issue
Block a user