1. 12 May, 2014 1 commit
  2. 17 Apr, 2014 1 commit
  3. 11 Apr, 2014 1 commit
  4. 28 Mar, 2014 1 commit
    • Marek Vasut's avatar
      kbuild: Rename UIMAGE to MKIMAGE · b97241b3
      Marek Vasut authored
      U-Boot uses the 'mkimage' tool to produce various image types,
      not only uImage image type. Rename the invocation name from
      UIMAGE to MKIMAGE.
      
      The following command was used to do the replacement:
      git grep 'quiet_cmd_mkimage.* = UIMAGE' | cut -d : -f 1 | \
       xargs -i sed -i "s@\(quiet_cmd_mkimage\)\(.*\) = UIMAGE @\1\2 = MKIMAGE@" {}
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Tom Rini <trini@ti.com>
      Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
      Acked-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      b97241b3
  5. 12 Mar, 2014 3 commits
  6. 07 Mar, 2014 2 commits
    • Masahiro Yamada's avatar
      kbuild: improve Kbuild speed · 026f9cf2
      Masahiro Yamada authored
      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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Reported-by: default avatarSimon Glass <sjg@chromium.org>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      Tested-by: Simon Glass <sjg@chromium.org> [on Sandbox]
      Tested-by: Stephen Warren <swarren@nvidia.com> [on Tegra]
      026f9cf2
    • Masahiro Yamada's avatar
      kbuild: add CONFIG_ prefix to USE_PRIVATE_LIBGCC · cd2e46cb
      Masahiro Yamada authored
      Before this commit, USE_PRIVATE_LIBGCC was defined in
      arch-specific config.mk and referenced in
      arch/$(ARCH)/lib/Makefile.
      
      We are not happy about parsing config.mk again and again.
      We have to keep the same behavior with a different way.
      
      By adding "CONFIG_" prefix, this macro appears
      in include/autoconf.mk, include/spl-autoconf.mk.
      (And treating USE_PRIVATE_LIBGCC as CONFIG macro
      is reasonable enough.)
      
      Tegra SoC family defined USE_PRIVATE_LIBGCC as "yes"
      in arch/arm/cpu/arm720t/tegra*/config.mk,
      whereas did not define it in arch/arm/cpu/armv7/tegra*/config.mk.
      
      It means Tegra enables PRIVATE_LIBGCC only for SPL.
      We can describe the same behavior by adding
      
        #ifdef CONFIG_SPL_BUILD
        # define CONFIG_USE_PRIVATE_LIBGCC
        #endif
      
      to include/configs/tegra-common.h.
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Cc: Tom Warren <twarren@nvidia.com>
      Cc: Simon Glass <sjg@chromium.org>
      Acked-by: default avatarStephen Warren <swarren@nvidia.com>
      cd2e46cb
  7. 04 Mar, 2014 1 commit
  8. 25 Feb, 2014 7 commits
  9. 24 Feb, 2014 1 commit
  10. 19 Feb, 2014 10 commits
    • Masahiro Yamada's avatar
      kbuild: refactor Makefile and spl/Makefile more · 656de6b8
      Masahiro Yamada authored
      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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      656de6b8
    • Masahiro Yamada's avatar
      kbuild: generate {spl, tpl}-autoconf.mk only when it is necessary · 5fe6301a
      Masahiro Yamada authored
      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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      5fe6301a
    • Masahiro Yamada's avatar
      kbuild: move include directives of board configuration files · 01072b44
      Masahiro Yamada authored
      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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      01072b44
    • Masahiro Yamada's avatar
      kbuild: use Linux Kernel build scripts · 6825a95b
      Masahiro Yamada authored
      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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Tested-by: default avatarGerhard Sittig <gsi@denx.de>
      6825a95b
    • Masahiro Yamada's avatar
      kbuild: change out-of-tree build · 9e414032
      Masahiro Yamada authored
      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 <sub-dir>" 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=<sub-dir>"
      syntax for descending into sub-directories.
      (We can write it like "make $(obj)=<sub-dir>" with a shorthand.)
      This means the current working directory is always the top
      of the output directory.
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Tested-by: default avatarGerhard Sittig <gsi@denx.de>
      9e414032
    • Masahiro Yamada's avatar
      Makefile: move some flags to spl/Makefile · e0d5d9f8
      Masahiro Yamada authored
      Some flags are used for SPL (and TPL) build only.
      This commit moves them from config.mk to spl/Makefile.
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      e0d5d9f8
    • Masahiro Yamada's avatar
      kbuild: Use Kbuild.include · bf4b3de1
      Masahiro Yamada authored
      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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      bf4b3de1
    • Masahiro Yamada's avatar
      board: samsung: refactor host programs · e183a174
      Masahiro Yamada authored
      Some Samsung boards have their own tools under board/samsung/<board>/tools/.
      This commit refactor more makefiles with "hostprogs-y".
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      e183a174
    • Masahiro Yamada's avatar
      tools: convert makefiles to kbuild style · 940db16d
      Masahiro Yamada authored
      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: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      940db16d
    • Dan Murphy's avatar
      common: spl: Add spl sata boot support · fff40a7e
      Dan Murphy authored
      Add spl_sata to read a fat partition from a bootable SATA
      drive.
      Signed-off-by: default avatarDan Murphy <dmurphy@ti.com>
      Reviewed-by: default avatarRoger Quadros <rogerq@ti.com>
      fff40a7e
  11. 24 Jan, 2014 1 commit
  12. 21 Jan, 2014 1 commit
  13. 14 Jan, 2014 1 commit
  14. 30 Dec, 2013 1 commit
    • Rajeshwari Birje's avatar
      SPL: EXYNOS: Prepare for variable size SPL support · 0fcac1ab
      Rajeshwari Birje authored
      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: default avatarVadim Bendebury <vbendeb@chromium.org>
      Signed-off-by: default avatarRajeshwari S Shinde <rajeshwari.s@samsung.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: default avatarMinkyu Kang <mk7.kang@samsung.com>
      0fcac1ab
  15. 16 Dec, 2013 1 commit
  16. 13 Dec, 2013 4 commits
  17. 25 Nov, 2013 1 commit
  18. 17 Nov, 2013 2 commits