26 Feb, 2014

7 commits


24 Feb, 2014

1 commit

  • Commit 6825a95 (kbuild: use Linux Kernel build scripts)
    changed the behavior of linkage when USE_PRIAVATE_LIBGCC
    is defined as "yes".
    (It dropped arch/arm/lib/eabi_compat.o from the
    target library.)

    Affected boards are all Tegra boards.

    This commit gets back the same behavior as before Kbuild series.

    Signed-off-by: Masahiro Yamada
    Cc: Tom Warren
    Cc: Tom Rini

    Masahiro Yamada
     

20 Feb, 2014

9 commits

  • This commit refactors rules of directory descending
    and defines u-boot-dirs and u-boot-all-dirs.
    (We will need u-boot-all-dirs when using
    scripts/Makefile.clean)

    Additionally, rename LIBS-y to libs-y.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Before this commit, {spl,tpl}-autoconf.mk was always generated
    at the top Makefile even if SPL(TPL) build was not selected.

    This commit moves the build rule of {spl,tpl}-autoconf.mk
    from the top Makefile to spl/Makefile.
    It prevents unnecessary {spl,tpl}-autoconf.mk from being
    generated.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit changes the location of include directives
    of board configuration files.

    The purpose of this change is:
    - Slim down $(TOPDIR)/config.mk
    - Prevent $(TOPDIR)/Makefile from including the same
    configuration file twice
    - Do not include include/config.mk multiple times
    because ARCH, CPU, BOARD, VENDOR, SOC are exported

    Before this commit:

    - include/autoconf.mk was included from $(TOPDIR)/Makefile
    and $(TOPDIR)/config.mk
    (This means $(TOPDIR)/Makefile included include/autoconf.mk twice)

    - include/{spl,tpl}-autoconf.mk was included from $(TOPDIR)/config.mk

    - include/config.mk was included from $(TOPDIR)/Makefile
    and $(TOPDIR)/config.mk
    (This means $(TOPDIR)/Makefile included include/config.mk twice)

    After this commit:

    - include/autoconf.mk is included from $(TOPDIR)/Makefile
    and $(TOPDIR)/scripts/Makefile.build

    - include/{spl,tpl}-autoconf.mk is included from $(TOPDIR)/spl/Makefile
    and $(TOPDIR)/scripts/Makefile.build

    - include/config.mk is included from $(TOPDIR)/config.mk and
    $(TOPDIR)/spl/Makefile

    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
     
  • Some flags are used for SPL (and TPL) build only.
    This commit moves them from config.mk to spl/Makefile.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit adjusts some files to use Kbuild.include.

    - Use cc-option defined in Kbuild.include
    (Delete cc-option in config.mk)
    - Use cc-version defined in
    (Delete cc-version in config.mk)
    - Move binutils-version and dtc-version to Kbuild.include
    by analogy to cc-version

    This commit also adds srctree (same as SRCTREE)
    to use Kbuild scripts.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Some Samsung boards have their own tools under board/samsung//tools/.
    This commit refactor more makefiles with "hostprogs-y".

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Before this commit, makefiles under tools/ directory
    were implemented with their own way.

    This commit refactors them by using "hostprogs-y" variable.

    Several C sources have been added to wrap other C sources
    to simplify Makefile.
    For example, tools/crc32.c includes lib/crc32.c

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

19 Feb, 2014

1 commit


25 Jan, 2014

1 commit


22 Jan, 2014

1 commit

  • Using the TPL method for nand boot by sram was already
    supported. Here add some code for mpc85xx ifc nand boot.

    - For ifc, elbc, esdhc, espi, all need the SPL without
    section .resetvec.
    - Use a clear function name for nand spl boot.
    - Add CONFIG_SPL_DRIVERS_MISC_SUPPORT to compile the fsl_ifc.c
    in spl/Makefile;

    Signed-off-by: Po Liu
    Acked-by: Scott Wood
    Reviewed-by: York Sun

    Po Liu
     

14 Jan, 2014

1 commit


10 Jan, 2014

1 commit


30 Dec, 2013

1 commit

  • When variable size SPL is used, the BL1 expects the SPL to be
    encapsulated differently: instead of putting the checksum at a fixed
    offset in the SPL blob, prepend the blob with a header including the
    size and the checksum.

    The enhancements include
    - adding a command line option, '--vs' to indicate the need for the
    variable size encapsulation
    - padding the fixed size encapsulated blob with 0xff instead of random
    memory contents
    - do not silently truncate the input file, report error instead
    - no need to explicitly closing files/freeing memory, this all happens
    on exit; removing cleanups it makes code clearer
    - profuse commenting
    - modify Makefile to allow enabling the new feature per board

    Signed-off-by: Vadim Bendebury
    Signed-off-by: Rajeshwari S Shinde
    Acked-by: Simon Glass
    Signed-off-by: Minkyu Kang

    Rajeshwari Birje
     

16 Dec, 2013

1 commit


13 Dec, 2013

4 commits


26 Nov, 2013

1 commit


18 Nov, 2013

4 commits


01 Nov, 2013

6 commits

  • We have converted all makefiles needed to build $(LIBS).

    Until this commit we used to grep switch so that U-Boot style
    and Kbuild style makefiles coexist.
    But we do not need any more.

    Goint forward, use always Kbuild style Makefile when adding
    a new Makefile

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This patch moves S5PC, EXYNOS specific directory entries
    from the toplevel Makefile to arch/arm/cpu/armv7/Makefile
    using Kbuild descending feature.

    Signed-off-by: Masahiro Yamada
    Cc: Minkyu Kang

    Masahiro Yamada
     
  • This patch moves OMAP specific directory entries
    from the toplevel Makefile and spl/Makefile
    to arch/arm/cpu/armv7/Makefile using Kbuild descending feature.

    Signed-off-by: Masahiro Yamada
    Cc: Tom Rini

    Masahiro Yamada
     
  • This patch moves Tegra specific directory entries
    from the toplevel Makefile and spl/Makefile
    to arch/arm/cpu/*/Makefile using Kbuild descending feature.

    Signed-off-by: Masahiro Yamada
    Cc: Tom Warren

    Masahiro Yamada
     
  • Multiple targets are included in arch/arm/imx-common/Makefile
    In order to refactor it,
    we need to tweak Makefile and spl/Makefile.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Every makefile in sub directories has common lines
    at the top and the bottom.
    This commit pushes the common parts into script/Makefile.build.

    Going forward sub-makefiles only need to describe this part:

    COBJS := ...
    COBJS += ...
    SOBJS := ...

    But using obj-y is preferable to prepare for switching to Kbuild.

    The conventional (non-Kbuild) Makefile style is still supported.
    This is achieved by greping the Makefile before entering into it.
    U-Boot conventional sub makefiles always include some other makefiles.
    So the build system searches a line beginning with "include" keyword
    in the makefile in order to distinguish which style it is.
    If the Makefile include a "include" line, we assume it is a conventional
    U-Boot style. Otherwise, it is treated as a Kbuild-style makefile.

    With this tweak, we can switch sub-makefiles
    from U-Boot style to Kbuild style little by little.

    obj-y := foo/
    syntax (descending into the sub directory) is not supportd yet.
    It will be implemented in the upcomming commit.

    Signed-off-by: Masahiro Yamada
    Cc: Simon Glass
    Cc: Tom Rini

    Masahiro Yamada
     

20 Sep, 2013

1 commit