diff options
author | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2011-11-13 15:17:10 +0000 |
---|---|---|
committer | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2011-11-13 15:17:10 +0000 |
commit | 745f6bbec2acf6a94111df385384067b01f6e567 (patch) | |
tree | a566034a3539063a27b64dc4a523f0d724404395 /ichspi.c | |
parent | eaacd2d4e7485d747e4e0bbd54b7bb44cf3fd179 (diff) | |
download | flashrom-745f6bbec2acf6a94111df385384067b01f6e567.tar.gz flashrom-745f6bbec2acf6a94111df385384067b01f6e567.tar.bz2 flashrom-745f6bbec2acf6a94111df385384067b01f6e567.zip |
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>
Diffstat (limited to 'ichspi.c')
-rw-r--r-- | ichspi.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1562,8 +1562,6 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, /* Assign Virtual Address */ ich_spibar = rcrb + spibar_offset; - ich_init_opcodes(); - switch (ich_generation) { case CHIPSET_ICH7: 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"); ichspi_lock = 1; } + ich_init_opcodes(); ich_set_bbar(0); register_spi_programmer(&spi_programmer_ich7); 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 " "effect. Please note that Protected\n" "Range (PR) restrictions still apply.\n"); + ich_init_opcodes(); if (desc_valid) { tmp2 = mmio_readw(ich_spibar + ICH9_REG_HSFC); |