20 Feb, 2014

1 commit

  • 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
     

10 Jan, 2014

1 commit

  • The vexpress_aemv8a is the first aarch64 board in U-Boot.
    As it was introduced, it gets built when "MAKEALL -a arm"
    is invoked, and fails as this command is run with a 32-bit,
    not 64-bit, toolchain as the cross-compiler.

    Introduce 'aarch64' as a valid 'MAKEALL -a' argument, treated
    as 'arm' for all other intents, and change the architecture
    of the vexpress_aemv8a entry in boards.cfg from 'arm' to
    'aarch64'.

    Albert ARIBAUD
     

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
     

12 Sep, 2013

1 commit


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
     

12 Apr, 2013

1 commit


02 Oct, 2012

1 commit

  • This patch adds support for networking in SPL. Some devices are
    capable of loading SPL via network so it makes sense to load the
    main U-Boot binary via network too. This patch tries to use
    existing network code as much as possible. Unfortunately, it depends
    on environment which in turn depends on other code so SPL size
    is increased significantly. No effort was done to decouple network
    code and environment so far.

    Signed-off-by: Ilya Yanok
    Acked-by: Joe Hershberger
    Signed-off-by: Tom Rini

    Ilya Yanok
     

01 Sep, 2012

1 commit


10 Aug, 2012

1 commit

  • Add support for specifying a differnt CPU for main u-boot and SPL
    u-boot builds. This is done by adding an optional SPL CPU after the
    main CPU in boards.cfg as follows:

    normal_cpu:spl_cpu

    This this case CPU will be set to "normal_cpu" during the main u-boot
    build and "spl_cpu" during the SPL build.

    Signed-off-by: Allen Martin

    Allen Martin
     

10 Jul, 2012

1 commit

  • This can be useful for generic scripts. For example, rather than hard-
    coding a script to ext2load tegra-harmony.dtb, it could load
    ${soc}-${board}.dtb and hence not need adjustments to run on multiple
    boards.

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

    Stephen Warren
     

21 Jun, 2012

1 commit


06 Oct, 2011

1 commit


29 Jul, 2011

1 commit

  • Parsing of boards.cfg fails on FreeBSD with the error:

    sed: 1: "/=/ {s/=/\t/;q } ; { s/ ...": extra characters at the end
    of q command

    BSD sed expects commands to be on seperate 'lines', hence it expects
    an additional ; before the closing brackets.
    BSD sed does not support \t, replaced by literal tab.

    Signed-off-by: Jeroen Hofstee
    Cc: Marek Vasut
    Acked-by: Mike Frysinger

    Jeroen Hofstee
     

21 Jan, 2011

1 commit

  • When building with srctree != objtree, the build creates arch/soc/cpu
    specific symlinks in the source tree. This means that the same source
    tree can't be used for multiple builds at the same time. Also, these
    symlinks in the source tree are only cleaned up if one passes the same
    O= to distclean.

    When srctree != objtree, mkconfig creates an $objtree/include2 directory
    in the objtree to host the asm -> arch/$arch/include/asm symlink so that
    "#include " can be used. But it also creates another identical
    symlink in $objtree/include.

    Then, mkconfig creates two symlinks:
    $objtree/include/asm/arch -> arch/$arch/include/asm/arch-$cpu (or $soc)
    $objtree/include/asm/proc -> arch/$arch/include/asm/proc-armv (on arm)
    but because $objtree/include/asm points at $srctree already, the two
    symlinks are created under $srctree.

    To fix this, create a real $objtree/include/asm directory, instead of a
    symlink. Update cleanup code accordingly.

    Signed-off-by: Loïc Minier

    Loïc Minier
     

10 Jan, 2011

1 commit

  • We have config_defaults.h which are random configuration settings that
    everyone gets by default. We also have config_cmd_default.h which is a
    recommended list of defaults but boards have to opt into. Now we have
    config_cmd_defaults.h which is a list of defaults that everyone gets
    and has to actively opt out of.

    For now, we populate it with the bootm command which previously was
    unable to be disabled.

    Signed-off-by: Mike Frysinger

    Mike Frysinger
     

19 Oct, 2010

2 commits

  • When planning for more generalization and Makefile cleanup it became
    obvious that the introduction of a separate CONFIG_MK_ name space for
    config options that were set through scripting in the Makefile was
    not a good idea.

    Originally the idea was to provide a script-free approach to supply
    configuration options - there was no real need for a separate name
    space. But when we now convert the existing Makefile entries to make
    use of this approach, it would mean that we have to touch a large
    number of board config files and add #ifdef / #define sequences to
    "convert" from the CONFIG_MK_ to the CONFIG_ name space.

    It seems much cleaner to get rid of this somewhat arbitrary _MK
    string now for the few boards that actually use it.

    Signed-off-by: Wolfgang Denk
    Acked-by: Mike Frysinger

    Wolfgang Denk
     
  • There are some boards where it's currently not possible to detect all
    board information at runtime, therefore a new column was added to
    boards.cfg .

    This column can contain multiple options: a board configuration name,
    optionally followed by a colon (':') and a list of options, which are
    separated by comma (',').

    In case of simple options like '256M_U_BOOT', these expand to
    "#define CONFIG_MK_256M_U_BOOT 1" in config.h . In case of
    assignments like 'RAM=8192', these expand to "#define CONFIG_MK_RAM
    8192" in config.h .

    Example:

    FOO:HAS_BAR,BAZ=64

    means:
    - the name of the board config file is include/configs/FOO.h
    - the generated file include/config.h will contain these
    lines:

    #define CONFIG_HAS_BAR 1
    #define CONFIG_BAZ 64

    Signed-off-by: Marek Vasut

    [wd@denx.de: edited commit message; added code to deal with an
    optional board configuration name]

    Signed-off-by: Wolfgang Denk

    Marek Vasut
     

14 Jun, 2010

2 commits

  • Instead of adding explicit build rules for each and every board to the
    top level Makefile (which makes it grow and grow), we now provide a
    simple default rule and extend the "mkconfig" script to read board
    configurations from a plain text file (table), "boards.cfg".

    For simple boards it is now sufficient to add a single line of text to
    the "boards.cfg" file, no changes to the top level Makefile are needed
    any more.

    To make the table better readable, change the notation for unused
    fields from "NULL" into "-".

    Signed-off-by: Wolfgang Denk
    Cc: Peter Tyser
    Cc: Mike Frysinger

    Wolfgang Denk
     
  • Instead of stripping the "_config" part from the make target names in
    each call of the "mkconfig" script let this script strip the string.

    This prepares the ground for forther simplification of the top level
    Makefile.

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

13 Apr, 2010

1 commit


18 Jan, 2010

1 commit


05 Dec, 2009

1 commit


25 Nov, 2009

1 commit

  • Refuse to setup a platform if the command line ARCH= is not the same
    as the one required for the board. This prevents any user with
    prehistoric aliases from messing up their builds.

    Reported in thread:
    http://old.nabble.com/-U-Boot--Build-breaks-on-some-OMAP3-configs-to26132721.html

    Inputs from: Mike Frysinger and Wolfgang Denk:
    http://lists.denx.de/pipermail/u-boot/2009-November/063642.html

    Cc: Wolfgang Denk
    Cc: Mike Frysinger
    Cc: Anand Gadiyar
    Cc: Dirk Behme
    Signed-off-by: Nishanth Menon

    Nishanth Menon
     

02 Nov, 2009

1 commit


16 Sep, 2009

1 commit

  • To simplify the top level makefile it useful to be able to parse
    the top level makefile target to multiple individual target, then
    put them to the config.h, leave the board config file to handle
    the different targets.

    Note that this method uses the '_'(underline) as the delimiter when
    splits the board make target.

    Signed-off-by: Mingkai Hu

    This also reverts commit 511c02f611cb5afa1b8ca5980caaaabaa0de377f.

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

11 Sep, 2009

1 commit


19 Feb, 2009

1 commit

  • swapping the include order suppresses warnings for board configs
    that define their own CONFIG_MAX_MEM_MAPPED:

    In file included from /home/r1aaha/git/u-boot/include/config.h:5,
    from /home/r1aaha/git/u-boot/include/common.h:35,
    from simpc8313.c:26:
    /home/r1aaha/git/u-boot/include/configs/SIMPC8313.h:81:1: warning:
    "CONFIG_MAX_MEM_MAPPED" redefined
    In file included from /home/r1aaha/git/u-boot/include/config.h:4,
    from /home/r1aaha/git/u-boot/include/common.h:35,
    from simpc8313.c:26:
    /home/r1aaha/git/u-boot/include/asm/config.h:28:1: warning: this is
    the location of the previous definition

    Signed-off-by: Kim Phillips

    Kim Phillips
     

10 Feb, 2009

1 commit


02 Sep, 2006

1 commit

  • Modifications are based on the linux kernel approach and
    support two use cases:

    1) Add O= to the make command line
    'make O=/tmp/build all'

    2) Set environement variable BUILD_DIR to point to the desired location
    'export BUILD_DIR=/tmp/build'
    'make'

    The second approach can also be used with a MAKEALL script
    'export BUILD_DIR=/tmp/build'
    './MAKEALL'

    Command line 'O=' setting overrides BUILD_DIR environent variable.

    When none of the above methods is used the local build is performed and
    the object files are placed in the source directory.

    Marian Balakowicz
     

21 Jul, 2006

1 commit

  • - make highboot configurations use environment at high end, too,
    to avoid flash fragmentation
    - always use redundand environment
    - don't enable video code for modules without graphics controller
    - provide useful (though different) mtdparts settings
    - get rid of CONFIG_CS_AUTOCONF which was always set anyway

    * Extend mkconfig tool to print more useful target name

    Wolfgang Denk
     

04 Aug, 2005

1 commit


21 Jul, 2005

1 commit


03 Apr, 2005

1 commit


10 Oct, 2004

1 commit

  • - Introducing the concept of SoCs "./cpu/$(CPU)/$(SOC)"
    - creating subdirs for SoCs ./cpu/arm920t/imx and ./cpu/arm920t/s3c24x0
    - moving SoC specific code out of cpu/arm920t/ into cpu/arm920t/$(SOC)/
    - moving drivers/s3c24x0_i2c.c and drivers/serial_imx.c out of drivers/
    into cpu/arm920t/$(SOC)/

    wdenk
     

26 Jun, 2003

1 commit


03 Nov, 2002

1 commit