Skip to content
Snippets Groups Projects
  1. Aug 25, 2014
    • Heiko Schocher's avatar
      mtd,ubi,ubifs: sync with linux v3.15 · 4e67c571
      Heiko Schocher authored
      
      snyc with linux v3.15:
      
      commit 1860e379875dfe7271c649058aeddffe5afd9d0d
      Author: Linus Torvalds <torvalds@linux-foundation.org>
      Date:   Sun Jun 8 11:19:54 2014 -0700
      
          Linux 3.15
      
      Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Tom Rini <trini@ti.com>
      4e67c571
    • Heiko Schocher's avatar
      mtd, ubi, ubifs: update for the sync with linux v3.14 · ddf7bcfa
      Heiko Schocher authored
      
      while playing with the new mtd/ubi/ubifs sync, found some
      small updates for it:
      
      - add del_mtd_partition() to include/linux/mtd/mtd
      - mtd: add a debug_printf
      - remove some not used functions
      
      Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Tom Rini <trini@ti.com>
      ddf7bcfa
    • Heiko Schocher's avatar
      mtd, ubi, ubifs: resync with Linux-3.14 · ff94bc40
      Heiko Schocher authored
      
      resync ubi subsystem with linux:
      
      commit 455c6fdbd219161bd09b1165f11699d6d73de11c
      Author: Linus Torvalds <torvalds@linux-foundation.org>
      Date:   Sun Mar 30 20:40:15 2014 -0700
      
          Linux 3.14
      
      A nice side effect of this, is we introduce UBI Fastmap support
      to U-Boot.
      
      Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      Cc: Marek Vasut <marex@denx.de>
      Cc: Sergey Lapin <slapin@ossfans.org>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Joerg Krause <jkrause@posteo.de>
      ff94bc40
    • Heiko Schocher's avatar
      lib, linux: move linux specific defines to linux/compat.h · 0c06db59
      Heiko Schocher authored
      
      - move linux specific defines from usb and video code
        into linux/compat.h
      - move common linux specific defines from include/ubi_uboot.h
        to linux/compat.h
      - add for new mtd/ubi/ubifs sync new needed linux specific
        defines to linux/compat.h
      
      Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
      Cc: Marek Vasut <marex@denx.de>
      Cc: Anatolij Gustschin <agust@denx.de>
      [trini: Add spin_lock_irqsave/spin_unlock_irqrestore dummies from
      usb/lin_gadet_compat.h]
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      0c06db59
  2. Aug 09, 2014
    • Stephen Warren's avatar
      fs: implement size/fatsize/ext4size · cf659819
      Stephen Warren authored
      
      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: default avatarStephen Warren <swarren@nvidia.com>
      cf659819
  3. Jul 22, 2014
  4. Jul 18, 2014
  5. Jun 19, 2014
    • Stephen Warren's avatar
      fs: ext4: fix writing zero-length files · d0180280
      Stephen Warren authored
      
      ext4fs_allocate_blocks() always allocates at least one block for a file.
      If the file size is zero, this causes total_remaining_blocks to
      underflow, which then causes an apparent hang while 2^32 blocks are
      allocated.
      
      To solve this, check that total_remaining_blocks is non-zero as part of
      the loop condition (i.e. before each loop) rather than at the end of
      the loop.
      
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      d0180280
  6. Jun 11, 2014
  7. Jun 05, 2014
  8. May 12, 2014
    • Wu, Josh's avatar
      fs/fat: correct FAT16/12 file finding in root dir · dd6d7967
      Wu, Josh authored
      
      When write a file into FAT file system, it will search a match file in
      root dir. So the find_directory_entry() will get the first cluster of
      root dir content and search the directory item one by one. If the file
      is not found, we will call get_fatent_value() to get next cluster of root
      dir via lookup the FAT table and continue the search.
      
      The issue is in FAT16/12 system, we cannot get root dir's next clust
      from FAT table. The FAT table only be use to find the clust of data
      aera in FAT16/12.
      
      In FAT16/12 if the clust is in root dir, the clust number is a negative
      number or 0, 1. Since root dir is located in front of the data area.
      Data area start clust #2. So the root dir clust number should < 2.
      
      This patch will check above situation before call get_fatenv_value().
      If curclust is < 2, include minus number, we just increase one on the
      curclust since root dir is in continous cluster.
      
      The patch also add a sanity check for entry in get_fatenv_value().
      
      Signed-off-by: default avatarJosh Wu <josh.wu@atmel.com>
      dd6d7967
    • Wu, Josh's avatar
      fs: fat_write: fix the incorrect last cluster checking · 2e98f708
      Wu, Josh authored
      
      In fat_write.c, the last clust condition check is incorrect:
      
        if ((curclust >= 0xffffff8) || (curclust >= 0xfff8)) {
        	... ...
        }
      
      For example, in FAT32 if curclust is 0x11000. It is a valid clust.
      But on above condition check, it will be think as a last clust.
      
      So the correct last clust check should be:
        in fat32, curclust >= 0xffffff8
        in fat16, curclust >= 0xfff8
        in fat12, curclust >= 0xff8
      
      This patch correct the last clust check.
      
      Signed-off-by: default avatarJosh Wu <josh.wu@atmel.com>
      2e98f708
    • Łukasz Majewski's avatar
      fs:ext4:write:fix: Reinitialize global variables after updating a file · 8b454eee
      Łukasz Majewski authored
      
      This bug shows up when file stored on the ext4 file system is updated.
      
      The ext4fs_delete_file() is responsible for deleting file's (e.g. uImage)
      data.
      However some global data (especially ext4fs_indir2_block), which is used
      during file deletion are left unchanged.
      
      The ext4fs_indir2_block pointer stores reference to old ext4 double
      indirect allocated blocks. When it is unchanged, after file deletion,
      ext4fs_write_file() uses the same pointer (since it is already initialized
      - i.e. not NULL) to return number of blocks to write. This trunks larger
      file when previous one was smaller.
      
      Lets consider following scenario:
      
      1. Flash target with ext4 formatted boot.img (which has uImage [*] on itself)
      2. Developer wants to upload their custom uImage [**]
      	- When new uImage [**] is smaller than the [*] - everything works
      	correctly - we are able to store the whole smaller file with corrupted
      	ext4fs_indir2_block pointer
      	- When new uImage [**] is larger than the [*] - theCRC is corrupted,
      	since truncation on data stored at eMMC was done.
      3. When uImage CRC error appears, then reboot and LTHOR/DFU reflashing causes
      	proper setting of ext4fs_indir2_block() and after that uImage[**]
      	is successfully stored (correct uImage [*] metadata is stored at an
      	eMMC on the first flashing).
      
      Due to above the bug was very difficult to reproduce.
      This patch sets default values for all ext4fs_indir* pointers/variables.
      
      Signed-off-by: default avatarLukasz Majewski <l.majewski@samsung.com>
      8b454eee
    • Łukasz Majewski's avatar
      fs:ext4:cleanup: Remove superfluous code · 35dd055b
      Łukasz Majewski authored
      
      Code responsible for handling situation when ext4 has block size of 1024B
      can be ordered to take less space.
      
      This patch does that for ext4 common and write files.
      
      Signed-off-by: default avatarLukasz Majewski <l.majewski@samsung.com>
      35dd055b
    • Masahiro Yamada's avatar
      fs: ubifs: drop __DATE__ and __TIME__ · 9995d8c8
      Masahiro Yamada authored
      
      __DATE__ and __TIME__ makes the build non-deterministic.
      Drop the debug message using them.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      9995d8c8
    • Nobuhiro Iwamatsu's avatar
      fs: fat: Fix cache align error message in fatwrite · 8abd053c
      Nobuhiro Iwamatsu authored
      
      Use of malloc of do_fat_write() causes cache error on ARM v7 platforms.
      Perhaps, the same problem will occur at any other CPUs.
      This replaces malloc with memalign to fix cache buffer alignment.
      
      Signed-off-by: default avatarNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
      Signed-off-by: default avatarYoshiyuki Ito <yoshiyuki.ito.ub@renesas.com>
      Tested-by: default avatarHector Palacios <hector.palacios@digi.com>
      8abd053c
  9. Mar 04, 2014
    • Simon Glass's avatar
      yaffs: Remove private list implementation · 1b451ecc
      Simon Glass authored
      
      U-Boot already has a list implementation, and files which include both
      that and the yaffs implementation will get errors:
      
      In file included from ydirectenv.h:80:0,
                       from yportenv.h:81,
                       from yaffs_guts.h:19,
                       from yaffs_allocator.h:19,
                       from yaffs_allocator.c:14:
      yaffs_list.h:32:8: error: redefinition of ‘struct list_head’
       struct list_head {
              ^
      
      Remove the yaffs implementation.
      
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
      1b451ecc
  10. Feb 26, 2014
    • Tom Rini's avatar
      arm: Switch to -mno-unaligned-access when supported by the compiler · 1551df35
      Tom Rini authored
      
      When we tell the compiler to optimize for ARMv7 (and ARMv6 for that
      matter) it assumes a default of SCTRL.A being cleared and unaligned
      accesses being allowed and fast at the hardware level.  We set this bit
      and must pass along -mno-unaligned-access so that the compiler will
      still breakdown accesses and not trigger a data abort.
      
      To better help understand the requirements of the project with respect
      to unaligned memory access, the
      Documentation/unaligned-memory-access.txt file has been added as
      doc/README.unaligned-memory-access.txt and is taken from the v3.14-rc1
      tag of the kernel.
      
      Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
      Cc: Mans Rullgard <mans@mansr.com>
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      1551df35
    • Tom Rini's avatar
      Revert "ext4fs: Add ext4 extent cache for read operations" · 715b56fe
      Tom Rini authored
      
      This reverts commit fc0fc50f.
      
      The author has asked on the mailing list that we revert this for now as
      it breaks write support.
      
      Reported-by: default avatarŁukasz Majewski <l.majewski@samsung.com>
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      715b56fe
  11. Feb 21, 2014
    • Karicheri, Muralidharan's avatar
      ubifs: fix checkpatch warning · 1674df60
      Karicheri, Muralidharan authored
      
      Fix the following checkpatch warning:-
      
      WARNING: externs should be avoided in .c files
      
      Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
      1674df60
    • Ionut Nicu's avatar
      ext4fs: Add ext4 extent cache for read operations · fc0fc50f
      Ionut Nicu authored
      
      In an ext4 filesystem, the inode corresponding to a file has a 60-byte
      area which contains an extent header structure and up to 4 extent
      structures (5 x 12 bytes).
      
      For files that need more than 4 extents to be represented (either files
      larger than 4 x 128MB = 512MB or smaller files but very fragmented),
      ext4 creates extent index structures. Each extent index points to a 4KB
      physical block where one extent header and additional 340 extents could
      be stored.
      
      The current u-boot ext4 code is very inefficient when it tries to load a
      file which has extent indexes. For each logical file block the code will
      read over and over again the same blocks of 4096 bytes from the disk.
      
      Since the extent tree in a file is always the same, we can cache the
      extent structures in memory before actually starting to read the file.
      
      This patch creates a simple linked list of structures holding information
      about all the extents used to represent a file. The list is sorted by
      the logical block number (ee_block) so that we can easily find the
      proper extent information for any file block.
      
      Without this patch, a 69MB file which had just one extent index pointing
      to a block with another 6 extents was read in approximately 3 minutes.
      With this patch applied the same file can be read in almost 20 seconds.
      
      Signed-off-by: default avatarIonut Nicu <ioan.nicu.ext@nsn.com>
      fc0fc50f
    • Tom Rini's avatar
      fs/fdos: Remove · 1530f6f5
      Tom Rini authored
      
      We have an unused FAT implementation in fs/fdos, remove.
      
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      1530f6f5
  12. Feb 19, 2014
    • Masahiro Yamada's avatar
      kbuild: use Linux Kernel build scripts · 6825a95b
      Masahiro Yamada authored
      
      Now we are ready to switch over to real Kbuild.
      
      This commit disables temporary scripts:
        scripts/{Makefile.build.tmp, Makefile.host.tmp}
      and enables real Kbuild scripts:
        scripts/{Makefile.build,Makefile.host,Makefile.lib}.
      
      This switch is triggered by the line in scripts/Kbuild.include
        -build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build.tmp obj
        +build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
      
      We need to adjust some build scripts for U-Boot.
      But smaller amount of modification is preferable.
      
      Additionally, we need to fix compiler flags which are
      locally added or removed.
      
      In Kbuild, it is not allowed to change CFLAGS locally.
      Instead, ccflags-y, asflags-y, cppflags-y,
      CFLAGS_$(basetarget).o, CFLAGS_REMOVE_$(basetarget).o
      are prepared for that purpose.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Tested-by: default avatarGerhard Sittig <gsi@denx.de>
      6825a95b
    • Masahiro Yamada's avatar
      kbuild: change out-of-tree build · 9e414032
      Masahiro Yamada authored
      
      This commit changes the working directory
      where the build process occurs.
      
      Before this commit, build process occurred under the source
      tree for both in-tree and out-of-tree build.
      
      That's why we needed to add $(obj) prefix to all generated
      files in makefiles like follows:
        $(obj)u-boot.bin:  $(obj)u-boot
      
      Here, $(obj) is empty for in-tree build, whereas it points
      to the output directory for out-of-tree build.
      
      And our old build system changes the current working directory
      with "make -C <sub-dir>" syntax when descending into the
      sub-directories.
      
      On the other hand, Kbuild uses a different idea
      to handle out-of-tree build and directory descending.
      
      The build process of Kbuild always occurs under the output tree.
      When "O=dir/to/store/output/files" is given, the build system
      changes the current working directory to that directory and
      restarts the make.
      
      Kbuild uses "make -f $(srctree)/scripts/Makefile.build obj=<sub-dir>"
      syntax for descending into sub-directories.
      (We can write it like "make $(obj)=<sub-dir>" with a shorthand.)
      This means the current working directory is always the top
      of the output directory.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Tested-by: default avatarGerhard Sittig <gsi@denx.de>
      9e414032
    • Stephen Warren's avatar
      fat: implement exists() for FAT fs · b7b5f319
      Stephen Warren authored
      
      This hooks into the generic "file exists" support added in an earlier
      patch, and provides an implementation for the FAT filesystem.
      
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      b7b5f319
    • Stephen Warren's avatar
      ext4: implement exists() for ext4fs · 55af5c93
      Stephen Warren authored
      
      This hooks into the generic "file exists" support added in an earlier
      patch, and provides an implementation for the ext4 filesystem.
      
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      55af5c93
    • Stephen Warren's avatar
      sandbox: implement exists() function · 0a30aa1e
      Stephen Warren authored
      
      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: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      0a30aa1e
    • Stephen Warren's avatar
      fs: don't pass NULL dev_desc to most filesystems · 377202b5
      Stephen Warren authored
      
      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: default avatarStephen Warren <swarren@nvidia.com>
      377202b5
    • Stephen Warren's avatar
      fs: implement infrastructure for an 'exists' function · 6152916a
      Stephen Warren authored
      
      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: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      6152916a
    • Stephen Warren's avatar
      fs: fix generic save command implementation · bd6fb31f
      Stephen Warren authored
      
      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 <fs.h> like other generic functions;
         other code should be able to call this directly rather than invoking
         the "save" shell command.
      
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      bd6fb31f
  13. Jan 20, 2014
  14. Dec 13, 2013
  15. Nov 17, 2013
Loading