1. 06 Sep, 2013 2 commits
    • Masahiro Yamada's avatar
      cam_enc_4xx: Move CONFIG_SPL_PAD_TO to a config header · 1affd4d4
      Masahiro Yamada authored
      For most boards which define CONFIG_SPL_PAD_TO,
      it is defined in config header files.
      Currently, there exists only one exception, cam_enc_4xx board.
      This patch moves CONFIG_SPL_PAD_TO definition
      from board/ait/cam_enc_4xx/config.mk
      to include/configs/cam_enc_4xx.h.
      With this modification, we can delete a glue code
      in the top level config.mk:
      ifneq ($(CONFIG_SPL_PAD_TO),)
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Cc: Heiko Schocher <hs@denx.de>
    • Masahiro Yamada's avatar
      config.mk: Delete unnecessary code · cb4ef5ba
      Masahiro Yamada authored
      Currently no makefiles (board-specific config.mk)
      set the following variables:
      For all target boards using above macros
      they are set in header files (include/configs/*.h),
      so we do not need to set them as CPPFLAGS.
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
  2. 20 Aug, 2013 1 commit
    • Ying Zhang's avatar
      TPL : introduce the TPL based on the SPL · 3aa29de0
      Ying Zhang authored
      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
      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: default avatarYing Zhang <b40530@freescale.com>
      Acked-by: default avatarYork Sun <yorksun@freescale.com>
  3. 19 Aug, 2013 1 commit
    • Joel Fernandes's avatar
      SPL: Makefile: Build a separate autoconf.mk for SPL · 39bc12dd
      Joel Fernandes authored
      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: default avatarJoel Fernandes <joelf@ti.com>
      Signed-off-by: default avatarYing Zhang <b40530@freescale.com>
  4. 02 Aug, 2013 1 commit
  5. 24 Jul, 2013 1 commit
    • Wolfgang Denk's avatar
      Licenses: introduce SPDX Unique Lincense Identifiers · eca3aeb3
      Wolfgang Denk authored
      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
          - 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: <4ADF8CAA.5030808@softwarefreedom.org>
      | Date: Wed, 21 Oct 2009 18:35:22 -0400
      | From: "Daniel B. Ravicher" <ravicher@softwarefreedom.org>
      | To: Wolfgang Denk <wd@denx.de>
      | 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: default avatarWolfgang Denk <wd@denx.de>
  6. 19 Jul, 2013 1 commit
  7. 28 Jun, 2013 1 commit
    • Simon Glass's avatar
      mkimage: Build signing only if board has CONFIG_FIT_SIGNATURE · 29ce737d
      Simon Glass authored
      At present mkimage is set up to always build with image signing support.
      This means that the SSL libraries (e.g. libssl-dev) are always required.
      Adjust things so that mkimage can be built with and without image signing,
      controlled by the presence of CONFIG_FIT_SIGNATURE in the board config file.
      If CONFIG_FIT_SIGNATURE is not enabled, then mkimage will report a warning
      that signing is not supported. If the option is enabled, but libraries are
      not available, then a build error similar to this will be shown:
      lib/rsa/rsa-sign.c:26:25: fatal error: openssl/rsa.h: No such file or directory
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
  8. 26 Jun, 2013 2 commits
    • Simon Glass's avatar
      image: Add RSA support for image signing · 19c402af
      Simon Glass authored
      RSA provides a public key encryption facility which is ideal for image
      signing and verification.
      Images are signed using a private key by mkimage. Then at run-time, the
      images are verified using a private key.
      This implementation uses openssl for the host part (mkimage). To avoid
      bringing large libraries into the U-Boot binary, the RSA public key
      is encoded using a simple numeric representation in the device tree.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
    • Simon Glass's avatar
      Support tracing in config.mk when enabled · 5c2aeac5
      Simon Glass authored
      Use -finstrument-functions when tracing is enabled (make FTRACE=1).
      Tracing is not currently supported by SPL even if sufficient memory is
      When tracing is enabled, we #define FTRACE. This can be used by
      board config files to conditionally enable the tracing options.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
  9. 09 May, 2013 1 commit
  10. 01 May, 2013 1 commit
    • Simon Glass's avatar
      Trigger generic board error only when building · fada9e20
      Simon Glass authored
      At present the generic board error can occur when configuring U-Boot, or
      during distclean, but this is incorrect. The existing autoconf.mk may come
      from an earlier U-Boot configuration which is about to be overwritten.
      Make the error conditional so that it will only be triggered when we are
      actually building U-Boot.
      This avoids a problem where the system is being reconfigured to remove
      CONFIG_SYS_GENERIC_BOARD on an architecture that does not support it.
      Currently this will print an error and require the manual removal of
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
  11. 22 Apr, 2013 1 commit
    • Stefan Roese's avatar
      Makefile: Add target for combined u-boot.img & spl/u-boot.bin · ecddccd0
      Stefan Roese authored
      This new make target "u-boot-img-spl-at-end.bin" consists of the
      the real, full-blown U-Boot image and the U-Boot SPL binary
      directly attached to it. The full-blown U-Boot image has the
      mkimage header included, with its load-address and entry-point.
      This will be used by the upcoming lwmon5 PPC440EPx derivate board
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
  12. 12 Apr, 2013 1 commit
    • Benoît Thébaudeau's avatar
      Makefile: Move SHELL setup to config.mk · 120ae609
      Benoît Thébaudeau authored
      make never uses the SHELL variable from the environment. Instead, it
      uses /bin/sh, or the value assigned to the SHELL variable by the Makefile. This
      makes the export of the SHELL variable useless for sub-makes (but still useful
      for the environment of recipes). However, we want all makes to use the same
      This patch fixes this issue by moving the SHELL variable setup and export to the
      top config.mk, so that all Makefile-s including it use the same shell.
      Since BASH is used by default, this makes it possible to use things
      like 'echo -e ...' in sub-makes, which would otherwise fail e.g. with /bin/sh
      symlinked to /bin/dash on Ubuntu.
      Signed-off-by: default avatarBenoît Thébaudeau <benoit.thebaudeau@advansee.com>
      Reviewed-by: default avatarTom Rini <trini@ti.com>
  13. 15 Mar, 2013 1 commit
  14. 12 Mar, 2013 1 commit
    • Albert ARIBAUD's avatar
      Refactor linker-generated arrays · ef123c52
      Albert ARIBAUD authored
      Refactor linker-generated array code so that symbols
      which were previously linker-generated are now compiler-
      generated. This causes relocation records of type
      R_ARM_ABS32 to become R_ARM_RELATIVE, which makes
      code which uses LGA able to run before relocation as
      well as after.
      Note: this affects more than ARM targets, as linker-
      lists span possibly all target architectures, notably
      Signed-off-by: default avatarAlbert ARIBAUD <albert.u.boot@aribaud.net>
  15. 22 Oct, 2012 1 commit
    • Marek Vasut's avatar
      common: Add symbol handling for generic lists into Makefile · 97b24d3d
      Marek Vasut authored
      This patch adds essential components for generation of the contents of
      the linker section that is used by the linker-generated array. All of
      the contents is held in a separate file, u-boot.lst, which is generated
      at runtime just before U-Boot is linked.
      The purpose of this code is to especially generate the appropriate
      boundary symbols around each subsection in the section carrying the
      linker-generated arrays. Obviously, the interim linker code for actual
      placement of the variables into the section is generated too. The
      generated file, u-boot.lst, is included into u-boot.lds via the linker
      INCLUDE directive in u-boot.lds .
      Adjustments are made in the Makefile and spl/Makefile so that the
      u-boot.lds and u-boot-spl.lds depend on their respective .lst files.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Joe Hershberger <joe.hershberger@gmail.com>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Acked-by: default avatarJoe Hershberger <joe.hershberger@ni.com>
      Tested-by: default avatarJoe Hershberger <joe.hershberger@ni.com>
  16. 15 Oct, 2012 3 commits
    • Kim Phillips's avatar
      add check infrastructure, default sparse · 4ab64933
      Kim Phillips authored
      Add support for running source code checkers on u-boot source, e.g.,
      using sparse to aid with typechecking.  This comes in especially
      handy as SoC vendors mix and match cores and devices with different
      endianness, thus here we add CHECK_ENDIAN to the otherwise linux
      kernel default CHECKFLAGS.
      Signed-off-by: default avatarKim Phillips <kim.phillips@freescale.com>
    • Marek Vasut's avatar
      serial: Compile drivers/serial/serial.c by default · c1f5805a
      Marek Vasut authored
      Compile drivers/serial/serial.c by default both into SPL and into
      non-SPL builds, since CONFIG_SERIAL_MULTI is now the default state.
      Also having common/serial.c in by default now, it's pointless to keep
      -DCONFIG_SERIAL_MULTI in CPPFLAGS any longer, so remove it as well.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Marek Vasut <marek.vasut@gmail.com>
      Cc: Tom Rini <trini@ti.com>
      Cc: Anatolij Gustschin <agust@denx.de>
      Cc: Stefan Roese <sr@denx.de>
    • Marek Vasut's avatar
      serial: Unconditionally enable CONFIG_SERIAL_MULTI · 82dda962
      Marek Vasut authored
      Enable CONFIG_SERIAL_MULTI for all builds of U-Boot. That includes
      both SPL builds and non-SPL builds, everything. To avoid poluting
      this patch with removal of ifdef-endif constructions containing
      CONFIG_SERIAL_MULTI, the CONFIG_SERIAL_MULTI is temporarily added
      into CPPFLAGS in config.mk . This will be again removed in following
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Marek Vasut <marek.vasut@gmail.com>
      Cc: Tom Rini <trini@ti.com>
  17. 04 Oct, 2012 1 commit
  18. 10 Aug, 2012 1 commit
    • Khem Raj's avatar
      config: Always use GNU ld · 7cb714a5
      Khem Raj authored
      This patch makes sure that we always use the GNU ld. U-Boot uses certain
      construct e.g. OVERLAY which are not implemented in gold therefore it
      always needs GNU ld for linking.
      It works well if default linker in toolchain is GNU ld but in some
      cases we can have gold to be the default linker and also ship GNU ld
      but not as default in such cases its called $(PREFIX)ld.bfd, with this
      patch we make sure that if $(PREFIX)ld.bfd exists than we use that for
      our ld.
      This way it does not matter what the default ld is.
      Signed-off-by: default avatarOtavio Salvador <otavio@ossystems.com.br>
      Signed-off-by: default avatarKhem Raj <raj.khem@gmail.com>
      Acked-by: default avatarMike Frysinger <vapier@gentoo.org>
  19. 07 Jul, 2012 1 commit
    • Stefan Roese's avatar
      Makefile: Add u-boot.spr build target (SPEAr) · 94aebe6c
      Stefan Roese authored
      On x600 (SPEAr600) U-Boot is appended to U-Boot SPL. Both images are
      created using mkimage (crc etc), so that the ROM bootloader can check
      its integrity. Padding needs to be done to the SPL image (with
      mkimage header) and not the binary. Otherwise the resulting image
      which is loaded/copied by the ROM bootloader to SRAM doesn't fit.
      The resulting image containing both U-Boot images is called u-boot.spr.
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      Cc: Amit Virdi <amit.virdi@st.com>
      Cc: Vipin Kumar <vipin.kumar@st.com>
  20. 15 May, 2012 1 commit
  21. 26 Mar, 2012 2 commits
  22. 07 Nov, 2011 1 commit
  23. 03 Nov, 2011 1 commit
    • Wolfgang Denk's avatar
      Reduce build times · cca4e4ae
      Wolfgang Denk authored
      U-Boot Makefiles contain a number of tests for compiler features etc.
      which so far are executed again and again.  On some architectures
      (especially ARM) this results in a large number of calls to gcc.
      This patch makes sure to run such tests only once, thus largely
      reducing the number of "execve" system calls.
      Example: number of "execve" system calls for building the "P2020DS"
      (Power Architecture) and "qong" (ARM) boards, measured as:
      	-> strace -f -e trace=execve -o /tmp/foo ./MAKEALL <board>
      	-> grep execve /tmp/foo | wc -l
      	Before: After:	Reduction:
      P2020DS 20555	15205	-26%
      qong	31692	14490	-54%
      As a result, built times are significantly reduced, typically by
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      Cc: Andy Fleming <afleming@gmail.com>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Cc: Albert Aribaud <albert.aribaud@free.fr>
      cc: Graeme Russ <graeme.russ@gmail.com>
      cc: Mike Frysinger <vapier@gentoo.org>
      Tested-by: default avatarGraeme Russ <graeme.russ@gmail.com>
      Tested-by: default avatarMatthias Weisser <weisserm@arcor.de>
      Tested-by: default avatarSanjeev Premi <premi@ti.com>
      Tested-by: default avatarSimon Glass <sjg@chromium.org>
      Tested-by: default avatarMacpaul Lin <macpaul@gmail.com>
      Acked-by: default avatarMike Frysinger <vapier@gentoo.org>
  24. 26 Oct, 2011 1 commit
    • Simon Glass's avatar
      fdt: Add support for embedded device tree (CONFIG_OF_EMBED) · bbb0b128
      Simon Glass authored
      This new option allows U-Boot to embed a binary device tree into its image
      to allow run-time control of peripherals. This device tree is for U-Boot's
      own use and is not necessarily the same one as is passed to the kernel.
      The device tree compiler output should be placed in the $(obj)
      rooted tree. Since $(OBJCOPY) insists on adding the path to the
      generated symbol names, to ensure consistency it should be
      invoked from the directory where the .dtb file is located and
      given the input file name without the path.
      This commit contains my entry for the ugliest Makefile / shell interaction
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
  25. 21 Oct, 2011 1 commit
  26. 17 Oct, 2011 1 commit
    • Simon Glass's avatar
      Adjust dependency rules to permit per-file flags · 47508843
      Simon Glass authored
      The dependency rules are currently done in a shell 'for' loop. This does not
      permit Makefile variables to adjust preprocessor flags as is done with normal
      compile flags, using the CFLAGS_path/file.o syntax.
      This change moves the dependency generation into the Makefile itself, and
      permits a CPPFLAGS_path/file.o to adjust preprocessor flags on a file or
      directory basis.
      The CPPFLAGS_... variable is also folded into CFLAGS during the build.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
  27. 26 Jul, 2011 2 commits
  28. 22 Jun, 2011 1 commit
  29. 29 Apr, 2011 1 commit
    • Scott Wood's avatar
      Handle most LDSCRIPT setting centrally · 83b7e2a7
      Scott Wood authored
      Currently, some linker scripts are found by common code in config.mk.
      Some are found using CONFIG_SYS_LDSCRIPT, but the code for that is
      sometimes in arch config.mk and sometimes in board config.mk.  Some
      are found using an arch-specific rule for looking in CPUDIR, etc.
      Further, the powerpc config.mk rule relied on CONFIG_NAND_SPL
      when it really wanted CONFIG_NAND_U_BOOT -- which covered up the fact
      that not all NAND_U_BOOT builds actually wanted CPUDIR/u-boot-nand.lds.
      Replace all of this -- except for a handful of boards that are actually
      selecting a linker script in a unique way -- with centralized ldscript
      If board code specifies LDSCRIPT, that will be used.
      Otherwise, if CONFIG_SYS_LDSCRIPT is specified, that will be used.
      If neither of these are specified, then the central config.mk will
      check for the existence of the following, in order:
      $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds (only if CONFIG_NAND_U_BOOT)
      $(TOPDIR)/$(CPUDIR)/u-boot-nand.lds (only if CONFIG_NAND_U_BOOT)
      Some boards (sc3, cm5200, munices) provided their own u-boot.lds that
      were dead code, because they were overridden by a CPUDIR u-boot.lds under
      the old powerpc rules.  These boards' own u-boot.lds have bitrotted and
      no longer work -- these lds files have been removed.
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Tested-by: default avatarGraeme Russ <graeme.russ@gmail.com>
  30. 22 Mar, 2011 1 commit
  31. 21 Mar, 2011 1 commit
  32. 25 Jan, 2011 1 commit
  33. 17 Dec, 2010 1 commit
    • Mike Frysinger's avatar
      config.mk: unify duplicated flag setting · 326a6945
      Mike Frysinger authored
      Multiple rules are using the expanded AFLAGS/CFLAGS settings and some are
      getting so long that the rules need to be line wrapped.  So unify them in
      one variable, use that variable in the rule, and then unwrap things.  This
      makes the actual `make` output nicer as it doesn't have line continuations
      in it anymore.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
  34. 27 Nov, 2010 1 commit