Commit 87ace663 authored by Stefan Reinauer's avatar Stefan Reinauer Committed by Stefan Tauner
Browse files

CID1130000: Unchecked return value in default_spi_write_aai()


Also, try to always disable WRDI because else the user is stuck
with a chip in AAI mode that won't return by itself w/o a reset.

Corresponding to flashrom svn r1779.
Signed-off-by: default avatarStefan Reinauer <stefan.reinauer@coreboot.org>
Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
parent 1838591b
......@@ -1128,13 +1128,9 @@ int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int sta
result = spi_send_multicommand(flash, cmds);
if (result) {
msg_cerr("%s failed during start command execution\n",
__func__);
/* FIXME: Should we send WRDI here as well to make sure the chip
* is not in AAI mode?
*/
return result;
if (result != 0) {
msg_cerr("%s failed during start command execution: %d\n", __func__, result);
goto bailout;
}
while (spi_read_status_register(flash) & SPI_SR_WIP)
programmer_delay(10);
......@@ -1146,8 +1142,11 @@ int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int sta
while (pos < start + len - 1) {
cmd[1] = buf[pos++ - start];
cmd[2] = buf[pos++ - start];
spi_send_command(flash, JEDEC_AAI_WORD_PROGRAM_CONT_OUTSIZE, 0,
cmd, NULL);
result = spi_send_command(flash, JEDEC_AAI_WORD_PROGRAM_CONT_OUTSIZE, 0, cmd, NULL);
if (result != 0) {
msg_cerr("%s failed during followup AAI command execution: %d\n", __func__, result);
goto bailout;
}
while (spi_read_status_register(flash) & SPI_SR_WIP)
programmer_delay(10);
}
......@@ -1165,4 +1164,8 @@ int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int sta
}
return 0;
bailout:
spi_write_disable(flash);
return SPI_GENERIC_ERROR;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment