All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v5 3/3] spi, sf: use offset and size in sf cmd from mtdpartition
Date: Thu, 23 Apr 2015 07:38:21 +0200	[thread overview]
Message-ID: <5538854D.6020507@denx.de> (raw)
In-Reply-To: <CAD6G_RTS=Ker8G_Bx02-YMjHJxmporL3Qp-F8Z4R4Vj8ga3_WA@mail.gmail.com>

Hello Jagan,

Am 22.04.2015 12:58, schrieb Jagan Teki:
> On 20 April 2015 at 11:17, Heiko Schocher <hs@denx.de> wrote:
>> with this patch, it is possible to get the offset and size information
>> from the mtdpartiton setting in "mtdparts", similiar to the
>> "nand" commandos.
>>
>> => sf
>> sf - SPI flash sub-system
>>
>> Usage:
>> sf probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus
>>                                    and chip select
>> sf read addr offset|partition len       - read `len' bytes starting at
>>                                            `offset' to memory at `addr'
>> sf write addr offset|partition len      - write `len' bytes from memory
>>                                            at `addr' to flash at `offset'
>> sf erase offset|partition [+]len        - erase `len' bytes from `offset'
>>                                            `+len' round up `len' to block size
>> sf update addr offset|partition len     - erase and write `len' bytes from memory
>>                                            at `addr' to flash at `offset'
>> =>
>> for example "env" is defined in mtdparts:
>>
>> => sf read 13000000 env
>> device 0 offset 0xd0000, size 0x10000
>> SF: 65536 bytes @ 0xd0000 Read: OK
>> =>
>>
>> Signed-off-by: Heiko Schocher <hs@denx.de>
>>
>> ---
>>
>> Changes in v2:
>> - none
>> Series-changes: 3
>> - rebase with d6c1ffc7d23f4fe4ae8c91101861055b8e1501b6
>> Series-changes: 4
>> - rebased against 385a08a60f042061b004642d6b9bb6cfb794ad5a
>> Series-changes: 5
>> - no changes
>>
>>   common/cmd_sf.c | 50 +++++++++++++++++++++++++-------------------------
>>   1 file changed, 25 insertions(+), 25 deletions(-)
>>
>> diff --git a/common/cmd_sf.c b/common/cmd_sf.c
>> index 25a59e5..1932ac9 100644
>> --- a/common/cmd_sf.c
>> +++ b/common/cmd_sf.c
>> @@ -12,6 +12,8 @@
>>   #include <malloc.h>
>>   #include <spi.h>
>>   #include <spi_flash.h>
>> +#include <jffs2/jffs2.h>
>> +#include <linux/mtd/mtd.h>
>>
>>   #include <asm/io.h>
>>   #include <dm/device-internal.h>
>> @@ -258,23 +260,21 @@ static int spi_flash_update(struct spi_flash *flash, u32 offset,
>>   static int do_spi_flash_read_write(int argc, char * const argv[])
>>   {
>>          unsigned long addr;
>> -       unsigned long offset;
>> -       unsigned long len;
>>          void *buf;
>>          char *endp;
>>          int ret = 1;
>> +       int dev = 0;
>> +       loff_t offset, len, maxsize;
>>
>> -       if (argc < 4)
>> +       if (argc < 3)
>>                  return -1;
>>
>>          addr = simple_strtoul(argv[1], &endp, 16);
>>          if (*argv[1] == 0 || *endp != 0)
>>                  return -1;
>> -       offset = simple_strtoul(argv[2], &endp, 16);
>> -       if (*argv[2] == 0 || *endp != 0)
>> -               return -1;
>> -       len = simple_strtoul(argv[3], &endp, 16);
>> -       if (*argv[3] == 0 || *endp != 0)
>> +
>> +       if (arg_off_size(argc - 2, &argv[2], &dev, &offset, &len, &maxsize,
>> +           MTD_DEV_TYPE_NOR, flash->size))
>>                  return -1;
>>
>>          /* Consistency checking */
>> @@ -313,31 +313,31 @@ static int do_spi_flash_read_write(int argc, char * const argv[])
>>
>>   static int do_spi_flash_erase(int argc, char * const argv[])
>>   {
>> -       unsigned long offset;
>> -       unsigned long len;
>> -       char *endp;
>>          int ret;
>> +       int dev = 0;
>> +       loff_t offset, len, maxsize;
>> +       ulong size;
>>
>>          if (argc < 3)
>>                  return -1;
>>
>> -       offset = simple_strtoul(argv[1], &endp, 16);
>> -       if (*argv[1] == 0 || *endp != 0)
>> +       if (arg_off(argv[1], &dev, &offset, &len, &maxsize,
>> +           MTD_DEV_TYPE_NOR, flash->size))
>>                  return -1;
>>
>> -       ret = sf_parse_len_arg(argv[2], &len);
>> +       ret = sf_parse_len_arg(argv[2], &size);
>>          if (ret != 1)
>>                  return -1;
>>
>>          /* Consistency checking */
>> -       if (offset + len > flash->size) {
>> +       if (offset + size > flash->size) {
>>                  printf("ERROR: attempting %s past flash size (%#x)\n",
>>                         argv[0], flash->size);
>>                  return 1;
>>          }
>>
>> -       ret = spi_flash_erase(flash, offset, len);
>> -       printf("SF: %zu bytes @ %#x Erased: %s\n", (size_t)len, (u32)offset,
>> +       ret = spi_flash_erase(flash, offset, size);
>> +       printf("SF: %zu bytes @ %#x Erased: %s\n", (size_t)size, (u32)offset,
>>                 ret ? "ERROR" : "OK");
>>
>>          return ret == 0 ? 0 : 1;
>> @@ -562,13 +562,13 @@ U_BOOT_CMD(
>>          "SPI flash sub-system",
>>          "probe [[bus:]cs] [hz] [mode]   - init flash device on given SPI bus\n"
>>          "                                 and chip select\n"
>> -       "sf read addr offset len        - read `len' bytes starting at\n"
>> -       "                                 `offset' to memory at `addr'\n"
>> -       "sf write addr offset len       - write `len' bytes from memory\n"
>> -       "                                 at `addr' to flash at `offset'\n"
>> -       "sf erase offset [+]len         - erase `len' bytes from `offset'\n"
>> -       "                                 `+len' round up `len' to block size\n"
>> -       "sf update addr offset len      - erase and write `len' bytes from memory\n"
>> -       "                                 at `addr' to flash at `offset'"
>> +       "sf read addr offset|partition len      - read `len' bytes starting at\n"
>> +       "                                         `offset' to memory at `addr'\n"
>
> Append partition on help text as well more readable.

Added.

>> +       "sf write addr offset|partition len     - write `len' bytes from memory\n"
>> +       "                                         at `addr' to flash at `offset'\n"
>> +       "sf erase offset|partition [+]len       - erase `len' bytes from `offset'\n"
>> +       "                                        `+len' round up `len' to block size\n"
>> +       "sf update addr offset|partition len    - erase and write `len' bytes from memory\n"
>> +       "                                         at `addr' to flash at `offset'"
>>          SF_TEST_HELP
>>   );
>> --
>> 2.1.0
>>
>
> Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
>
> thanks!

Thanks for your time!

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

      reply	other threads:[~2015-04-23  5:38 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-20  5:47 [U-Boot] [PATCH v5 0/3] spi, sf: add mtdparts feature to spi and sf commands Heiko Schocher
2015-04-20  5:47 ` [U-Boot] [PATCH v5 1/3] mtd, spi: add MTD layer driver Heiko Schocher
2015-04-22 10:52   ` Jagan Teki
2015-04-23  5:27     ` Heiko Schocher
2015-04-20  5:47 ` [U-Boot] [PATCH v5 2/3] mtd, nand: move common functions from cmd_nand.c to common place Heiko Schocher
2015-04-22 10:53   ` Jagan Teki
2015-04-22 22:47   ` Scott Wood
2015-04-23  5:57     ` Heiko Schocher
2015-04-23  6:55       ` Scott Wood
2015-04-23 11:12         ` Heiko Schocher
2015-04-23 17:48           ` Scott Wood
2015-04-24  4:59             ` Heiko Schocher
2015-04-24  5:25               ` Scott Wood
2015-04-20  5:47 ` [U-Boot] [PATCH v5 3/3] spi, sf: use offset and size in sf cmd from mtdpartition Heiko Schocher
2015-04-22 10:58   ` Jagan Teki
2015-04-23  5:38     ` Heiko Schocher [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5538854D.6020507@denx.de \
    --to=hs@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.