30 Jan, 2014

1 commit

  • Commit cbe5cdfcd changed config.mk and arch/sandbox/cpu/Makefile
    to use -idirafter instead of -I and remove -nostdinc.

    But
    * Sandbox-specific code dirties config.mk
    * os.c is compiled without such compiler flags as:
    -Wall -Wstrict-prototypes -Wno-format-security
    -fno-builtin -ffreestanding -fno-stack-protector
    -fstack-usage -Wno-format-nonliteral

    This commit use -idirafter and remove the -nostdinc
    differently and more simply.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     

13 Dec, 2013

1 commit

  • We have some scripts imported from Linux Kernel:
    setlocalversion, checkstack.pl, checkpatch.pl, cleanpatch

    They are located under tools/ directory in U-Boot now.
    But they were originally located under scripts/ directory
    in Linux Kernel.

    This commit moves them to the original location.

    It is true that binutils-version.sh and dtc-version.sh
    do not originate in Linux Kernel, but they should
    be moved by analogy to gcc-version.sh.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

22 Nov, 2013

1 commit

  • This file must be compiled with system headers, even if U-Boot has headers
    of the same name. The existing solution for this is good enough for libfdt,
    but fails when we have headers like stdint.h in U-Boot.

    Use -idirafter instead of -I, and remove the -nostdinc and other things
    that we don't want for this file. The best way to do this is to keep a
    copy of the original flags, rather than trying to filter them later.

    Signed-off-by: Simon Glass

    Simon Glass
     

18 Nov, 2013

1 commit


08 Nov, 2013

1 commit

  • In-tree build:
    - Do not create a symbolic link
    from include/asm to arch/${ARCH}/include/asm
    - Add ${SRCTREE}/arch/arm/include into the header search path

    Out-of-tree build:
    - Do not create a directory ${OBJTREE}/include2
    - Do not create a symbolic link
    from ${OBJTREE}/include2/asm to ${SRCTREE}/arch/${ARCH}/include/asm
    - Add ${SRCTREE}/arch/arm/include into the header search path

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

15 Oct, 2013

1 commit


07 Sep, 2013

