Skip to content
Snippets Groups Projects
  1. Nov 23, 2014
  2. Nov 20, 2014
    • Masahiro Yamada's avatar
      include: move various macros to include/linux/kernel.h · cba1da49
      Masahiro Yamada authored
      
      U-Boot has imported various utility macros from Linux
      scattering them to various places without consistency.
      
      In include/common.h are min, max, min3, max3, ARRAY_SIZE, ALIGN,
      container_of, DIV_ROUND_UP, etc.
      In include/linux/compat.h are min_t, max_t, round_up, round_down,
      etc.
      We also have duplicated defines of min_t in some *.c files.
      
      Moreover, we are suffering from too cluttered include/common.h.
      
      This commit moves various macros that originate in
      include/linux/kernel.h of Linux to their original position.
      
      Note:
      This commit simply moves the macros; the macros roundup,
      min, max, min2, max3, ARRAY_SIZE are different
      from those of Linux at this point.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      cba1da49
  3. Nov 10, 2014
    • Jorgen Lundman's avatar
      ZFS: Clean up cppcheck warnings where relevant, leaked memory etc · e183de0d
      Jorgen Lundman authored
      
      In a message from Wolfgang Denk highlighting warnings from cppcheck,
      the patch will address those that are correctly diagnosed. Some are
      false-positives:
      
      > [fs/zfs/zfs.c:937]: (error) Memory leak: l
      dmu_read() allocates "l" if successful, so error-case should not free
      it.
      > [fs/zfs/zfs.c:1141]: (error) Memory leak: dnbuf
      dmu_read() allocates "dnbuf" if successful, so error-case should not
      free it.
      > [fs/zfs/zfs.c:1372]: (error) Memory leak: osp
      zio_read() allocates "osp" if successful, so error-case should
      not free it.
      > [fs/zfs/zfs.c:1726]: (error) Memory leak: nvlist
      int_zfs_fetch_nvlist() allocates "nvlist" if successful, so error-case
      should not free it.
      
      Signed-off-by: default avatarJorgen Lundman <lundman@lundman.net>
      e183de0d
  4. Oct 27, 2014
  5. Sep 24, 2014
  6. Sep 16, 2014
  7. 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
  8. 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
  9. Jul 22, 2014
  10. Jul 18, 2014
  11. 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
  12. Jun 11, 2014
  13. Jun 05, 2014
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
Loading