17 Jan, 2018

1 commit

  • In some cases when "more" is told to page a given file it will prepend
    the output with:
    ::::::::::::::
    /PATH/TO/THE/FILE
    ::::::::::::::

    And when this happens the output will not match the expected length.
    Further, if we use a different pager we will instead fail the coverage
    tests as we will not have 100% coverage. Update the help test to remove
    the string in question.

    Reviewed-by: Simon Glass
    Signed-off-by: Tom Rini

    Tom Rini
     

16 Jan, 2018

1 commit


13 Dec, 2017

9 commits

  • Add this feature to the README.

    Signed-off-by: Simon Glass
    Reviewed-by: Lukasz Majewski

    Simon Glass
     
  • Binman construct images consisting of multiple binary files. These files
    sometimes need to know (at run timme) where their peers are located. For
    example, SPL may want to know where U-Boot is located in the image, so
    that it can jump to U-Boot correctly on boot.

    In general the positions where the binaries end up after binman has
    finished packing them cannot be known at compile time. One reason for
    this is that binman does not know the size of the binaries until
    everything is compiled, linked and converted to binaries with objcopy.

    To make this work, we add a feature to binman which checks each binary
    for symbol names starting with '_binman'. These are then decoded to figure
    out which entry and property they refer to. Then binman writes the value
    of this symbol into the appropriate binary. With this, the symbol will
    have the correct value at run time.

    Macros are used to make this easier to use. As an example, this declares
    a symbol that will access the 'u-boot-spl' entry to find the 'pos' value
    (i.e. the position of SPL in the image):

    binman_sym_declare(unsigned long, u_boot_spl, pos);

    This converts to a symbol called '_binman_u_boot_spl_prop_pos' in any
    binary that includes it. Binman then updates the value in that binary,
    ensuring that it can be accessed at runtime with:

    ulong u_boot_pos = binman_sym(ulong, u_boot_spl, pos);

    This assigns the variable u_boot_pos to the position of SPL in the image.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • The elf module can provide some debugging information to assist with
    figuring out what is going wrong. This is also useful in tests. Update the
    -D option so that it is passed through to tests as well.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This is only 3 bytes long which is not enough to hold two symbol values,
    needed to test the binman symbols feature. Increase it to 15 bytes.

    Using very small regions is useful since we can easily compare them in
    tests and errors are fairly easy to diagnose.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • For testing we need to build some ELF files containing binman symbols. Add
    these to the Makefile and check in the binaries:

    u_boot_binman_syms - normal, valid ELF file
    u_boot_binman_syms_bad - missing the __image_copy_start symbol
    u_boot_binman_syms_size - has a binman symbol with an invalid size

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This feature is now supported. Drop the incorrect comment.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This file contains SPL image without a device tree. Add support for
    including this in images.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This file contains the SPL device tree. Add support for including this by
    itself in images.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • In some cases we need to read symbols from U-Boot. At present we have a
    a few cases which does this via 'nm' and 'grep'.

    It is better to use objdump since that tells us the size of the symbols
    and also whether it is weak or not.

    Add a new module which reads ELF information from files. Update existing
    uses of 'nm' to use this module.

    Signed-off-by: Simon Glass

    Simon Glass
     

23 Nov, 2017

15 commits


17 Nov, 2017

1 commit

  • The pylibfdt is used by dtoc (and, indirectly by binman), but there
    is no reason why it must be generated in the tools/ directory.

    Recently, U-Boot switched over to the bundled DTC, and the directory
    structure under scripts/dtc/ now mirrors the upstream DTC project.
    So, scripts/dtc/pylibfdt is the best location.

    I also rewrote the Makefile in a cleaner Kbuild style.

    The scripts from the upstream have been moved as follows:

    lib/libfdt/pylibfdt/setup.py -> scripts/dtc/pylibfdt/setup.py
    lib/libfdt/pylibfdt/libfdt.i -> scripts/dtc/pylibfdt/libfdt.i_shipped

    The .i_shipped is coped to .i during building because the .i must be
    located in the objtree when we build it out of tree.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

16 Sep, 2017

1 commit


12 Jul, 2017

1 commit

  • If a system module is named the same as one of those used by binman we
    currently pick the system module. Adjust the ordering so that our modules
    are chosen instead.

    The module conflict reported was 'tools' from jira-python. I cannot access
    that package to test it.

    Signed-off-by: Simon Glass
    Reported-by: Kevin Hilman
    Acked-by: Kevin Hilman

    Simon Glass
     

03 Jun, 2017

7 commits


10 Apr, 2017

2 commits


12 Mar, 2017

1 commit


07 Feb, 2017

1 commit