20 Jan, 2018

1 commit

  • The message
    "** %s shorter than offset + len **\n"
    may be interesting when debugging but it does not indicate an
    error.

    So we should not write it if we are not in debug mode.

    Fixes: 7a3e70cfd88c fs/fs.c: read up to EOF when len would read past EOF
    Signed-off-by: Heinrich Schuchardt
    Reviewed-by: Simon Glass

    Heinrich Schuchardt
     

16 Oct, 2017

1 commit


03 Oct, 2017

1 commit


15 Sep, 2017

2 commits

  • Add a generic implementation of 'ls' using opendir/readdir/closedir, and
    replace fat's custom implementation. Other filesystems should move to
    the generic implementation after they add opendir/readdir/closedir
    support.

    Signed-off-by: Rob Clark
    Reviewed-by: Łukasz Majewski
    Reviewed-by: Simon Glass

    Rob Clark
     
  • Needed to support efi file protocol. The fallback.efi loader wants
    to be able to read the contents of the /EFI directory to find an OS
    to boot.

    Modelled after POSIX opendir()/readdir()/closedir(). Unlike the other
    fs APIs, this is stateful (ie. state is held in the FS_DIR "directory
    stream"), to avoid re-traversing of the directory structure at each
    step. The directory stream must be released with closedir() when it
    is no longer needed.

    Signed-off-by: Rob Clark
    Reviewed-by: Łukasz Majewski
    Reviewed-by: Simon Glass

    Rob Clark
     

16 Aug, 2017

3 commits

  • We are now using an env_ prefix for environment functions. Rename these
    two functions for consistency. Also add function comments in common.h.

    Quite a few places use getenv() in a condition context, provoking a
    warning from checkpatch. These are fixed up in this patch also.

    Suggested-by: Wolfgang Denk
    Signed-off-by: Simon Glass

    Simon Glass
     
  • We are now using an env_ prefix for environment functions. Rename these
    commonly used functions, for consistency. Also add function comments in
    common.h.

    Suggested-by: Wolfgang Denk
    Signed-off-by: Simon Glass

    Simon Glass
     
  • We are now using an env_ prefix for environment functions. Rename setenv()
    for consistency. Also add function comments in common.h.

    Suggested-by: Wolfgang Denk
    Signed-off-by: Simon Glass

    Simon Glass
     

15 Mar, 2016

2 commits


19 Jan, 2016

1 commit

  • In a number of places we had wordings of the GPL (or LGPL in a few
    cases) license text that were split in such a way that it wasn't caught
    previously. Convert all of these to the correct SPDX-License-Identifier
    tag.

    Signed-off-by: Tom Rini

    Tom Rini
     

08 Jan, 2016

1 commit


25 Oct, 2015

1 commit


13 Aug, 2015

1 commit

  • http://lists.denx.de/pipermail/u-boot/2012-September/134347.html
    allows for reading files in chunks from the shell.

    When this feature is used to read past the end of a file an error
    was returned instead of returning the bytes read up to the end of
    file. Thus the following fails in the shell:

    offset = 0
    len = chunksize
    do
    read file, offset, len
    write data
    until bytes_read < len

    The patch changes the behaviour to printing an informational
    message and returning the actual read number of bytes aka read(2)
    behaviour for convenient use in U-Boot scripts.

    Signed-off-by: Max Krummenacher
    Signed-off-by: Marcel Ziswiler
    Acked-by: Marek Vasut
    Signed-off-by: Stefan Agner
    Signed-off-by: Marcel Ziswiler

    Max Krummenacher
     

19 Apr, 2015

1 commit


30 Jan, 2015

1 commit


02 Dec, 2014

1 commit


23 Nov, 2014

2 commits

  • The sandbox/ext4/fat/generic fs commands do not gracefully deal with files
    greater than 2GB. Negative values are returned in such cases.

    To handle this, the fs functions have been modified to take an additional
    parameter of type "* loff_t" which is then populated. The return value
    of the fs functions are used only for error conditions.

    Signed-off-by: Suriyan Ramasami
    Acked-by: Simon Glass
    [trini: Update board/gdsys/p1022/controlcenterd-id.c,
    drivers/fpga/zynqpl.c for changes]
    Signed-off-by: Tom Rini

    Suriyan Ramasami
     
  • Some filesystems have a UUID stored in its superblock. To
    allow using root=UUID=... for the kernel command line we
    need a way to read-out the filesystem UUID.

    changes rfc -> v1:
    - make the environment variable an option parameter. If not
    given, the UUID is printed out. If given, it is stored in the env
    variable.
    - corrected typos
    - return error codes

    changes v1 -> v2:
    - fix return code of do_fs_uuid(..)
    - document do_fs_uuid(..)
    - implement fs_uuid_unsuported(..) be more consistent with the
    way other optional functionality works

    changes v2 -> v3:
    - change ext4fs_uuid(..) to make use of #if .. #else .. #endif
    construct to get rid of unreachable code

    Hit any key to stop autoboot: 0
    => fsuuid
    fsuuid - Look up a filesystem UUID

    Usage:
    fsuuid :
    - print filesystem UUID
    fsuuid :
    - set environment variable to filesystem UUID

    => fsuuid mmc 0:1
    d9f9fc05-45ae-4a36-a616-fccce0e4f887
    => fsuuid mmc 0:2
    eb3db83c-7b28-499f-95ce-9e0bb21cda81
    => fsuuid mmc 0:1 uuid1
    => fsuuid mmc 0:2 uuid2
    => printenv uuid1
    uuid1=d9f9fc05-45ae-4a36-a616-fccce0e4f887
    => printenv uuid2
    uuid2=eb3db83c-7b28-499f-95ce-9e0bb21cda81
    =>

    Signed-off-by: Christian Gmeiner
    Acked-by: Stephen Warren

    Christian Gmeiner
     

09 Aug, 2014

1 commit

  • These commands may be used to determine the size of a file without
    actually reading the whole file content into memory. This may be used
    to determine if the file will fit into the memory buffer that will
    contain it. In particular, the DFU code will use it for this purpose
    in the next commit.

    Signed-off-by: Stephen Warren

    Stephen Warren
     

22 Jul, 2014

1 commit


19 Feb, 2014

6 commits

  • This hooks into the generic "file exists" support added in an earlier
    patch, and provides an implementation for the FAT filesystem.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     
  • This hooks into the generic "file exists" support added in an earlier
    patch, and provides an implementation for the ext4 filesystem.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     
  • This hooks into the generic "file exists" support added in an earlier
    patch, and provides an implementation for the sandbox test environment.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     
  • FAT and ext4 expect that the passed in block device descriptor not be
    NULL. This causes problems on sandbox, where get_device_and_partition()
    succeeds for the "host" device, yet passes back a NULL device descriptor.
    Add special handling for this situation, so that the generic filesystem
    commands operate as expected on sandbox.

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • This could be used in scripts such as:

    if test -e mmc 0:1 /boot/boot.scr; then
    load mmc 0:1 ${scriptaddr} /boot/boot.scr
    source ${scriptaddr}
    fi

    rather than:

    if load mmc 0:1 ${scriptaddr} /boot/boot.scr; then
    source ${scriptaddr}
    fi

    This prevents errors being printed by attempts to load non-existent
    files, which can be important when checking for a large set of files,
    such as /boot/boot.scr.uimg, /boot/boot.scr, /boot/extlinux.conf,
    /boot.scr.uimg, /boot.scr, /extlinux.conf.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     
  • Fix a few issues with the generic "save" shell command, and fs_write()
    function.

    1) fstypes[].write wasn't filled in for some file-systems, and isn't
    checked when used, which could cause crashes/... if executing save
    on e.g. fat/ext filesystems.

    2) fs_write() requires the length argument to be non-zero, since it needs
    to know exactly how many bytes to write. Adjust the comments and code
    according to this.

    3) fs_write() wasn't prototyped in like other generic functions;
    other code should be able to call this directly rather than invoking
    the "save" shell command.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     

