X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cmd%2Fsf.c;h=d18f6a888ce48c6ec142e7c658a828668d3c079e;hb=d3976cc2feddedf4283b9a567c8157e0ccb4226e;hp=286906c3a151c916d549df6938ad73a0273aec94;hpb=b8e599746cac1833328bc3a8e37eeefe346baf90;p=oweals%2Fu-boot.git diff --git a/cmd/sf.c b/cmd/sf.c index 286906c3a1..d18f6a888c 100644 --- a/cmd/sf.c +++ b/cmd/sf.c @@ -1,24 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * Command for accessing SPI flash. * * Copyright (C) 2008 Atmel Corporation - * - * SPDX-License-Identifier: GPL-2.0+ */ #include +#include #include #include +#include +#include #include #include #include #include +#include #include #include #include #include +#include "legacy-mtd-utils.h" + static struct spi_flash *flash; /* @@ -78,18 +83,17 @@ static ulong bytes_per_second(unsigned int len, ulong start_ms) return 1024 * len / max(get_timer(start_ms), 1UL); } -static int do_spi_flash_probe(int argc, char * const argv[]) +static int do_spi_flash_probe(int argc, char *const argv[]) { unsigned int bus = CONFIG_SF_DEFAULT_BUS; unsigned int cs = CONFIG_SF_DEFAULT_CS; + /* In DM mode, defaults speed and mode will be taken from DT */ unsigned int speed = CONFIG_SF_DEFAULT_SPEED; unsigned int mode = CONFIG_SF_DEFAULT_MODE; char *endp; #ifdef CONFIG_DM_SPI_FLASH struct udevice *new, *bus_dev; int ret; - /* In DM mode defaults will be taken from DT */ - speed = 0, mode = 0; #else struct spi_flash *new; #endif @@ -124,8 +128,7 @@ static int do_spi_flash_probe(int argc, char * const argv[]) /* Remove the old device, otherwise probe will just be a nop */ ret = spi_find_bus_and_cs(bus, cs, &bus_dev, &new); if (!ret) { - device_remove(new); - device_unbind(new); + device_remove(new, DM_REMOVE_NORMAL); } flash = NULL; ret = spi_flash_probe_bus_cs(bus, cs, speed, mode, &new); @@ -142,13 +145,10 @@ static int do_spi_flash_probe(int argc, char * const argv[]) new = spi_flash_probe(bus, cs, speed, mode); flash = new; - if (!new) { printf("Failed to initialize SPI flash at %u:%u\n", bus, cs); return 1; } - - flash = new; #endif return 0; @@ -260,7 +260,7 @@ static int spi_flash_update(struct spi_flash *flash, u32 offset, return 0; } -static int do_spi_flash_read_write(int argc, char * const argv[]) +static int do_spi_flash_read_write(int argc, char *const argv[]) { unsigned long addr; void *buf; @@ -288,7 +288,7 @@ static int do_spi_flash_read_write(int argc, char * const argv[]) } buf = map_physmem(addr, len, MAP_WRBACK); - if (!buf) { + if (!buf && addr) { puts("Failed to map physical memory\n"); return 1; } @@ -318,7 +318,7 @@ static int do_spi_flash_read_write(int argc, char * const argv[]) return ret == 0 ? 0 : 1; } -static int do_spi_flash_erase(int argc, char * const argv[]) +static int do_spi_flash_erase(int argc, char *const argv[]) { int ret; int dev = 0; @@ -350,7 +350,7 @@ static int do_spi_flash_erase(int argc, char * const argv[]) return ret == 0 ? 0 : 1; } -static int do_spi_protect(int argc, char * const argv[]) +static int do_spi_protect(int argc, char *const argv[]) { int ret = 0; loff_t start, len; @@ -415,7 +415,7 @@ static void show_time(struct test_info *test, int stage) do_div(speed, test->time_ms[stage] * 1024); bps = speed * 8; - printf("%d %s: %d ticks, %d KiB/s %d.%03d Mbps\n", stage, + printf("%d %s: %u ticks, %d KiB/s %d.%03d Mbps\n", stage, stage_name[stage], test->time_ms[stage], (int)speed, bps / 1000, bps % 1000); } @@ -499,7 +499,7 @@ static int spi_flash_test(struct spi_flash *flash, uint8_t *buf, ulong len, return 0; } -static int do_spi_flash_test(int argc, char * const argv[]) +static int do_spi_flash_test(int argc, char *const argv[]) { unsigned long offset; unsigned long len; @@ -543,8 +543,8 @@ static int do_spi_flash_test(int argc, char * const argv[]) } #endif /* CONFIG_CMD_SF_TEST */ -static int do_spi_flash(cmd_tbl_t *cmdtp, int flag, int argc, - char * const argv[]) +static int do_spi_flash(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) { const char *cmd; int ret;