Commit efe2d430 authored by Patrick Georgi's avatar Patrick Georgi Committed by Stefan Tauner
Browse files

dediprog: fix SPI clock setting


Avoid setting SPI speed on firmware versions < 5.0.0 and note this
limitation in the man page.
Use the correct offset of the "12M" element in the spispeeds array to
match our manpage and the default of Dediprog's dpcmd.

Corresponding to flashrom svn r1674.
Signed-off-by: default avatarPatrick Georgi <patrick.georgi@secunet.com>
Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
parent e659d2df
......@@ -184,12 +184,15 @@ static const struct dediprog_spispeeds spispeeds[] = {
*/
static int dediprog_set_spi_speed(unsigned int spispeed_idx)
{
int ret;
if (dediprog_firmwareversion < FIRMWARE_VERSION(5, 0, 0)) {
msg_pwarn("Skipping to set SPI speed because firmware is too old.\n");
return 0;
}
msg_pdbg("SPI speed is %sHz\n", spispeeds[spispeed_idx].name);
msg_pdbg("SPI speed is %s Hz\n", spispeeds[spispeed_idx].name);
ret = usb_control_msg(dediprog_handle, 0x42, 0x61, spispeeds[spispeed_idx].speed, 0xff,
NULL, 0x0, DEFAULT_TIMEOUT);
int ret = usb_control_msg(dediprog_handle, 0x42, 0x61, spispeeds[spispeed_idx].speed, 0xff,
NULL, 0x0, DEFAULT_TIMEOUT);
if (ret != 0x0) {
msg_perr("Command Set SPI Speed 0x%x failed!\n", spispeeds[spispeed_idx].speed);
return 1;
......@@ -789,7 +792,7 @@ int dediprog_init(void)
{
struct usb_device *dev;
char *voltage, *device, *spispeed, *target_str;
int spispeed_idx = 2;
int spispeed_idx = 1;
int millivolt = 3500;
long usedevice = 0;
long target = 1;
......@@ -806,7 +809,7 @@ int dediprog_init(void)
}
}
if (!spispeeds[i].name) {
msg_perr("Error: Invalid 'spispeed' value.\n");
msg_perr("Error: Invalid spispeed value: '%s'.\n", spispeed);
free(spispeed);
return 1;
}
......
......@@ -683,7 +683,8 @@ Usage example to select the second device:
.sp
An optional
.B spispeed
parameter specifies the frequency of the SPI bus. Syntax is
parameter specifies the frequency of the SPI bus. The firmware on the device needs to be 5.0.0 or newer.
Syntax is
.sp
.B " flashrom \-p dediprog:spispeed=frequency"
.sp
......
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