spi: print out progress while writing
Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
		
							
								
								
									
										8
									
								
								spi.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								spi.c
									
									
									
									
									
								
							@@ -522,6 +522,7 @@ int spiWrite(struct ff_spi *spi, uint32_t addr, const uint8_t *data, unsigned in
 | 
				
			|||||||
	// Erase all applicable blocks
 | 
						// Erase all applicable blocks
 | 
				
			||||||
	uint32_t erase_addr;
 | 
						uint32_t erase_addr;
 | 
				
			||||||
	for (erase_addr = 0; erase_addr < count; erase_addr += 32768) {
 | 
						for (erase_addr = 0; erase_addr < count; erase_addr += 32768) {
 | 
				
			||||||
 | 
							printf("\rErasing @ %06x", erase_addr);
 | 
				
			||||||
		spiBegin(spi);
 | 
							spiBegin(spi);
 | 
				
			||||||
		spiCommand(spi, 0x06);
 | 
							spiCommand(spi, 0x06);
 | 
				
			||||||
		spiEnd(spi);
 | 
							spiEnd(spi);
 | 
				
			||||||
@@ -553,11 +554,17 @@ int spiWrite(struct ff_spi *spi, uint32_t addr, const uint8_t *data, unsigned in
 | 
				
			|||||||
		return 1;
 | 
							return 1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						printf("\n");
 | 
				
			||||||
	while (count) {
 | 
						while (count) {
 | 
				
			||||||
 | 
							printf("\rProgramming @ %06x", addr);
 | 
				
			||||||
		spiBegin(spi);
 | 
							spiBegin(spi);
 | 
				
			||||||
		spiCommand(spi, 0x06);
 | 
							spiCommand(spi, 0x06);
 | 
				
			||||||
		spiEnd(spi);
 | 
							spiEnd(spi);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							uint8_t sr1 = spiReadSr(spi, 1);
 | 
				
			||||||
 | 
							if (!(sr1 & (1 << 1)))
 | 
				
			||||||
 | 
								fprintf(stderr, "error: write-enable latch (WEL) not set, write will probably fail\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		spiBegin(spi);
 | 
							spiBegin(spi);
 | 
				
			||||||
		spiCommand(spi, write_cmd);
 | 
							spiCommand(spi, write_cmd);
 | 
				
			||||||
		spiCommand(spi, addr >> 16);
 | 
							spiCommand(spi, addr >> 16);
 | 
				
			||||||
@@ -570,6 +577,7 @@ int spiWrite(struct ff_spi *spi, uint32_t addr, const uint8_t *data, unsigned in
 | 
				
			|||||||
		addr += i;
 | 
							addr += i;
 | 
				
			||||||
		spi_wait_for_not_busy(spi);
 | 
							spi_wait_for_not_busy(spi);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						printf("\n");
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user