If a SPI command taking an address does fail, we want to know the address for easier debugging.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: flashrom-spi_command_failure_verbose/spi.c =================================================================== --- flashrom-spi_command_failure_verbose/spi.c (Revision 763) +++ flashrom-spi_command_failure_verbose/spi.c (Arbeitskopie) @@ -615,8 +615,8 @@
result = spi_send_multicommand(cmds); if (result) { - fprintf(stderr, "%s failed during command execution\n", - __func__); + fprintf(stderr, "%s failed during command execution at address 0x%x\n", + __func__, addr); return result; } /* Wait until the Write-In-Progress bit is cleared. @@ -659,7 +659,8 @@
result = spi_send_multicommand(cmds); if (result) { - fprintf(stderr, "%s failed during command execution\n", __func__); + fprintf(stderr, "%s failed during command execution at address 0x%x\n", + __func__, addr); return result; } /* Wait until the Write-In-Progress bit is cleared. @@ -721,8 +722,8 @@
result = spi_send_multicommand(cmds); if (result) { - fprintf(stderr, "%s failed during command execution\n", - __func__); + fprintf(stderr, "%s failed during command execution at address 0x%x\n", + __func__, addr); return result; } /* Wait until the Write-In-Progress bit is cleared. @@ -827,21 +828,21 @@
result = spi_send_multicommand(cmds); if (result) { - fprintf(stderr, "%s failed during command execution\n", - __func__); + fprintf(stderr, "%s failed during command execution at address 0x%x\n", + __func__, addr); } return result; }
-int spi_nbyte_program(int address, uint8_t *bytes, int len) +int spi_nbyte_program(int addr, uint8_t *bytes, int len) { int result; /* FIXME: Switch to malloc based on len unless that kills speed. */ unsigned char cmd[JEDEC_BYTE_PROGRAM_OUTSIZE - 1 + 256] = { JEDEC_BYTE_PROGRAM, - (address >> 16) & 0xff, - (address >> 8) & 0xff, - (address >> 0) & 0xff, + (addr >> 16) & 0xff, + (addr >> 8) & 0xff, + (addr >> 0) & 0xff, }; struct spi_command cmds[] = { { @@ -874,8 +875,8 @@
result = spi_send_multicommand(cmds); if (result) { - fprintf(stderr, "%s failed during command execution\n", - __func__); + fprintf(stderr, "%s failed during command execution at address 0x%x\n", + __func__, addr); } return result; }
Hi everyone, Hi Carl, This patch provided help to debug the issue.. Acked-by: Vincent S. Cojot openlook@cojot.name
Thanks a lot for this help,
Vincent
On Mon, 16 Nov 2009, Carl-Daniel Hailfinger wrote:
If a SPI command taking an address does fail, we want to know the address for easier debugging.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: flashrom-spi_command_failure_verbose/spi.c
--- flashrom-spi_command_failure_verbose/spi.c (Revision 763) +++ flashrom-spi_command_failure_verbose/spi.c (Arbeitskopie) @@ -615,8 +615,8 @@
result = spi_send_multicommand(cmds); if (result) {
fprintf(stderr, "%s failed during command execution\n",
__func__);
fprintf(stderr, "%s failed during command execution at address 0x%x\n",
return result; } /* Wait until the Write-In-Progress bit is cleared.__func__, addr);
@@ -659,7 +659,8 @@
result = spi_send_multicommand(cmds); if (result) {
fprintf(stderr, "%s failed during command execution\n", __func__);
fprintf(stderr, "%s failed during command execution at address 0x%x\n",
return result; } /* Wait until the Write-In-Progress bit is cleared.__func__, addr);
@@ -721,8 +722,8 @@
result = spi_send_multicommand(cmds); if (result) {
fprintf(stderr, "%s failed during command execution\n",
__func__);
fprintf(stderr, "%s failed during command execution at address 0x%x\n",
return result; } /* Wait until the Write-In-Progress bit is cleared.__func__, addr);
@@ -827,21 +828,21 @@
result = spi_send_multicommand(cmds); if (result) {
fprintf(stderr, "%s failed during command execution\n",
__func__);
fprintf(stderr, "%s failed during command execution at address 0x%x\n",
} return result;__func__, addr);
}
-int spi_nbyte_program(int address, uint8_t *bytes, int len) +int spi_nbyte_program(int addr, uint8_t *bytes, int len) { int result; /* FIXME: Switch to malloc based on len unless that kills speed. */ unsigned char cmd[JEDEC_BYTE_PROGRAM_OUTSIZE - 1 + 256] = { JEDEC_BYTE_PROGRAM,
(address >> 16) & 0xff,
(address >> 8) & 0xff,
(address >> 0) & 0xff,
(addr >> 16) & 0xff,
(addr >> 8) & 0xff,
}; struct spi_command cmds[] = { {(addr >> 0) & 0xff,
@@ -874,8 +875,8 @@
result = spi_send_multicommand(cmds); if (result) {
fprintf(stderr, "%s failed during command execution\n",
__func__);
fprintf(stderr, "%s failed during command execution at address 0x%x\n",
} return result;__func__, addr);
}