08 Oct, 2013

1 commit

  • As documented, almost all U-Boot commands expect numbers to be entered
    in hexadecimal input format. (Exception: for historical reasons, the
    "sleep" command takes its argument in decimal input format.)

    This rule was broken for the "load" command; for details please see
    especially commits 045fa1e "fs: add filesystem switch libary,
    implement ls and fsload commands" and 3f83c87 "fs: fix number base
    behaviour change in fatload/ext*load". In the result, the load
    command would always require an explicit "0x" prefix for regular
    (i. e. base 16 formatted) input.

    Change this to use the standard notation of base 16 input format.
    While strictly speaking this is a change of the user interface, we
    hope that it will not cause trouble. Stephen Warren comments (see
    [1]):

    I suppose you can change the behaviour if you want; anyone
    writing "0x..." for their values presumably won't be
    affected, and if people really do assume all values in U-Boot
    are in hex, presumably nobody currently relies upon using
    non-prefixed values with the generic load command, since it
    doesn't work like that right now.

    [1] http://article.gmane.org/gmane.comp.boot-loaders.u-boot/171172

    Acked-by: Tom Rini
    Acked-by: Stephen Warren
    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

01 May, 2013

2 commits


05 Mar, 2013

6 commits


01 Mar, 2013

1 commit


14 Nov, 2012

1 commit

  • This patch adds time measurement and throughput calculation for
    all supported load commands.

    The output of ext2load changes from

    ---88---

    to

    ---88---

    Signed-off-by: Andreas Bießmann
    [agust: rebased and revised commit log]
    Signed-off-by: Anatolij Gustschin

    Andreas Bießmann
     

05 Nov, 2012

2 commits

  • When the generic filesystem load command "fsload" was written, I felt
    that "load" was too generic of a name for it, since many other similar
    commands already existed. However, it turns out that there is already
    an "fsload" command, so that name cannot be used. Rename the new
    "fsload" to plain "load" to avoid the conflict. At least anyone who's
    used a Basic interpreter should feel familiar with the name!

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • Commit 045fa1e "fs: add filesystem switch libary, implement ls and
    fsload commands" unified the implementation of fatload and ext*load
    with the new command fsload. However, this altered the interpretation
    of command-line numbers from always being base-16, to requiring a "0x"
    prefix for base-16 numbers. Enhance do_fsload() to allow commands to
    specify which base to use.

    Use base 0, thus requiring a "0x" prefix for the new fsload command.
    This feels much cleaner than assuming base 16.

    Use base 16 for the pre-existing fatload and ext*load to prevent a
    change in behaviour.

    Use base 16 exclusively for the loadaddr environment variable, since
    that variable is interpreted in multiple places, so we don't want the
    behaviour to change.

    Update command help text to make it clear where numbers are assumed to
    be hex, and where an explicit "0x" prefix is required.

    Signed-off-by: Stephen Warren
    Reviewed-by: Benoît Thébaudeau

    Stephen Warren