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


04 Sep, 2013

1 commit


28 Aug, 2013

1 commit


21 Aug, 2013

2 commits

  • 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
     
  • The code from the internal on-chip ROM. It loads the final uboot image
    into DDR, then jump to it to begin execution.

    The SPL's size is sizeable, the maximum size must not exceed the size of L2
    SRAM. It initializes the DDR through SPD code, and copys final uboot image
    to DDR. So there are two stage uboot images:
    * spl_boot, 96KB size. The env variables are copied to L2 SRAM, so that
    ddr spd code can get the interleaving mode setting in env. It loads
    final uboot image from offset 96KB.
    * final uboot image, size is variable depends on the functions enabled.

    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
     

15 Aug, 2013

1 commit


24 Jul, 2013

1 commit