1. 11 Oct, 2015 1 commit
    • Julius Werner's avatar
      Add support for LZ4 decompression algorithm · 027b728d
      Julius Werner authored
      This patch adds support for LZ4-compressed FIT image contents. This
      algorithm has a slightly worse compression ration than LZO while being
      nearly twice as fast to decompress. When loading images from a fast
      storage medium this usually results in a boot time win.
      
      Sandbox-tested only since I don't have a U-Boot development system set
      up right now. The code was imported unchanged from coreboot where it's
      proven to work, though. I'm mostly interested in getting this recognized
      by mkImage for use in a downstream project.
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      027b728d
  2. 03 Oct, 2015 2 commits
    • Przemyslaw Marczak's avatar
      fdtdec: fix parsing 'reg' property with zero value in '#size-cells' · ff0a6358
      Przemyslaw Marczak authored
      After rework of lib/fdtdec.c by:
      
      commit: 02464e38 fdt: add new fdt address parsing functions
      
      the function fdtdec_get_addr() doesn't work as previous,
      because the implementation assumes that properties '#address-cells'
      and '#size-cells' are equal to 1, which can be not true sometimes.
      
      The new API introduced fdtdec_get_addr_size_auto_parent() for the 'reg'
      property parsing, but the implementation assumes, that #size-cells
      can't be less than 1.
      
      This causes that the following children's 'reg' property can't be reached:
      
      parent@0x0 {
           #address-cells = <1>;
           #size-cells = <0>;
           children@0x100 {
               reg = < 0x100 >;
           };
      };
      
      Change the condition value from '1' to '0', which allows parsing property
      with at least zero #size-cells, fixes the issue.
      
      Now, fdtdec_get_addr_size_auto_parent() works properly.
      
      Tested on: Odroid U3/X2, Trats, Trats2, Odroid XU3, Snow (by Simon).
      Signed-off-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
      Acked-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      Tested-by: default avatarSimon Glass <sjg@chromium.org>
      ff0a6358
    • Stephen Warren's avatar
      fdt: fix fdtdec_get_addr_size not to require any size cells · d93b9a07
      Stephen Warren authored
      fdtdec_get_addr_size() may be used in two cases:
      a) With sizep supplied, in which case both an address and a size are
      parsed from DT. In this case, the DT property must be large enough to
      contain both values.
      b) With sizep NULL, in which case only an address is parsed from DT.
      In this case, the DT property only need be large enough to contain this
      address value. Commit 02464e38 "fdt: add new fdt address parsing
      functions" broke this relaxed checking, and required the DT property to
      contain both an address and a size value in all cases.
      
      Fix fdtdec_get_addr_size() to vary ns based on whether the size value
      is being parsed from the DT or not. This is safe since the function only
      parses the first entry in the property, so the overall value of (na + ns)
      need not be accurate, since it is never used to step through the property
      data to find other entries. Besides, this fixed behaviour essentially
      matches the original behaviour before the patch this patch fixes. (The
      original code validated that the property was exactly the length of
      either na or (na + ns), whereas the current code only validates that the
      property is at least that long. For non-failure cases, the two behaviours
      are identical).
      
      Cc: Przemyslaw Marczak <p.marczak@samsung.com>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Bin Meng <bmeng.cn@gmail.com>
      Cc: Michal Suchanek <hramrach@gmail.com>
      Fixes: 02464e38 ("fdt: add new fdt address parsing functions")
      Reported-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Tested-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      d93b9a07
  3. 15 Sep, 2015 3 commits
    • Lukasz Majewski's avatar
      env: import: hashtable: Free memory allocated before exiting from himport_r() · 0226d878
      Lukasz Majewski authored
      ithout this patch memory is not released on early exit.
      Signed-off-by: default avatarLukasz Majewski <l.majewski@majess.pl>
      0226d878
    • Lukasz Majewski's avatar
      env: import: hashtable: Prevent buffer overrun when importing environment from file · 817e48d8
      Lukasz Majewski authored
      Lets consider following scenario:
      - One uses echo -n "key=value" to define environment variable in a file (single variable)
      - The file content is "key=value" without any terminating byte (e.g. 0x0a or
      0x0d).
      - The file is loaded to u-boot non zero'ed RAM buffer (with load command).
      - Then "env import -t -r $loadaddr $filesize" is executed.
      - Due to lack of proper termination byte we have classical example of buffer
        overrun.
      
      This patch prevents from this by allocating one extra byte than size and
      explicitly null terminate it.
      
      There should be no change for normal env import operation after applying
      this patch.
      Signed-off-by: default avatarLukasz Majewski <l.majewski@majess.pl>
      817e48d8
    • Stephen Warren's avatar
      fdt: add new fdt address parsing functions · 02464e38
      Stephen Warren authored
      fdtdec_get_addr_size() hard-codes the number of cells used to represent
      an address or size in DT. This is incorrect in many cases depending on
      the DT binding for a particular node or property (e.g. it is incorrect
      for the "reg" property). In most cases, DT parsing code must use the
      properties #address-cells and #size-cells to parse addres properties.
      
      This change splits up the implementation of fdtdec_get_addr_size() so
      that the core logic can be used for both hard-coded and non-hard-coded
      cases. Various wrapper functions are implemented that support cases
      where hard-coded cell counts should or should not be used, and where
      the client does and doesn't know the parent node ID that contains the
      properties #address-cells and #size-cells.
      
      dev_get_addr() is updated to use the new functions.
      
      Core functionality in fdtdec_get_addr_size_fixed() is widely tested via
      fdtdec_get_addr_size(). I tested fdtdec_get_addr_size_auto_noparent() and
      dev_get_addr() by manually modifying the Tegra I2C driver to invoke them.
      
      Much of the core implementation of fdtdec_get_addr_size_fixed(),
      fdtdec_get_addr_size_auto_parent(), and
      fdtdec_get_addr_size_auto_noparent() comes from Thierry Reding's
      previous commit "fdt: Fix fdtdec_get_addr_size() for 64-bit".
      Based-on-work-by: default avatarThierry Reding <treding@nvidia.com>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Michal Suchanek <hramrach@gmail.com>
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      Dropped #define DEBUG at the top of fdtdec.c:
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
      02464e38
  4. 11 Sep, 2015 1 commit
    • Simon Glass's avatar
      Move malloc_cache_aligned() to its own header · 6e295186
      Simon Glass authored
      At present malloc.h is included everywhere since it recently was added to
      common.h in this commit:
      
         4519668b mtd/nand/ubi: assortment of alignment fixes
      
      This seems wasteful and unnecessary. We have been trying to trim down
      common.h and put separate functions into separate header files and that
      change goes in the opposite direction.
      
      Move malloc_cache_aligned() to a new header so that this can be avoided.
      The header would perhaps be better named as alignmem.h but it needs to be
      included after common.h and people might be confused by this. With the name
      memalign.h it fits nicely after malloc() in most cases.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
      Acked-by: default avatarMarcel Ziswiler <marcel.ziswiler@toradex.com>
      6e295186
  5. 04 Sep, 2015 1 commit
    • Marek Vasut's avatar
      mmc: dw_mmc: Probe the MMC from OF · 129adf5b
      Marek Vasut authored
      Rework the driver to probe the MMC controller from Device Tree
      and make it mandatory. There is no longer support for probing
      from the ancient qts-generated header files.
      
      This patch now also removes previous temporary workaround.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
      Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
      Cc: Tom Rini <trini@konsulko.com>
      129adf5b
  6. 31 Aug, 2015 4 commits
  7. 28 Aug, 2015 2 commits
  8. 26 Aug, 2015 1 commit
  9. 18 Aug, 2015 2 commits
  10. 14 Aug, 2015 2 commits
  11. 13 Aug, 2015 1 commit
  12. 08 Aug, 2015 1 commit
    • Marek Vasut's avatar
      arm: socfpga: misc: Reset ethernet from OF · 6ab00db2
      Marek Vasut authored
      Reset the GMAC ethernets based on the "resets" OF node instead of ad-hoc
      hardcoded values in the U-Boot code. Since we don't have a proper reset
      framework in place yet, we have to do this slightly ad-hoc parsing of the
      OF tree instead.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
      Cc: Joe Hershberger <joe.hershberger@ni.com>
      6ab00db2
  13. 06 Aug, 2015 3 commits
  14. 05 Aug, 2015 6 commits
  15. 28 Jul, 2015 2 commits
  16. 22 Jul, 2015 2 commits
  17. 21 Jul, 2015 6 commits