1. 05 Aug, 2015 1 commit
  2. 28 Mar, 2015 1 commit
  3. 21 Nov, 2014 1 commit
  4. 23 Oct, 2014 1 commit
  5. 23 Jun, 2014 1 commit
  6. 12 Mar, 2014 1 commit
  7. 07 Mar, 2014 1 commit
    • 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
  8. 04 Mar, 2014 1 commit
  9. 01 Nov, 2013 1 commit
  10. 24 Jul, 2013 1 commit
  11. 15 Mar, 2013 1 commit
  12. 29 Nov, 2011 1 commit
    • Gabe Black's avatar
      x86: Wrap small helper functions from libgcc to avoid an ABI mismatch · 36b2409a
      Gabe Black authored
      
      
      When gcc compiles some 64 bit operations on a 32 bit machine, it generates
      calls to small functions instead of instructions which do the job directly.
      Those functions are defined in libgcc and transparently provide whatever
      functionality was necessary. Unfortunately, u-boot can be built with a
      non-standard ABI when libgcc isn't. More specifically, u-boot uses
      -mregparm. When the u-boot and libgcc are linked together, very confusing
      bugs can crop up, for instance seemingly normal integer division or modulus
      getting the wrong answer or even raising a spurious divide by zero
      exception.
      
      This change borrows (steals) a technique and some code from coreboot which
      solves this problem by creating wrappers which translate the calling
      convention when calling the functions in libgcc. Unfortunately that means
      that these instructions which had already been turned into functions have
      even more overhead, but more importantly it makes them work properly.
      
      To find all of the functions that needed wrapping, u-boot was compiled
      without linking in libgcc. All the symbols the linker complained were
      undefined were presumed to be the symbols that are needed from libgcc.
      These were a subset of the symbols covered by the coreboot code, so it was
      used unmodified.
      
      To prevent symbols which are provided by libgcc but not currently wrapped
      (or even known about) from being silently linked against by code generated
      by libgcc, a new copy of libgcc is created where all the symbols are
      prefixed with __normal_. Without being purposefully wrapped, these symbols
      will cause linker errors instead of silently introducing very subtle,
      confusing bugs.
      
      Another approach would be to whitelist symbols from libgcc and strip out
      all the others. The problem with this approach is that it requires the
      white listed symbols to be specified three times, once for objcopy, once so
      the linker inserts the wrapped, and once to generate the wrapper itself,
      while this implementation needs it to be listed only twice. There isn't
      much tangible difference in what each approach produces, so this one was
      preferred.
      Signed-off-by: default avatarGabe Black <gabeblack@chromium.org>
      36b2409a
  13. 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
  14. 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
  15. 13 Apr, 2011 1 commit
  16. 12 Apr, 2011 1 commit
    • Wolfgang Denk's avatar
      Make STANDALONE_LOAD_ADDR configurable per board · 8ae86b76
      Wolfgang Denk authored
      
      
      Rename STANDALONE_LOAD_ADDR into CONFIG_STANDALONE_LOAD_ADDR
      and allow that the architecture-specific default value gets
      overwritten by defining the value in the board header file.
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
      Cc: Daniel Hellstrom <daniel@gaisler.com>
      Cc: Tsi Chung Liew <tsi-chung.liew@freescale.com>
      Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
      8ae86b76
  17. 27 Mar, 2011 1 commit
  18. 22 Mar, 2011 1 commit
  19. 12 Feb, 2011 2 commits
  20. 25 Jan, 2011 1 commit
  21. 07 Oct, 2010 2 commits
    • Graeme Russ's avatar
      x86: Change compiler options · 5c161653
      Graeme Russ authored
      Change to:
       - reparam=3
       - no-from-pointer
       - no-stack-protector
       - preferred-stack-boundary=2
       - no-top-level-reorder
      
      These options make the code a little smaller and faster
      5c161653
    • Graeme Russ's avatar
      x86: use gc sections to reduce image size · d664adb6
      Graeme Russ authored
      Follow the discussion of Charles Manning and Mike Frysinger.
      Using gc_sections helps reduce image size.
      d664adb6
  22. 13 Apr, 2010 1 commit
  23. 03 Oct, 2009 1 commit
    • Mike Frysinger's avatar
      push LOAD_ADDR out to arch mk files · 8eb7e280
      Mike Frysinger authored
      
      
      Rather than maintain/extend the current ifeq($(ARCH)) mess that exists in
      the standalone Makefile, push the setting up of LOAD_ADDR out to the arch
      config.mk (and rename to STANDALONE_LOAD_ADDR in the process).  This keeps
      the common code clean and lets the arch do whatever crazy crap it wants in
      its own area.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      8eb7e280
  24. 04 Sep, 2009 1 commit
    • Mike Frysinger's avatar
      push LOAD_ADDR out to arch mk files · 262ae0a6
      Mike Frysinger authored
      
      
      Rather than maintain/extend the current ifeq($(ARCH)) mess that exists in
      the standalone Makefile, push the setting up of LOAD_ADDR out to the arch
      config.mk (and rename to STANDALONE_LOAD_ADDR in the process).  This keeps
      the common code clean and lets the arch do whatever crazy crap it wants in
      its own area.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      262ae0a6
  25. 20 Jul, 2009 1 commit
  26. 19 Jul, 2009 1 commit
    • Mike Frysinger's avatar
      push CROSS_COMPILE out to $(ARCH)_config.mk · 1ea6bcd8
      Mike Frysinger authored
      
      
      Each arch should handle setting a proper default CROSS_COMPILE value in
      their own config.mk file rather than having to maintain a large ugly list
      in the Makefile.  By using conditional assignment, we don't have to worry
      about the variable already being set (env/cmdline/etc...).
      
      The common config.mk file takes care of exporting CROSS_COMPILE already,
      and while a few variables (toolchain ones) utilize CROSS_COMPILE before
      including the arch config.mk, they do so with deferred assignment.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      1ea6bcd8
  27. 18 Nov, 2002 1 commit
    • wdenk's avatar
      * Patch by Daniel Engstrm, 13 Nov 2002: · 2262cfee
      wdenk authored
        Add support for i386 architecture and AMD SC520 board
      
      * Patch by Pierre Aubert, 12 Nov 2002:
        Add support for DOS filesystem and booting from DOS floppy disk
      2262cfee
  28. 14 Aug, 2002 1 commit
  29. 29 May, 2001 1 commit
  30. 28 Feb, 2001 1 commit
  31. 10 Jul, 2000 1 commit