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;
|
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. */
|
/* Read ROM strap override register. */
|
||||||
OUTB(0x8f, 0xcd6);
|
OUTB(0x8f, 0xcd6);
|
||||||
|
@ -387,7 +387,7 @@ int mcp6x_spi_init(int want_spi);
|
|||||||
|
|
||||||
|
|
||||||
/* sb600spi.c */
|
/* 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 */
|
/* wbsio_spi.c */
|
||||||
int wbsio_check_for_spi(void);
|
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;
|
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;
|
uint32_t tmp;
|
||||||
int16_t spispeed_idx = -1;
|
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);
|
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. */
|
/* Handle IMC everywhere but sb600 which does not have one. */
|
||||||
if (amd_gen == CHIPSET_SB6XX)
|
if (amd_gen == CHIPSET_SB6XX)
|
||||||
@ -629,7 +630,7 @@ static const struct spi_master spi_master_promontory = {
|
|||||||
.probe_opcode = default_spi_probe_opcode,
|
.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;
|
struct pci_dev *smbus_dev;
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
@ -789,10 +790,10 @@ int sb600_probe_spi(struct pci_dev *dev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (handle_speed(dev, amd_gen, sb600_spibar) != 0)
|
if (handle_speed(cfg, dev, amd_gen, sb600_spibar) != 0)
|
||||||
return ERROR_FATAL;
|
return ERROR_FATAL;
|
||||||
|
|
||||||
if (handle_imc(dev, amd_gen) != 0)
|
if (handle_imc(cfg, dev, amd_gen) != 0)
|
||||||
return ERROR_FATAL;
|
return ERROR_FATAL;
|
||||||
|
|
||||||
struct sb600spi_data *data = calloc(1, sizeof(*data));
|
struct sb600spi_data *data = calloc(1, sizeof(*data));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user