10 Oct, 2014

3 commits


25 Sep, 2014

2 commits


17 Sep, 2014

6 commits

  • For the SPL configuration, "make /" is used.
    Here,
    is either "spl" or "tpl"
    is one of "config", "menuconfig", "xconfig", etc.

    This commit adds two checks:

    [1] If is given an unsupported subimage, the configuration
    should error out like this:

    $ make qpl/menuconfig
    ***
    *** "make qpl/menuconfig" is not supported.
    ***

    [2] Make sure that "CONFIG_SPL" is enabled in the ".config" before
    running "make spl/menuconfig. Otherwise, the SPL image
    is not built at all. Having "spl/.config" makes no sense.
    In such a case, the configuration should exit with a message:

    $ make spl/menuconfig
    ***
    *** Create ".config" with "CONFIG_SPL" enabled
    *** before "make spl/menuconfig".
    ***

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

    Masahiro Yamada
     
  • This commit is a backport from Linux Kernel,
    commit 9d5db8949f1ecf4019785b04d8986835d3c0e99e,
    written by me.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • When a non-existing defconfig is specified,
    display an easy-to-understand message
    (fake the error message on Linux Kernel):

    $ make foo_defconfig
    ***
    *** Can't find default configuration "confis/foo_defconfig"!
    ***

    Signed-off-by: Masahiro Yamada
    Acked-by: Stephen Warren

    Masahiro Yamada
     
  • Since 3ff291f371fa9858426774f3732924bacb61ed1c
    (kconfig: convert Kconfig helper script into a shell script),
    "make savedefconfig" of TPL boards has not been working.

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

    Masahiro Yamada
     
  • Commit 3ff291f371fa9858426774f3732924bacb61ed1c
    (kconfig: convert Kconfig helper script into a shell script)
    introduced another regression.

    Shell usually handles whitespaces as separators,
    so "make saveconfig" outputs

    # CONFIG_FOO is not set

    into:

    #
    CONFIG_FOO
    is
    not
    set

    Whitespaces should not be treated as separators here.

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

    Masahiro Yamada
     
  • Commit 3ff291f371fa9858426774f3732924bacb61ed1c
    (kconfig: convert Kconfig helper script into a shell script)
    introduced a minor regression.

    make alldefconfig; make savedefconfig
    should create an empty 'defconfig'.

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

    Masahiro Yamada
     

09 Sep, 2014

1 commit


29 Aug, 2014

2 commits


22 Aug, 2014

6 commits

  • Commit 51148790 added scripts/multiconfig.py written in Python 2
    to adjust Kconfig for U-Boot.

    It has been hard for Python 3 users because Python 2 and Python 3
    are not compatible with each other.

    We are not happy about adding a new host tool dependency
    (in this case, Python version dependency) for the core build process.
    After some discussion, we decided to use only basic tools.

    The script may get a bit more unreadable by shell scripting,
    but we believe it is worthwhile.

    In addition, this commit revives "_config" target that is
    equivalent to "_defconfig" for backwards compatibility.
    It is annoying to adjust various projects which use U-Boot.

    Signed-off-by: Masahiro Yamada
    Suggested-by: Igor Grinberg
    Tested-by: Igor Grinberg
    Acked-by: Simon Glass
    Cc: Tom Rini
    Cc: Jeroen Hofstee
    Cc: Stephen Warren

    Masahiro Yamada
     
  • Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Import scripts/objdiff improvements from Linux v3.16, which
    consists of 7 commits written by me.

    commit 7fa0e6db3cedc9b70d68a4170f1352e2b1aa0f90
    scripts: objdiff: support directories for the augument of record command

    commit 8ac28bee76eec006aac5ba5c418878a607d53a9b
    scripts: objdiff: fix a comment

    commit 8b5d0f20d64f00ffd5685879f8eb3659379f5aaa
    scripts: objdiff: change the extension of disassembly from .o to .dis

    commit 18165efa8203a34d82f60a1831ea290e7304c654
    scripts: objdiff: improve path flexibility for record command

    commit 1ecc8e489abfdaa6d8d1689f7ff62fdf1adda30c
    scripts: objdiff: remove unnecessary code

    commit 5ab370e91af70d5f1b1dbaec78798a2ff236a2d5
    scripts: objdiff: direct error messages to stderr

    commit fd6e12423311697860f30d10398a0f9eb91977d2
    scripts: objdiff: get the path to .tmp_objdiff more simply

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • "make %_config all" was supported for the first time in U-Boot:
    commit 53bca5ab
    kbuild: support simultaneous board configuration and "make all"

    Surprisingly it had not been working in Linux Kernel for a long time.

    So I sent back the patch to the Linux Kbuild community and it was
    accepted with a little code improvement, at commit 9319f453.

    Now, you can do "make defconfig all" or "make %_defconfig all"
    in Linux too.

    This commit updates some scripts to fill the code-diff
    between Linux and U-Boot.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit was imported from Linux Kernel:
    commit a86fe353 written by me.

    W=... provides extra gcc checks.

    Having such code in scripts/Makefile.build results in the same flags
    being added to KBUILD_CFLAGS multiple times becuase
    scripts/Makefile.build is invoked every time Kbuild descends into
    the subdirectories.

    Since the top Makefile is already too cluttered, this commit moves
    all of extra gcc check stuff to a new file scripts/Makefile.extrawarn,
    which is included from the top Makefile.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • In Python, sys.exit() function can also take an object other
    than an integer.

    If an integer is given to the argument, Python exits with the return
    code of it. If a non-integer argument is given, Python outputs it
    to stderr and exits with the return code of 1.

    That means,

    print >> sys.stderr, "Blah Blah"
    sys.exit(1)

    is equivalent to

    sys.exit("Blah Blah")

    The latter is a useful shorthand.

    Note:
    Some error messages in Buildman and Patman were output to stdout.
    But they should go to stderr. They are also fixed by this commit.
    This is a nice side effect.

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

    Masahiro Yamada
     

