23 Jan, 2018

1 commit

  • For debugging efi_loader we need the capability to print EFI
    device paths. With this patch we can write:

    debug("device path: %pD", dp);

    A possible output would be

    device path: /MemoryMapped(0x0,0x3ff93a82,0x3ff93a82)

    This enhancement is not available when building without EFI support
    and neither in the SPL nor in the API example.

    A test is provided. It can be executed in the sandbox with command
    ut_print.

    The development for EFI support in the sandbox is currently in
    branch u-boot-dm/efi-working. The branch currently lacks
    commit 6ea8b580f06b ("efi_loader: correct DeviceNodeToText
    for media types"). Ater rebasing the aforementioned branch on
    U-Boot v2018.01 the test is executed successfully.

    Without EFI support in the sandbox the test is simply skipped.

    Suggested-by: Rob Clark
    Signed-off-by: Heinrich Schuchardt
    Reviewed-by: Simon Glass
    Signed-off-by: Alexander Graf

    Heinrich Schuchardt
     

12 Jan, 2018

1 commit

  • Run hello_world successfully.

    U-Boot 2018.01-rc2-00033-gb265b91-dirty (Dec 22 2017 - 13:54:21 +0800)

    DRAM: 1 GiB
    MMC: mmc@f0e00000: 0
    SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
    In: serial@f0300000
    Out: serial@f0300000
    Err: serial@f0300000
    Net:
    Warning: mac@e0100000 (eth0) using random MAC address - 0a:47:9b:f8:b4:f2
    eth0: mac@e0100000
    RISC-V # mmc rescan
    RISC-V # fatls mmc 0:1
    318907 u-boot-ae250-64.bin
    1252 hello_world_ae250_32.bin
    328787 u-boot-ae250-32.bin

    3 file(s), 0 dir(s)

    RISC-V # fatload mmc 0:1 0x600000 hello_world_ae250_32.bin
    reading hello_world_ae250_32.bin
    1252 bytes read in 23 ms (52.7 KiB/s)
    RISC-V # go 0x600000
    Example expects ABI version 9
    Actual U-Boot ABI version 9
    Hello World
    argc = 1
    argv[0] = "0x600000"
    argv[1] = "$B@"
    Hit any key to exit ...

    RISC-V #

    Signed-off-by: Rick Chen
    Signed-off-by: Rick Chen
    Signed-off-by: Greentime Hu

    Rick Chen
     

13 Sep, 2017

3 commits

  • Solves build issue:

    Building current source for 134 boards (12 threads, 1 job per thread)
    arm: + lsxhl
    +examples/api/vsprintf.o: In function `string16':
    +lib/vsprintf.c:278: undefined reference to `memcpy'
    +examples/api/uuid.o: In function `uuid_bin_to_str':
    +lib/uuid.c:197: undefined reference to `memcpy'
    +lib/uuid.c:199: undefined reference to `memcpy'
    +make[3]: *** [examples/api/demo] Error 1
    +make[2]: *** [examples/api] Error 2
    +make[1]: *** [examples] Error 2
    +make: *** [sub-make] Error 2
    133 0 1 /134 sheevaplug

    Signed-off-by: Rob Clark

    Rob Clark
     
  • This works (roughly) the same way as linux's, but we currently always
    print lower-case (ie. we just keep %pUB and %pUL for compat with linux),
    mostly just because that is what uuid_bin_to_str() supports.

    %pUb: 01020304-0506-0708-090a-0b0c0d0e0f10
    %pUl: 04030201-0605-0807-090a-0b0c0d0e0f10

    It will be used by a later efi_loader paths for efi variables and for
    device-path-to-text protocol, and also quite useful for debug prints
    of protocol GUIDs.

    Signed-off-by: Rob Clark
    Tested-by: Heinrich Schuchardt
    Reviewed-by: Simon Glass

    Rob Clark
     
  • This is convenient for efi_loader which deals a lot with UTF-16. Only
    enabled with CC_SHORT_WCHAR, leaving room to add a UTF-32 version when
    CC_SHORT_WCHAR is not enabled.

    Signed-off-by: Rob Clark
    Reviewed-by: Simon Glass
    Reviewed-by: Simon Glass

    Rob Clark
     

07 Jul, 2017

1 commit

  • AVR32 is gone. It's already more than two years for no support in Buildroot,
    even longer there is no support in GCC (last version is heavily patched 4.2.4).

    Linux kernel v4.12 got rid of it (and v4.11 didn't build successfully).

    There is no good point to keep this support in U-Boot either.

    Reviewed-by: Simon Glass
    Reviewed-by: Tom Rini
    Reviewed-by: Heiko Schocher
    Signed-off-by: Andy Shevchenko

    Andy Shevchenko
     

16 Jun, 2017

1 commit


12 Jun, 2017

2 commits


06 Apr, 2017

3 commits

  • The OpenRISC architecture is currently unmaintained, remove.

    Cc: Stefan Kristiansson
    Signed-off-by: Tom Rini
    Reviewed-by: Simon Glass

    Tom Rini
     
  • The SPARC architecture is currently unmaintained, remove.

    Cc: Francois Retief
    Signed-off-by: Tom Rini

    Tom Rini
     
  • The architecture is currently unmaintained, remove.

    Cc: Benjamin Matthews
    Cc: Chong Huang
    Cc: Dimitar Penev
    Cc: Haitao Zhang
    Cc: I-SYST Micromodule
    Cc: M.Hasewinkel (MHA)
    Cc: Marek Vasut
    Cc: Martin Strubel
    Cc: Peter Meerwald
    Cc: Sonic Zhang
    Cc: Valentin Yakovenkov
    Cc: Wojtek Skulski
    Cc: Wojtek Skulski
    Signed-off-by: Tom Rini

    Tom Rini
     

21 Jan, 2017

1 commit

  • We have long had available optimized versions of the memset and memcpy
    functions that are borrowed from the Linux kernel. We should use these
    in normal conditions as the speed wins in many workflows outweigh the
    relatively minor size increase. However, we have a number of places
    where we're simply too close to size limits in SPL and must be able to
    make the size vs performance trade-off in those cases.

    Cc: Philippe Reynes
    Cc: Eric Jarrige
    Cc: Heiko Schocher
    Cc: Magnus Lilja
    Cc: Lokesh Vutla
    Cc: Chander Kashyap
    Cc: Akshay Saraswat
    Cc: Simon Glass
    Cc: Stefan Roese
    Signed-off-by: Tom Rini
    Acked-by: Stefan Roese
    Reviewed-by: Simon Glass

    Tom Rini
     

27 Sep, 2016

1 commit


16 Aug, 2016

1 commit

  • The Xtensa processor architecture is a configurable, extensible,
    and synthesizable 32-bit RISC processor core provided by Cadence.

    This is the first part of the basic architecture port with changes to
    common files. The 'arch/xtensa' directory, and boards and additional
    drivers will be in separate commits.

    Signed-off-by: Chris Zankel
    Signed-off-by: Max Filippov
    Reviewed-by: Simon Glass
    Reviewed-by: Tom Rini

    Chris Zankel
     

21 May, 2016

2 commits


08 Feb, 2016

1 commit


06 Feb, 2016

1 commit

  • Correct spelling of "U-Boot" shall be used in all written text
    (documentation, comments in source files etc.).

    Signed-off-by: Bin Meng
    Reviewed-by: Heiko Schocher
    Reviewed-by: Simon Glass
    Reviewed-by: Minkyu Kang

    Bin Meng
     

23 Nov, 2015

1 commit

  • This patch adds a small printf() version that supports all basic formats.
    Its intented to be used in U-Boot SPL versions on platforms with very
    limited internal RAM sizes.

    To enable it, just define CONFIG_USE_TINY_PRINTF in your defconfig. This
    will result in the SPL using this tiny function and the main U-Boot
    still using the full-blown printf() function.

    This code was copied from:
    http://www.sparetimelabs.com/printfrevisited
    With mostly only coding style related changes so that its checkpatch
    clean.

    The size reduction is about 2.5KiB. Here a comparison for the db-mv784mp-gp
    (Marvell AXP) SPL:

    Without this patch:
    58963 18536 1928 79427 13643 ./spl/u-boot-spl

    With this patch:
    56542 18536 1956 77034 12cea ./spl/u-boot-spl

    Note:
    To make it possible to compile tiny-printf.c instead of vsprintf.c when
    CONFIG_USE_TINY_PRINTF is defined, the functions printf() and vprintf() are
    moved from common/console.c into vsprintf.c in this patch.

    Signed-off-by: Stefan Roese
    Cc: Simon Glass
    Cc: Hans de Goede
    Cc: Tom Rini
    Cc: Albert Aribaud

    Stefan Roese
     

20 Nov, 2015

1 commit


11 Nov, 2015

1 commit


10 Nov, 2015

2 commits

  • After consulting with some of the SPDX team, the conclusion is that
    Makefiles are worth adding SPDX-License-Identifier tags too, and most of
    ours have one. This adds tags to ones that lack them and converts a few
    that had full (or in one case, very partial) license blobs into the
    equivalent tag.

    Cc: Kate Stewart
    Signed-off-by: Tom Rini

    Tom Rini
     
  • When building a Thumb-1-only target with CONFIG_SYS_THUMB_BUILD,
    some files fail to build, most of the time because they include
    mcr instructions, which only exist for Thumb-2.

    This patch introduces a Kconfig option CONFIG_THUMB2 and uses
    it to select between Thumb-2 and ARM mode for the aforementioned
    files.

    Signed-off-by: Albert ARIBAUD

    Albert ARIBAUD
     

20 May, 2015

1 commit


30 Jan, 2015

1 commit

  • this is an atempt to make the export of functions typesafe.
    I replaced the jumptable void ** by a struct (jt_funcs) with function pointers.
    The EXPORT_FUNC macro now has 3 fixed parameters and one
    variadic parameter
    The first is the name of the exported function,
    the rest of the parameters are used to format a functionpointer
    in the jumptable,

    the EXPORT_FUNC macros are expanded three times,
    1. to declare the members of the struct
    2. to initialize the structmember pointers
    3. to call the functions in stubs.c

    Signed-off-by: Martin Dorwig
    Acked-by: Simon Glass

    Signed-off-by: Simon Glass
    (resending to the list since my tweaks are not quite trivial)

    Martin Dorwig
     

06 Jan, 2015

1 commit


17 Sep, 2014

2 commits


24 May, 2014

1 commit

  • In case of multilib-enabled toolchains if default architecture differ from
    the one examples are being built for linker will fail to link example object
    files with libgcc of another (non-compatible) architecture.

    Interesting enough for years in main Makefile we used CFLAGS/c_flags for this
    but not for examples.

    So fixing it now.

    Signed-off-by: Alexey Brodkin

    Cc: Masahiro Yamada
    Cc: Tom Rini
    Cc: Wolfgang Denx
    Acked-by: WOlfgang Denk
    Acked-by: Masahiro Yamada

    Alexey Brodkin
     

18 Apr, 2014

1 commit


07 Mar, 2014

2 commits

  • Before this commit, CONFIG_MPC8260 and CONFIG_8260
    were used mixed-up.

    All boards with mpc8260 cpu defined both of them:
    - CONFIG_MPC8260 was defined in board config headers
    and include/common.h
    - CONFIG_8260 was defined arch/powerpc/cpu/mpc8260/config.mk

    We do not need to have both of them.
    This commit keeps only CONFIG_MPC8260.

    This commit does:
    - Delete CONFIG_8260 and CONFIG_MPC8260 definition
    in config headers and include/common.h
    - Rename CONFIG_8260 to CONFIG_MPC8260
    in arch/powerpc/cpu/mpc8260/config.mk.
    - Rename #ifdef CONFIG_8260 to #ifdef CONFIG_MPC8260

    Signed-off-by: Masahiro Yamada
    Cc: Wolfgang Denk

    Masahiro Yamada
     
  • Kbuild brought about many advantages for us but a significant
    performance regression was reported by Simon Glass.

    After some discussions and analysis, it turned out
    its main cause is in $(call cc-option,...).

    Historically, U-Boot parses all config.mk
    (arch/*/config.mk and board/*/config.mk)
    every time descending into subdirectories.
    That means cc-options are evaluated over and over again.

    $(call cc-option,...) is useful but costly.
    So we want to evaluate them only in ./Makefile
    and spl/Makefile and export compiler flags.

    This commit changes the build system as follows:

    - Modify scripts/Makefile.build to not include config.mk
    Instead, add $(PLATFORM_CPPFLAGS) to asflags-y, ccflags-y,
    cppflags-y.

    - Export many variables
    Going forward, Kbuild will not parse config.mk files
    when it descends into subdirectories.
    If we want to set variables in config.mk and use them
    in subdirectories, they must be exported.

    This is the list of variables to get exported:
    PLATFORM_CPPFLAGS
    CPUDIR
    BOARDDIR
    OBJCOPYFLAGS
    LDFLAGS
    LDFLAGS_FINAL
    (used in nand_spl/board/*/*/Makefile)
    CONFIG_STANDALONE_LOAD_ADDR
    (used in examples/standalone/Makefile)
    SYM_PREFIX
    (used in examples/standalone/Makefile)
    RELFLAGS
    (used in examples/standalone/Makefile)

    - Delete CPPFLAGS
    This variable has been replaced with PLATFORM_CPPFLAGS

    - Copy gcclibdir from example/standalone/Makefile
    to arch/sparc/config.mk
    The reference in CONFIG_STANDALONE_LOAD_ADDR must be
    resolved before it is exported.

    Signed-off-by: Masahiro Yamada
    Reported-by: Simon Glass
    Acked-by: Simon Glass
    Tested-by: Simon Glass [on Sandbox]
    Tested-by: Stephen Warren [on Tegra]

    Masahiro Yamada
     

26 Feb, 2014

2 commits


20 Feb, 2014

5 commits

  • Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • 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: Masahiro Yamada
    Tested-by: Gerhard Sittig

    Masahiro Yamada
     
  • 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 " 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="
    syntax for descending into sub-directories.
    (We can write it like "make $(obj)=" with a shorthand.)
    This means the current working directory is always the top
    of the output directory.

    Signed-off-by: Masahiro Yamada
    Tested-by: Gerhard Sittig

    Masahiro Yamada
     
  • This commit moves some flags which are used
    under examples/ directory only.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit moves suffix rules from config.mk
    to scripts/Makefile.build, which will allow us
    to switch smoothly to real Kbuild.

    Note1:
    post/lib_powerpc/fpu/Makefile has
    its own rule to compile C sources.
    We need to tweak it to keep the same behavior.

    Note2:
    There are two file2 with the same name:
    arch/arm/lib/crt0.S and eamples/api/crt0.S.
    To keep the same build behavior,
    examples/api/Makefile also has to be treaked.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada