Skip to content
Snippets Groups Projects
  1. Jan 30, 2015
    • Martin Dorwig's avatar
      Export redesign · 49cad547
      Martin Dorwig authored
      
      this is an atempt to make the export of functions typesafe.
      I replaced the jumptable void ** by a struct (jt_funcs) with function pointers.
      The EXPORT_FUNC macro now has 3 fixed parameters and one
      variadic parameter
      The first is the name of the exported function,
      the rest of the parameters are used to format a functionpointer
      in the jumptable,
      
      the EXPORT_FUNC macros are expanded three times,
      1. to declare the members of the struct
      2. to initialize the structmember pointers
      3. to call the functions in stubs.c
      
      Signed-off-by: default avatarMartin Dorwig <dorwig@tetronik.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
      (resending to the list since my tweaks are not quite trivial)
      49cad547
  2. Jan 05, 2015
  3. Sep 16, 2014
  4. May 23, 2014
  5. Apr 17, 2014
  6. Mar 07, 2014
    • Masahiro Yamada's avatar
      powerpc: mpc8260: consolidate CONFIG_MPC8260 and CONFIG_8260 · 58dac327
      Masahiro Yamada authored
      
      Before this commit, CONFIG_MPC8260 and CONFIG_8260
      were used mixed-up.
      
      All boards with mpc8260 cpu defined both of them:
        - CONFIG_MPC8260 was defined in board config headers
            and include/common.h
        - CONFIG_8260 was defined arch/powerpc/cpu/mpc8260/config.mk
      
      We do not need to have both of them.
      This commit keeps only CONFIG_MPC8260.
      
      This commit does:
       - Delete CONFIG_8260 and CONFIG_MPC8260 definition
         in config headers and include/common.h
       - Rename CONFIG_8260 to CONFIG_MPC8260
          in arch/powerpc/cpu/mpc8260/config.mk.
       - Rename #ifdef CONFIG_8260 to #ifdef CONFIG_MPC8260
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Cc: Wolfgang Denk <wd@denx.de>
      58dac327
    • 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
  7. Feb 25, 2014
  8. Feb 19, 2014
    • Masahiro Yamada's avatar
    • 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 examples makefiles · d9580025
      Masahiro Yamada authored
      
      This commit moves some flags which are used
      under examples/ directory only.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      d9580025
    • Masahiro Yamada's avatar
      Makfile: move suffix rules to Makefile.build · 5651ccff
      Masahiro Yamada authored
      
      This commit moves suffix rules from config.mk
      to scripts/Makefile.build, which will allow us
      to switch smoothly to real Kbuild.
      
      Note1:
      post/lib_powerpc/fpu/Makefile has
      its own rule to compile C sources.
      We need to tweak it to keep the same behavior.
      
      Note2:
      There are two file2 with the same name:
      arch/arm/lib/crt0.S and eamples/api/crt0.S.
      To keep the same build behavior,
      examples/api/Makefile also has to be treaked.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      5651ccff
    • Masahiro Yamada's avatar
      4a20df39
  9. Feb 07, 2014
  10. Jan 09, 2014
  11. Dec 16, 2013
  12. Dec 12, 2013
    • Jeroen Hofstee's avatar
      ARM: fix the standalone programs · a5a42eec
      Jeroen Hofstee authored
      
      The standalone programs do not use the api calls, but rely
      directly on u-boot variable gd->jt for the jump table. Commit
      fe1378a9 - "ARM: use r9 for gd" changed the register holding
      the address of gd, but the assembly code in the standalone
      examples was not updated accordingly. This broke the programs
      on ARM relying on the jumptable in the v2013.10 release.
      This patch unbricks them by using the correct register.
      
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
      Signed-off-by: default avatarJeroen Hofstee <jeroen@myspectrum.nl>
      a5a42eec
  13. Nov 25, 2013
  14. Nov 15, 2013
  15. Nov 08, 2013
  16. Nov 04, 2013
  17. Sep 20, 2013
  18. Sep 12, 2013
    • Tom Rini's avatar
      Revert "standalone-examples: support custom GCC lib" · 8386ca8b
      Tom Rini authored
      
      After further testing, this patch has two problems.  First,
      examples/standalone/Makefile was already inherting PLATFORM_LIBS from
      the top-level Makefile so this lead to duplicating the private libgcc.
      Second, currently the private libgcc has a reference to 'hang' that is
      not being fulfilled.
      
      This reverts commit 4412db46.
      
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      8386ca8b
  19. Sep 06, 2013
  20. Jul 24, 2013
  21. Jun 11, 2013
  22. Mar 15, 2013
  23. Feb 04, 2013
  24. Oct 22, 2012
  25. Oct 16, 2012
    • Zhi-zhou Zhang's avatar
      MIPS: add board qemu-mips64 support · 32afad78
      Zhi-zhou Zhang authored
      
      Both big-endian and little-endian are tested with below commands:
      Rom version: (Default, Now we config it as rom version)
      qemu-system-mips64el -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
      qemu-system-mips64 -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
      Ram version:
      qemu-system-mips64el -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic
      qemu-system-mips64 -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic
      
      Signed-off-by: default avatarZhizhou Zhang <etou.zh@gmail.com>
      Signed-off-by: default avatarDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
      32afad78
  26. Mar 26, 2012
  27. Jan 13, 2012
  28. Dec 06, 2011
Loading