09 Aug, 2014

3 commits


30 Jul, 2014

2 commits

  • This commit enables Kconfig.
    Going forward, we use Kconfig for the board configuration.
    mkconfig will never be used. Nor will include/config.mk be generated.

    Kconfig must be adjusted for U-Boot because our situation is
    a little more complicated than Linux Kernel.
    We have to generate multiple boot images (Normal, SPL, TPL)
    from one source tree.
    Each image needs its own configuration input.

    Usage:

    Run "make _defconfig" to do the board configuration.

    It will create the .config file and additionally spl/.config, tpl/.config
    if SPL, TPL is enabled, respectively.

    You can use "make config", "make menuconfig" etc. to create
    a new .config or modify the existing one.

    Use "make spl/config", "make spl/menuconfig" etc. for spl/.config
    and do likewise for tpl/.config file.

    The generic syntax of configuration targets for SPL, TPL is:

    /

    Here, is either 'spl' or 'tpl'
    is 'config', 'menuconfig', 'xconfig', etc.

    When the configuration is done, run "make".
    (Or "make _defconfig all" will do the configuration and build
    in one time.)

    For futher information of how Kconfig works in U-Boot,
    please read the comment block of scripts/multiconfig.py.

    By the way, there is another item worth remarking here:
    coexistence of Kconfig and board herder files.

    Prior to Kconfig, we used C headers to define a set of configs.

    We expect a very long term to migrate from C headers to Kconfig.
    Two different infractructure must coexist in the interim.

    In our former configuration scheme, include/autoconf.mk was generated
    for use in makefiles.
    It is still generated under include/, spl/include/, tpl/include/ directory
    for the Normal, SPL, TPL image, respectively.

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

    Masahiro Yamada
     
  • Import
    - scripts/kconfig/*
    - include/linux/kconfig.h
    from Linux 3.16-rc7.

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

    Masahiro Yamada
     

29 Jul, 2014

1 commit

  • U-Boot is expected to be built on various platforms.

    We should keep in mind that the command 'make' is not always GNU Make,
    while all the makefiles are written for GNU Make.

    For example, on Linux, people generally do:

    make _config; make

    But FreeBSD folks do

    gmake _config; gmake

    (The command 'make' on FreeBSD is BSD Make, not GNU Make)

    It is not a good idea to hard-code the command name 'make'
    in MAKEALL or buildman.

    They should call this helper script and get the command name
    for GNU Make.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

22 Jul, 2014

1 commit

  • This tool helps to create/update the mailmap file.

    It runs 'git shortlog' internally and searches differently spelled author
    names which share the same email address. The author name with the most
    commits is asuumed to be a canonical real name. If the number of commits
    from the cananonical name is equal to or greater than 'MIN_COMMITS' (=50),
    the entry for the cananical name will be output. ('MIN_COMMITS' is used
    here because we do not want to create a fat mailmap by adding every author
    with only a few commits.)

    If there exists a mailmap file specified by the mailmap.file configuration
    options or '.mailmap' at the toplevel of the repository, it is used as
    a base file.

    The base file and the newly added entries are merged together and sorted
    alphabetically (but the comment block is kept untouched), and then printed
    to standard output.

    Usage
    -----

    scripts/mailmapper

    prints the mailmapping to standard output.

    scripts/mailmapper > tmp; mv tmp .mailmap

    will be useful for updating '.mailmap' file.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

21 Jun, 2014

2 commits


20 Jun, 2014

1 commit


12 Jun, 2014

1 commit


06 Jun, 2014

1 commit


18 Apr, 2014

1 commit

  • This commit imports Kbuild-related updates
    from v3.14 to v3.15-rc1.

    - commit 3d3d6b8474204b6819688c9800774d52d370a538
    kbuild: LLVMLinux: Adapt warnings for compilation with clang
    - commit 61163efae02040f66a95c8ed17f4407951ba58fa
    kbuild: LLVMLinux: Add Kbuild support for building kernel with Clang
    - commit 79192ca8ebd9a25c583aa46024a250fef1e7766f
    scripts: objdiff: detect object code changes between two commits
    - commit 1c9e70a55b088d97a59241744fe459409d0c3582
    kbuild: create a build directory automatically for out-of-tree build
    - commit a03fcb50e816a69acffb13b5e56db75063aeba8a
    kbuild: remove redundant '.*.cmd' pattern from make distclean
    - commit 13338935f1574a2dcd1c891461b0dcc42f8cff42
    kbuild: move "quote" to Kbuild.include to be consistent
    - commit bfdfaeae500a3b194b73b01e92a8034791a58b7f
    kbuild: specify build_docproc as a phony target
    - commit f4d4ffc03efc864645b990e1d579bbe1b8e358a4
    kbuild: dtbs_install: new make target
    - commit 1e64ff42ea3d8d2fc8aa71f9717b3c1cb6c2f893
    Kbuild, lto: Disable LTO for asm-offsets.c
    - commit ccbef1674a1579842c7dbdf554efca85d2cd245a
    Kbuild, lto: add ld-version and ld-ifversion macros
    - commit ae63b2d7bdd9bd66b88843be0daf8e37d8f0b574
    scripts/tags.sh: Ignore *.mod.c
    - commit e36aaea28972c57a32a3ba5365e61633739719b9
    kbuild: Fix silent builds with make-4

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

29 Mar, 2014

1 commit


07 Mar, 2014

1 commit

  • 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
     

05 Mar, 2014

1 commit

  • Update to v3.14-rc4's version of checkpatch.pl. In doing so we drop the
    changes to top_of_kernel_tree() as we pass in --no-tree and drop our
    changes about MAINTAINERS as that's for reporting checkpatch.pl problems
    itself (and upstream has said they'll reword this section to be
    clearer).

    Signed-off-by: Tom Rini

    Tom Rini
     

27 Feb, 2014

2 commits


26 Feb, 2014

1 commit

  • - Generate include/generated/{timestamp.h, version.h}
    more simply by using filechk rule.

    - Add $(UBOOTRELEASE) variable and re-write u-boot.imx rule
    more simply.

    - Rename U_BOOT_VERSION in Makefile to UBOOTVERSION

    Before this commit, the same variable name, "U_BOOT_VERSION"
    was used for two different strings.

    One of them was defined in Makefile.
    It takes the form like "2014.01-rc1" and used in
    makefiles and script files.

    The other is defined in include/generated/version.h
    It takes the form like "U-Boot 2014.01-rc1-00010-gbe6d426-dirty"
    and used in C and Aseembler.

    It is confusing when grepping the source tree. So, this commit
    renames the former to UBOOTVERSION.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

25 Feb, 2014

1 commit