1. 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
      as:
          - 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>
      eca3aeb3
  2. 19 Jul, 2013 1 commit
  3. 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>
      29ce737d
  4. 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>
      19c402af
    • 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
      available.
      
      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>
      5c2aeac5
  5. 09 May, 2013 1 commit
  6. 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
      include/autoconf.mk.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
      fada9e20
  7. 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
      port.
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      ecddccd0
  8. 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
      shell.
      
      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>
      120ae609
  9. 15 Mar, 2013 1 commit
  10. 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
      PowerPC.
      
      Conflicts:
      	arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
      	arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
      	arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
      	board/ait/cam_enc_4xx/u-boot-spl.lds
      	board/davinci/da8xxevm/u-boot-spl-da850evm.lds
      	board/davinci/da8xxevm/u-boot-spl-hawk.lds
      	board/vpac270/u-boot-spl.lds
      Signed-off-by: default avatarAlbert ARIBAUD <albert.u.boot@aribaud.net>
      ef123c52
  11. 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>
      97b24d3d
  12. 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>
      4ab64933
    • 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>
      c1f5805a
    • 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
      patch.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Marek Vasut <marek.vasut@gmail.com>
      Cc: Tom Rini <trini@ti.com>
      82dda962
  13. 04 Oct, 2012 1 commit
  14. 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>
      7cb714a5
  15. 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>
      94aebe6c
  16. 15 May, 2012 1 commit
  17. 26 Mar, 2012 2 commits
  18. 07 Nov, 2011 1 commit
  19. 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
      30...50%.
      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>
      cca4e4ae
  20. 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
      competition.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
      bbb0b128
  21. 21 Oct, 2011 1 commit
  22. 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>
      47508843
  23. 26 Jul, 2011 2 commits
  24. 22 Jun, 2011 1 commit
  25. 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
      finding.
      
      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)
      $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
      $(TOPDIR)/$(CPUDIR)/u-boot.lds
      
      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>
      83b7e2a7
  26. 22 Mar, 2011 1 commit
  27. 21 Mar, 2011 1 commit
  28. 25 Jan, 2011 1 commit
  29. 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>
      326a6945
  30. 27 Nov, 2010 1 commit
  31. 17 Nov, 2010 1 commit
    • Sebastien Carlier's avatar
      Switch from archive libraries to partial linking · 6d8962e8
      Sebastien Carlier authored
      Before this commit, weak symbols were not overridden by non-weak symbols
      found in archive libraries when linking with recent versions of
      binutils.  As stated in the System V ABI, "the link editor does not
      extract archive members to resolve undefined weak symbols".
      
      This commit changes all Makefiles to use partial linking (ld -r) instead
      of creating library archives, which forces all symbols to participate in
      linking, allowing non-weak symbols to override weak symbols as intended.
      This approach is also used by Linux, from which the gmake function
      cmd_link_o_target (defined in config.mk and used in all Makefiles) is
      inspired.
      
      The name of each former library archive is preserved except for
      extensions which change from ".a" to ".o".  This commit updates
      references accordingly where needed, in particular in some linker
      scripts.
      
      This commit reveals board configurations that exclude some features but
      include source files that depend these disabled features in the build,
      resulting in undefined symbols.  Known such cases include:
      - disabling CMD_NET but not CMD_NFS;
      - enabling CONFIG_OF_LIBFDT but not CONFIG_QE.
      Signed-off-by: default avatarSebastien Carlier <sebastien.carlier@gmail.com>
      6d8962e8
  32. 18 Oct, 2010 1 commit
    • Wolfgang Denk's avatar
      Rename TEXT_BASE into CONFIG_SYS_TEXT_BASE · 14d0a02a
      Wolfgang Denk authored
      The change is currently needed to be able to remove the board
      configuration scripting from the top level Makefile and replace it by
      a simple, table driven script.
      
      Moving this configuration setting into the "CONFIG_*" name space is
      also desirable because it is needed if we ever should move forward to
      a Kconfig driven configuration system.
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      14d0a02a
  33. 08 Aug, 2010 1 commit
    • Mike Frysinger's avatar
      config.mk: avoid -traditional-cpp on OS X 10.5 · f534c7cd
      Mike Frysinger authored
      Simply trying to include a basic header file like stdlib.h on OS X 10.5
      and then building with -traditional-cpp fails with lots of errors like:
      In file included from /usr/include/stdlib.h:63,
                       from test.c:3:
      /usr/include/available.h:85: error: stray '#' in program
      /usr/include/available.h:85: error: syntax error before numeric constant
      /usr/include/available.h:86: error: stray '#' in program
      
      In the past, I hadn't noticed because the old logic for these flags were
      restricted to Darwin running on PowerPC systems while I'm running on an
      Intel system.  But after some recent clean ups and changes, the flag was
      being applied to all Darwin systems and my host tools broke.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      f534c7cd
  34. 28 May, 2010 1 commit
  35. 26 May, 2010 1 commit