mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00
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: Stefan Reinauer <stefan.reinauer@coreboot.org> Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
This commit is contained in:
parent
1838591b68
commit
87ace663df
21
spi25.c
21
spi25.c
@ -1128,13 +1128,9 @@ int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int sta
|
|||||||
|
|
||||||
|
|
||||||
result = spi_send_multicommand(flash, cmds);
|
result = spi_send_multicommand(flash, cmds);
|
||||||
if (result) {
|
if (result != 0) {
|
||||||
msg_cerr("%s failed during start command execution\n",
|
msg_cerr("%s failed during start command execution: %d\n", __func__, result);
|
||||||
__func__);
|
goto bailout;
|
||||||
/* FIXME: Should we send WRDI here as well to make sure the chip
|
|
||||||
* is not in AAI mode?
|
|
||||||
*/
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
while (spi_read_status_register(flash) & SPI_SR_WIP)
|
while (spi_read_status_register(flash) & SPI_SR_WIP)
|
||||||
programmer_delay(10);
|
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) {
|
while (pos < start + len - 1) {
|
||||||
cmd[1] = buf[pos++ - start];
|
cmd[1] = buf[pos++ - start];
|
||||||
cmd[2] = buf[pos++ - start];
|
cmd[2] = buf[pos++ - start];
|
||||||
spi_send_command(flash, JEDEC_AAI_WORD_PROGRAM_CONT_OUTSIZE, 0,
|
result = spi_send_command(flash, JEDEC_AAI_WORD_PROGRAM_CONT_OUTSIZE, 0, cmd, NULL);
|
||||||
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)
|
while (spi_read_status_register(flash) & SPI_SR_WIP)
|
||||||
programmer_delay(10);
|
programmer_delay(10);
|
||||||
}
|
}
|
||||||
@ -1165,4 +1164,8 @@ int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int sta
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
bailout:
|
||||||
|
spi_write_disable(flash);
|
||||||
|
return SPI_GENERIC_ERROR;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user