Lines Matching full:flash

3  * Command for accessing SPI flash.
21 static struct spi_flash *flash; variable
30 * If it isn't in the flash, the function will fail (return -1).
55 if (round_up_len && flash->sector_size > 0) in sf_parse_len_arg()
56 *len = ROUND(len_arg, flash->sector_size); in sf_parse_len_arg()
128 flash = NULL; in do_spi_flash_probe()
131 printf("Failed to initialize SPI flash at %u:%u (error %d)\n", in do_spi_flash_probe()
136 flash = dev_get_uclass_priv(new); in do_spi_flash_probe()
138 if (flash) in do_spi_flash_probe()
139 spi_flash_free(flash); in do_spi_flash_probe()
142 flash = new; in do_spi_flash_probe()
145 printf("Failed to initialize SPI flash at %u:%u\n", bus, cs); in do_spi_flash_probe()
149 flash = new; in do_spi_flash_probe()
156 * Write a block of data to SPI flash, first checking if it is different from
161 * @param flash flash context pointer
162 * @param offset flash offset to write
169 static const char *spi_flash_update_block(struct spi_flash *flash, u32 offset, in spi_flash_update_block() argument
175 offset, flash->sector_size, len); in spi_flash_update_block()
177 if (spi_flash_read(flash, offset, flash->sector_size, cmp_buf)) in spi_flash_update_block()
187 if (spi_flash_erase(flash, offset, flash->sector_size)) in spi_flash_update_block()
190 if (len != flash->sector_size) { in spi_flash_update_block()
195 if (spi_flash_write(flash, offset, flash->sector_size, ptr)) in spi_flash_update_block()
202 * Update an area of SPI flash by erasing and writing any blocks which need
205 * @param flash flash context pointer
206 * @param offset flash offset to write
211 static int spi_flash_update(struct spi_flash *flash, u32 offset, in spi_flash_update() argument
226 cmp_buf = memalign(ARCH_DMA_MINALIGN, flash->sector_size); in spi_flash_update()
231 todo = min_t(size_t, end - buf, flash->sector_size); in spi_flash_update()
239 err_oper = spi_flash_update_block(flash, offset, todo, in spi_flash_update()
248 printf("SPI flash failed in %s step\n", err_oper); in spi_flash_update()
278 &maxsize, MTD_DEV_TYPE_NOR, flash->size)) in do_spi_flash_read_write()
282 if (offset + len > flash->size) { in do_spi_flash_read_write()
283 printf("ERROR: attempting %s past flash size (%#x)\n", in do_spi_flash_read_write()
284 argv[0], flash->size); in do_spi_flash_read_write()
295 ret = spi_flash_update(flash, offset, len, buf); in do_spi_flash_read_write()
302 ret = spi_flash_read(flash, offset, len, buf); in do_spi_flash_read_write()
304 ret = spi_flash_write(flash, offset, len, buf); in do_spi_flash_read_write()
330 MTD_DEV_TYPE_NOR, flash->size)) in do_spi_flash_erase()
338 if (offset + size > flash->size) { in do_spi_flash_erase()
339 printf("ERROR: attempting %s past flash size (%#x)\n", in do_spi_flash_erase()
340 argv[0], flash->size); in do_spi_flash_erase()
344 ret = spi_flash_erase(flash, offset, size); in do_spi_flash_erase()
377 ret = spi_flash_protect(flash, start, len, prot); in do_spi_protect()
430 * Run a test on the SPI flash
432 * @param flash SPI flash to use
435 * @param offset Offset within flash to check
439 static int spi_flash_test(struct spi_flash *flash, uint8_t *buf, ulong len, in spi_flash_test() argument
445 printf("SPI flash test:\n"); in spi_flash_test()
449 if (spi_flash_erase(flash, offset, len)) { in spi_flash_test()
455 if (spi_flash_read(flash, offset, len, vbuf)) { in spi_flash_test()
469 if (spi_flash_write(flash, offset, len, buf)) { in spi_flash_test()
476 if (spi_flash_read(flash, offset, len, vbuf)) { in spi_flash_test()
532 ret = spi_flash_test(flash, buf, len, offset, vbuf); in do_spi_flash_test()
572 ret = spi_flash_ctrl_wlock(flash, (u32)offset, (size_t)len); in do_spi_flash_ctrl_wlock()
574 ret = spi_flash_ctrl_wunlock(flash, (u32)offset, (size_t)len); in do_spi_flash_ctrl_wlock()
600 if (!flash) { in do_spi_flash()
601 puts("No SPI flash selected. Please run `sf probe'\n"); in do_spi_flash()
640 "SPI flash sub-system",
641 "probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus\n"
647 " at `addr' to flash at `offset'\n"
653 " at `addr' to flash at `offset'\n"