mirror of
				https://review.coreboot.org/flashrom.git
				synced 2025-11-04 07:00:39 +01:00 
			
		
		
		
	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: Patrick Georgi <patrick.georgi@secunet.com> 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:
		
				
					committed by
					
						
						Stefan Tauner
					
				
			
			
				
	
			
			
			
						parent
						
							e659d2dfe3
						
					
				
				
					commit
					efe2d43056
				
			
							
								
								
									
										15
									
								
								dediprog.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								dediprog.c
									
									
									
									
									
								
							@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user