1. 21 11月, 2014 1 次提交
  2. 24 10月, 2014 1 次提交
  3. 24 6月, 2014 1 次提交
  4. 13 3月, 2014 1 次提交
  5. 07 3月, 2014 1 次提交
    • M
      kbuild: add CONFIG_ prefix to USE_PRIVATE_LIBGCC · cd2e46cb
      Masahiro Yamada 提交于
      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: NMasahiro Yamada <yamada.m@jp.panasonic.com>
      Cc: Tom Warren <twarren@nvidia.com>
      Cc: Simon Glass <sjg@chromium.org>
      Acked-by: NStephen Warren <swarren@nvidia.com>
      cd2e46cb
  6. 04 3月, 2014 1 次提交
  7. 01 11月, 2013 1 次提交
  8. 24 7月, 2013 1 次提交
  9. 16 3月, 2013 1 次提交
  10. 29 11月, 2011 1 次提交
    • G
      x86: Wrap small helper functions from libgcc to avoid an ABI mismatch · 36b2409a
      Gabe Black 提交于
      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: NGabe Black <gabeblack@chromium.org>
      36b2409a
  11. 04 11月, 2011 1 次提交
    • W
      Reduce build times · cca4e4ae
      Wolfgang Denk 提交于
      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: NWolfgang 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: NGraeme Russ <graeme.russ@gmail.com>
      Tested-by: NMatthias Weisser <weisserm@arcor.de>
      Tested-by: NSanjeev Premi <premi@ti.com>
      Tested-by: NSimon Glass <sjg@chromium.org>
      Tested-by: NMacpaul Lin <macpaul@gmail.com>
      Acked-by: NMike Frysinger <vapier@gentoo.org>
      cca4e4ae
  12. 30 4月, 2011 1 次提交
    • S
      Handle most LDSCRIPT setting centrally · 83b7e2a7
      Scott Wood 提交于
      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: NScott Wood <scottwood@freescale.com>
      Tested-by: NGraeme Russ <graeme.russ@gmail.com>
      83b7e2a7
  13. 13 4月, 2011 2 次提交
  14. 28 3月, 2011 1 次提交
  15. 23 3月, 2011 1 次提交
  16. 12 2月, 2011 2 次提交
  17. 26 1月, 2011 1 次提交
  18. 07 10月, 2010 2 次提交
    • G
      x86: Change compiler options · 5c161653
      Graeme Russ 提交于
      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
    • G
      x86: use gc sections to reduce image size · d664adb6
      Graeme Russ 提交于
      Follow the discussion of Charles Manning and Mike Frysinger.
      Using gc_sections helps reduce image size.
      d664adb6
  19. 13 4月, 2010 1 次提交
  20. 03 10月, 2009 1 次提交
    • M
      push LOAD_ADDR out to arch mk files · 8eb7e280
      Mike Frysinger 提交于
      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: NMike Frysinger <vapier@gentoo.org>
      8eb7e280
  21. 05 9月, 2009 1 次提交
    • M
      push LOAD_ADDR out to arch mk files · 262ae0a6
      Mike Frysinger 提交于
      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: NMike Frysinger <vapier@gentoo.org>
      262ae0a6
  22. 21 7月, 2009 1 次提交
  23. 20 7月, 2009 1 次提交
    • M
      push CROSS_COMPILE out to $(ARCH)_config.mk · 1ea6bcd8
      Mike Frysinger 提交于
      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: NMike Frysinger <vapier@gentoo.org>
      1ea6bcd8
  24. 18 11月, 2002 1 次提交
    • W
      * Patch by Daniel Engstrm, 13 Nov 2002: · 2262cfee
      wdenk 提交于
        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
  25. 15 8月, 2002 1 次提交
  26. 30 5月, 2001 1 次提交
  27. 28 2月, 2001 1 次提交
  28. 10 7月, 2000 1 次提交