3 commits

  • Tom Rini
     
  • For most boards which define CONFIG_SPL_PAD_TO,
    it is defined in config header files.
    Currently, there exists only one exception, cam_enc_4xx board.

    This patch moves CONFIG_SPL_PAD_TO definition
    from board/ait/cam_enc_4xx/config.mk
    to include/configs/cam_enc_4xx.h.

    With this modification, we can delete a glue code
    in the top level config.mk:

    ifneq ($(CONFIG_SPL_PAD_TO),)
    CPPFLAGS += -DCONFIG_SPL_PAD_TO=$(CONFIG_SPL_PAD_TO)
    endif

    Signed-off-by: Masahiro Yamada
    Cc: Heiko Schocher

    Masahiro Yamada
     
  • Currently no makefiles (board-specific config.mk)
    set the following variables:

    CONFIG_SPL_TEXT_BASE
    CONFIG_UBOOT_PAD_TO
    CONFIG_RESET_VECTOR_ADDRESS
    CONFIG_TPL_PAD_TO

    For all target boards using above macros
    they are set in header files (include/configs/*.h),
    so we do not need to set them as CPPFLAGS.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

05 Sep, 2013

1 commit


31 Aug, 2013

1 commit

  • Add mkimage support for generating and verifying MXS bootstream.
    The implementation here is mostly a glue code between MXSSB v0.4
    and mkimage, but the long-term goal is to rectify this and merge
    MXSSB with mkimage more tightly. Once this code is properly in
    U-Boot, MXSSB shall be deprecated in favor of mkimage-mxsimage
    support.

    Note that the mxsimage generator needs libcrypto from OpenSSL, I
    therefore enabled the libcrypto/libssl unconditionally.

    MXSSB: http://git.denx.de/?p=mxssb.git;a=summary

    The code is based on research presented at:
    http://www.rockbox.org/wiki/SbFileFormat

    Signed-off-by: Marek Vasut
    Cc: Tom Rini
    Cc: Fabio Estevam
    Cc: Stefano Babic
    Cc: Otavio Salvador

    Marek Vasut
     

21 Aug, 2013

1 commit

  • Due to the nand SPL on some board(e.g. P1022DS)has a size limit, it can
    not be more than 4K. So, the SPL cannot initialize the DDR with the SPD
    code. This patch introduces TPL to enable a loader stub that is loaded
    by the code from the SPL. It initializes the DDR with the SPD or other
    operations.

    The TPL's size is sizeable, the maximum size is decided by the memory's
    size that TPL runs. It initializes the DDR through SPD code, and copys
    final uboot image to DDR. So there are three stage uboot images:
    * spl_boot, * tpl_boot, * final uboot image

    Signed-off-by: Ying Zhang
    Acked-by: York Sun

    Ying Zhang
     

20 Aug, 2013

1 commit

  • SPL defines CONFIG_SPL_BUILD but this does not percolate to the
    autoconf.mk Makefile. As a result the build breaks when
    CONFIG_SPL_BUILD is used in the board-specific include header file. With
    this, there is a possibility of having a CONFIG option defined in the
    header file but not defined in the Makefile causing all kinds of build
    failure and problems.

    It also messes things for up, for example, when one might want to
    undefine options to keep the SPL small and doesn't want to be stuck with
    the CONFIG options used for U-boot. Lastly, this also avoids defining
    special CONFIG_SPL_ variables for cases where some options are required
    in U-boot but not in SPL.

    We add a spl-autoconf.mk rule that is generated for SPL with the
    CONFIG_SPL_BUILD flag and conditionally include it for SPL builds.

    Signed-off-by: Joel Fernandes
    Signed-off-by: Ying Zhang

    Joel Fernandes
     

03 Aug, 2013

1 commit

  • Subsequent patches assume that dtc supports various recent features.
    These are available in dtc 1.4.0. Validate that dtc is at least that
    version.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     

24 Jul, 2013

1 commit

  • Like many other projects, U-Boot has a tradition of including big
    blocks of License headers in all files. This not only blows up the
    source code with mostly redundant information, but also makes it very
    difficult to generate License Clearing Reports. An additional problem
    is that even the same lincenses are referred to by a number of
    slightly varying text blocks (full, abbreviated, different
    indentation, line wrapping and/or white space, with obsolete address
    information, ...) which makes automatic processing a nightmare.

    To make this easier, such license headers in the source files will be
    replaced with a single line reference to Unique Lincense Identifiers
    as defined by the Linux Foundation's SPDX project [1]. For example,
    in a source file the full "GPL v2.0 or later" header text will be
    replaced by a single line:

    SPDX-License-Identifier: GPL-2.0+

    We use the SPDX Unique Lincense Identifiers here; these are available
    at [2].

    Note: From the legal point of view, this patch is supposed to be only
    a change to the textual representation of the license information,
    but in no way any change to the actual license terms. With this patch
    applied, all files will still be licensed under the same terms they
    were before.

    Note 2: The apparent difference between the old "COPYING" and the new
    "Licenses/gpl-2.0.txt" only results from switching to the upstream
    version of the license which is differently formatted; there are not
    any actual changes to the content.

    Note 3: There are some recurring questions about linense issues, such
    as:
    - Is a "All Rights Reserved" clause a problem in GPL code?
    - Are files without any license header a problem?
    - Do we need license headers at all?

    The following excerpt from an e-mail by Daniel B. Ravicher should help
    with these:

    | Message-ID:
    | Date: Wed, 21 Oct 2009 18:35:22 -0400
    | From: "Daniel B. Ravicher"
    | To: Wolfgang Denk
    | Subject: Re: GPL and license cleanup questions
    |
    | Mr. Denk,
    |
    | Wolfgang Denk wrote:
    | > - There are a number of files which do not include any specific
    | > license information at all. Is it correct to assume that these files
    | > are automatically covered by the "GPL v2 or later" clause as
    | > specified by the COPYING file in the top level directory of the
    | > U-Boot source tree?
    |
    | That is a very fact specific analysis and could be different across the
    | various files. However, if the contributor could reasonably be expected
    | to have known that the project was licensed GPLv2 or later at the time
    | she made her contribution, then a reasonably implication is that she
    | consented to her contributions being distributed under those terms.
    |
    | > - Do such files need any clean up, for example should we add GPL
    | > headers to them, or is this not needed?
    |
    | If the project as a whole is licensed under clear terms, you need not
    | identify those same terms in each file, although there is no harm in
    | doing so.
    |
    | > - There are other files, which include both a GPL license header
    | > _plus_ some copyright note with an "All Rights Reserved" clause. It
    | > has been my understanding that this is a conflict, and me must ask
    | > the copyright holders to remove such "All Rights Reserved" clauses.
    | > But then, some people claim that "All Rights Reserved" is a no-op
    | > nowadays. License checking tools (like OSLC) seem to indicate this is
    | > a problem, but then we see quite a lot of "All rights reserved" in
    | > BSD-licensed files in gcc and glibc. So what is the correct way to
    | > deal with such files?
    |
    | It is not a conflict to grant a license and also reserve all rights, as
    | implicit in that language is that you are reserving all "other" rights
    | not granted in the license. Thus, a file with "Licensed under GPL, All
    | Rights Reserved" would mean that it is licensed under the GPL, but no
    | other rights are given to copy, modify or redistribute it.
    |
    | Warm regards,
    | --Dan
    |
    | Daniel B. Ravicher, Legal Director
    | Software Freedom Law Center (SFLC) and Moglen Ravicher LLC
    | 1995 Broadway, 17th Fl., New York, NY 10023
    | (212) 461-1902 direct (212) 580-0800 main (212) 580-0898 fax
    | ravicher@softwarefreedom.org www.softwarefreedom.org

    [1] http://spdx.org/
    [2] http://spdx.org/licenses/

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

19 Jul, 2013

1 commit


29 Jun, 2013

1 commit

  • At present mkimage is set up to always build with image signing support.
    This means that the SSL libraries (e.g. libssl-dev) are always required.

    Adjust things so that mkimage can be built with and without image signing,
    controlled by the presence of CONFIG_FIT_SIGNATURE in the board config file.

    If CONFIG_FIT_SIGNATURE is not enabled, then mkimage will report a warning
    that signing is not supported. If the option is enabled, but libraries are
    not available, then a build error similar to this will be shown:

    lib/rsa/rsa-sign.c:26:25: fatal error: openssl/rsa.h: No such file or directory

    Signed-off-by: Simon Glass

    Simon Glass
     

26 Jun, 2013

2 commits

  • RSA provides a public key encryption facility which is ideal for image
    signing and verification.

    Images are signed using a private key by mkimage. Then at run-time, the
    images are verified using a private key.

    This implementation uses openssl for the host part (mkimage). To avoid
    bringing large libraries into the U-Boot binary, the RSA public key
    is encoded using a simple numeric representation in the device tree.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • Use -finstrument-functions when tracing is enabled (make FTRACE=1).
    Tracing is not currently supported by SPL even if sufficient memory is
    available.

    When tracing is enabled, we #define FTRACE. This can be used by
    board config files to conditionally enable the tracing options.

    Signed-off-by: Simon Glass

    Simon Glass
     

10 May, 2013

1 commit

  • Currently the base setting for CFLAGS is split in two possibilities,
    one with -DBUILD_TAG appended at the end and one without, the rest of
    CFLAGS is the same in both cases. Change this so CFLAGS are always set
    and the -DBUILD_TAG is appended in separate ifdef.

    Signed-off-by: Marek Vasut
    Cc: Wolfgang Denk
    Cc: Tom Rini
    Reviewed-by: Otavio Salvador

    Marek Vasut
     

01 May, 2013

1 commit

  • At present the generic board error can occur when configuring U-Boot, or
    during distclean, but this is incorrect. The existing autoconf.mk may come
    from an earlier U-Boot configuration which is about to be overwritten.

    Make the error conditional so that it will only be triggered when we are
    actually building U-Boot.

    This avoids a problem where the system is being reconfigured to remove
    CONFIG_SYS_GENERIC_BOARD on an architecture that does not support it.
    Currently this will print an error and require the manual removal of
    include/autoconf.mk.

    Signed-off-by: Simon Glass

    Simon Glass
     

22 Apr, 2013

1 commit

  • This new make target "u-boot-img-spl-at-end.bin" consists of the
    the real, full-blown U-Boot image and the U-Boot SPL binary
    directly attached to it. The full-blown U-Boot image has the
    mkimage header included, with its load-address and entry-point.

    This will be used by the upcoming lwmon5 PPC440EPx derivate board
    port.

    Signed-off-by: Stefan Roese

    Stefan Roese
     

12 Apr, 2013

1 commit

  • make never uses the SHELL variable from the environment. Instead, it
    uses /bin/sh, or the value assigned to the SHELL variable by the Makefile. This
    makes the export of the SHELL variable useless for sub-makes (but still useful
    for the environment of recipes). However, we want all makes to use the same
    shell.

    This patch fixes this issue by moving the SHELL variable setup and export to the
    top config.mk, so that all Makefile-s including it use the same shell.

    Since BASH is used by default, this makes it possible to use things
    like 'echo -e ...' in sub-makes, which would otherwise fail e.g. with /bin/sh
    symlinked to /bin/dash on Ubuntu.

    Signed-off-by: Benoît Thébaudeau
    Reviewed-by: Tom Rini

    Benoît Thébaudeau
     

19 Mar, 2013

1 commit

  • Albert's rework of the linker scripts conflicted with Simon's making
    everyone use __bss_end. We also had a minor conflict over
    README.scrapyard being added to in mainline and enhanced in
    u-boot-arm/master with proper formatting.

    Conflicts:
    arch/arm/cpu/ixp/u-boot.lds
    arch/arm/cpu/u-boot.lds
    arch/arm/lib/Makefile
    board/actux1/u-boot.lds
    board/actux2/u-boot.lds
    board/actux3/u-boot.lds
    board/dvlhost/u-boot.lds
    board/freescale/mx31ads/u-boot.lds
    doc/README.scrapyard
    include/configs/tegra-common.h

    Build tested for all of ARM and run-time tested on am335x_evm.

    Signed-off-by: Tom Rini

    Tom Rini
     

16 Mar, 2013

1 commit

  • We are introducing a new unified board setup. Add a check to make sure that
    board config files do not define CONFIG_SYS_GENERIC_BOARD unless their
    architecture defines __HAVE_ARCH_GENERIC_BOARD

    __HAVE_ARCH_GENERIC_BOARD will currently not be the default setting, but
    we can switch this later when most architecture support generic board.

    Signed-off-by: Simon Glass

    Simon Glass
     

13 Mar, 2013

1 commit

  • Refactor linker-generated array code so that symbols
    which were previously linker-generated are now compiler-
    generated. This causes relocation records of type
    R_ARM_ABS32 to become R_ARM_RELATIVE, which makes
    code which uses LGA able to run before relocation as
    well as after.

    Note: this affects more than ARM targets, as linker-
    lists span possibly all target architectures, notably
    PowerPC.

    Conflicts:
    arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
    arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
    arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
    board/ait/cam_enc_4xx/u-boot-spl.lds
    board/davinci/da8xxevm/u-boot-spl-da850evm.lds
    board/davinci/da8xxevm/u-boot-spl-hawk.lds
    board/vpac270/u-boot-spl.lds

    Signed-off-by: Albert ARIBAUD

    Albert ARIBAUD
     

22 Oct, 2012

1 commit

  • This patch adds essential components for generation of the contents of
    the linker section that is used by the linker-generated array. All of
    the contents is held in a separate file, u-boot.lst, which is generated
    at runtime just before U-Boot is linked.

    The purpose of this code is to especially generate the appropriate
    boundary symbols around each subsection in the section carrying the
    linker-generated arrays. Obviously, the interim linker code for actual
    placement of the variables into the section is generated too. The
    generated file, u-boot.lst, is included into u-boot.lds via the linker
    INCLUDE directive in u-boot.lds .

    Adjustments are made in the Makefile and spl/Makefile so that the
    u-boot.lds and u-boot-spl.lds depend on their respective .lst files.

    Signed-off-by: Marek Vasut
    Cc: Joe Hershberger
    Cc: Mike Frysinger
    Acked-by: Joe Hershberger
    Tested-by: Joe Hershberger

    Marek Vasut
     

16 Oct, 2012

3 commits

  • Add support for running source code checkers on u-boot source, e.g.,
    using sparse to aid with typechecking. This comes in especially
    handy as SoC vendors mix and match cores and devices with different
    endianness, thus here we add CHECK_ENDIAN to the otherwise linux
    kernel default CHECKFLAGS.

    Signed-off-by: Kim Phillips

    Kim Phillips
     
  • Compile drivers/serial/serial.c by default both into SPL and into
    non-SPL builds, since CONFIG_SERIAL_MULTI is now the default state.
    Also having common/serial.c in by default now, it's pointless to keep
    -DCONFIG_SERIAL_MULTI in CPPFLAGS any longer, so remove it as well.

    Signed-off-by: Marek Vasut
    Cc: Marek Vasut
    Cc: Tom Rini
    Cc: Anatolij Gustschin
    Cc: Stefan Roese

    Marek Vasut
     
  • Enable CONFIG_SERIAL_MULTI for all builds of U-Boot. That includes
    both SPL builds and non-SPL builds, everything. To avoid poluting
    this patch with removal of ifdef-endif constructions containing
    CONFIG_SERIAL_MULTI, the CONFIG_SERIAL_MULTI is temporarily added
    into CPPFLAGS in config.mk . This will be again removed in following
    patch.

    Signed-off-by: Marek Vasut
    Cc: Marek Vasut
    Cc: Tom Rini

    Marek Vasut
     

04 Oct, 2012

1 commit


11 Aug, 2012

1 commit

  • This patch makes sure that we always use the GNU ld. U-Boot uses certain
    construct e.g. OVERLAY which are not implemented in gold therefore it
    always needs GNU ld for linking.

    It works well if default linker in toolchain is GNU ld but in some
    cases we can have gold to be the default linker and also ship GNU ld
    but not as default in such cases its called $(PREFIX)ld.bfd, with this
    patch we make sure that if $(PREFIX)ld.bfd exists than we use that for
    our ld.

    This way it does not matter what the default ld is.

    Signed-off-by: Otavio Salvador
    Signed-off-by: Khem Raj
    Acked-by: Mike Frysinger

    Khem Raj
     

07 Jul, 2012

1 commit

  • On x600 (SPEAr600) U-Boot is appended to U-Boot SPL. Both images are
    created using mkimage (crc etc), so that the ROM bootloader can check
    its integrity. Padding needs to be done to the SPL image (with
    mkimage header) and not the binary. Otherwise the resulting image
    which is loaded/copied by the ROM bootloader to SRAM doesn't fit.
    The resulting image containing both U-Boot images is called u-boot.spr.

    Signed-off-by: Stefan Roese
    Cc: Amit Virdi
    Cc: Vipin Kumar

    Stefan Roese
     

15 May, 2012

1 commit


27 Mar, 2012

2 commits


08 Nov, 2011

1 commit


04 Nov, 2011

1 commit

  • U-Boot Makefiles contain a number of tests for compiler features etc.
    which so far are executed again and again. On some architectures
    (especially ARM) this results in a large number of calls to gcc.

    This patch makes sure to run such tests only once, thus largely
    reducing the number of "execve" system calls.

    Example: number of "execve" system calls for building the "P2020DS"
    (Power Architecture) and "qong" (ARM) boards, measured as:
    -> strace -f -e trace=execve -o /tmp/foo ./MAKEALL
    -> grep execve /tmp/foo | wc -l

    Before: After: Reduction:
    ==================================
    P2020DS 20555 15205 -26%
    qong 31692 14490 -54%

    As a result, built times are significantly reduced, typically by
    30...50%.

    Signed-off-by: Wolfgang Denk
    Cc: Andy Fleming
    Cc: Kumar Gala
    Cc: Albert Aribaud
    cc: Graeme Russ
    cc: Mike Frysinger
    Tested-by: Graeme Russ
    Tested-by: Matthias Weisser
    Tested-by: Sanjeev Premi
    Tested-by: Simon Glass
    Tested-by: Macpaul Lin
    Acked-by: Mike Frysinger

    Wolfgang Denk
     

27 Oct, 2011

1 commit

  • This new option allows U-Boot to embed a binary device tree into its image
    to allow run-time control of peripherals. This device tree is for U-Boot's
    own use and is not necessarily the same one as is passed to the kernel.

    The device tree compiler output should be placed in the $(obj)
    rooted tree. Since $(OBJCOPY) insists on adding the path to the
    generated symbol names, to ensure consistency it should be
    invoked from the directory where the .dtb file is located and
    given the input file name without the path.

    This commit contains my entry for the ugliest Makefile / shell interaction
    competition.

    Signed-off-by: Simon Glass

    Simon Glass
     

22 Oct, 2011

1 commit