[flashrom] [PATCH 5/6] improve output in case run_opcode fails
Stefan Tauner
stefan.tauner at student.tuwien.ac.at
Sat Apr 30 00:06:57 CEST 2011
On Fri, 1 Apr 2011 14:33:19 +0200
Stefan Tauner <stefan.tauner at student.tuwien.ac.at> wrote:
> diff --git a/ichspi.c b/ichspi.c
> index b24b6a0..0ad4f20 100644
> --- a/ichspi.c
> +++ b/ichspi.c
> ...
> @@ -974,7 +973,19 @@ int ich_spi_send_command(unsigned int writecnt,
> unsigned int readcnt,
> result = run_opcode(*opcode, addr, count, data);
> if (result) {
> - msg_pdbg("run OPCODE 0x%02x failed\n",
> opcode->opcode);
> + msg_pdbg("run OPCODE 0x%02x failed at address
> 0x%06x.\n",
> + opcode->opcode, addr);
> + /* Print out the data array if it contains data to
> write.
> + * Errors are detected before the received data is
> read back into
> + * the array so it won't make sense to print it
> then. */
> + if (((opcode->spi_type ==
> SPI_OPCODE_TYPE_WRITE_WITH_ADDRESS) ||
> + (opcode->spi_type ==
> SPI_OPCODE_TYPE_WRITE_NO_ADDRESS))) {
> + msg_pspew("The data was:\n");
> + uint8_t i;
> + for(i=0; i<count; i++){
> + msg_pspew("%3d: 0x%02x\n", i,
> data[i]);
> + }
> + }
> }
self-NAK :)
uint8_t is too small and could result in an endless loop. oops. :(
this should not happen normally, because devices supported by ichspi.c
allow only 16B or 64B data lengths, but we could be called with
something bigger i guess.
how should this be solved?
since "count" will get truncated implicitly when it is used as
parameter for "run_opcode" we could do so explicitly before the loop.
or an if around the loop checking for count<256.
also i would like to include the count like so:
"run OPCODE 0x%02x failed at address 0x%06x (length %d).\n"
RFC :)
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner
More information about the flashrom
mailing list