mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 23:22:37 +02:00
ichspi: fix ich_init_opcodes() calls in ich_init_spi()
By calling it early ichspi_lock was not set up correctly in accordance with the corresponding register, hence ich_init_opcodes() was always trying to programming the opcodes instead of reading them in from the opmenu in case of a locked down configuration. Thanks to Jonathan A. Kollasch for reporting this bug. Corresponding to flashrom svn r1464. Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
This commit is contained in:
parent
eaacd2d4e7
commit
745f6bbec2
4
ichspi.c
4
ichspi.c
@ -1562,8 +1562,6 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb,
|
|||||||
/* Assign Virtual Address */
|
/* Assign Virtual Address */
|
||||||
ich_spibar = rcrb + spibar_offset;
|
ich_spibar = rcrb + spibar_offset;
|
||||||
|
|
||||||
ich_init_opcodes();
|
|
||||||
|
|
||||||
switch (ich_generation) {
|
switch (ich_generation) {
|
||||||
case CHIPSET_ICH7:
|
case CHIPSET_ICH7:
|
||||||
msg_pdbg("0x00: 0x%04x (SPIS)\n",
|
msg_pdbg("0x00: 0x%04x (SPIS)\n",
|
||||||
@ -1601,6 +1599,7 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb,
|
|||||||
msg_pinfo("WARNING: SPI Configuration Lockdown activated.\n");
|
msg_pinfo("WARNING: SPI Configuration Lockdown activated.\n");
|
||||||
ichspi_lock = 1;
|
ichspi_lock = 1;
|
||||||
}
|
}
|
||||||
|
ich_init_opcodes();
|
||||||
ich_set_bbar(0);
|
ich_set_bbar(0);
|
||||||
register_spi_programmer(&spi_programmer_ich7);
|
register_spi_programmer(&spi_programmer_ich7);
|
||||||
break;
|
break;
|
||||||
@ -1643,6 +1642,7 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb,
|
|||||||
"by the FRAP and FREG registers are NOT in "
|
"by the FRAP and FREG registers are NOT in "
|
||||||
"effect. Please note that Protected\n"
|
"effect. Please note that Protected\n"
|
||||||
"Range (PR) restrictions still apply.\n");
|
"Range (PR) restrictions still apply.\n");
|
||||||
|
ich_init_opcodes();
|
||||||
|
|
||||||
if (desc_valid) {
|
if (desc_valid) {
|
||||||
tmp2 = mmio_readw(ich_spibar + ICH9_REG_HSFC);
|
tmp2 = mmio_readw(ich_spibar + ICH9_REG_HSFC);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user