1. 03 6月, 2018 1 次提交
  2. 31 5月, 2018 1 次提交
    • E
      kconfig: re-sync with Linux 4.17-rc4 · e91610da
      Eugeniu Rosca 提交于
      Align Kconfig to Linux 4.17-rc4 with minimal impact on non-kconfig files.
      
      Previous Kconfig sync was done by commit bf7ab1e7 ("kconfig:
      re-sync with Linux 4.10") and it achieved almost perfect alignment with
      a few (intended) exceptions, caused by below U-boot commits:
      
      [A] v2015.04 5f9eb220 ("kbuild: remove scripts/multiconfig.sh")
      [B] v2015.07 20c20826 ("Kconfig: Enable usage of escape char '\' in string values")
      [C] v2016.01 da58dec8 ("Various Makefiles: Add SPDX-License-Identifier tags")
      [D] v2016.03 5b8031cc ("Add more SPDX-License-Identifier tags")
      [E] v2016.03 192bc694 ("Fix GCC format-security errors and convert sprintfs.")
      
      Here is the list of Kconfig commits which followed the v4.10 alignment:
      
      [F] v2018.01 0931ed3c ("kconfig/symbol.c: use correct pointer type argument for sizeof")
      [G] v2018.03 1414e09b ("kconfig: revert change that was not needed for -Wformat-security")
      [H] v2018.05 83d290c5 ("SPDX: Convert all of our single license tags to Linux Kernel style")
      
      Commit [F] was subsequently applied to Linux kernel as commit [I]
      with the same patch id, so it won't contribute to further misalignment.
      
      [I] v4.15-rc1 88127dae6ed9 ("kconfig/symbol.c: use correct pointer type argument for sizeof")
      
      Commit [G] is a Kconfig-specific revert of commit [E].
      Commit [H] relocated and reformatted the license doing no functional change.
      
      In summary, the only functional change that makes U-boot Kconfig
      diverge from Linux Kconfig is commit [B]. After a brief analysis,
      the purpose of [B] seems to be placing "\n" literals in string symbols
      like CONFIG_AUTOBOOT_PROMPT="autoboot in %d seconds\n" in order to pass
      them directly to printf and expect correct output at runtime. Currently,
      Linux doesn't seem to have this requirement, so for the moment [B] looks
      like a U-boot specific feature/fix. From point of view of further Kconfig
      alignment and backporting efforts, it is highly desired that commits
      like [B] are propagated to Linux and any Kconfig fixes/features are
      contributed to Linux kernel first. This specific Kconfig re-sync just
      keeps [B] in place.
      
      Contrary to 4.10 Kconfig re-sync (which achieves zero non-kconfig
      changes), 4.17-rc4 re-sync does some amount of updates in Kbuild
      (striving to keep them at minimum), due to a number of reasons:
      * Kbuild is affected by the removal of Kconfig "*shipped" files and now
        requires flex and bison pre-installed on the host.
      * PYTHON{2,3} variables are defined in top-level Makefile as
        prerequisite for running the newly developed Kconfig unit tests.
      * silentoldconfig becomes an "internal implementation detail" deprecated
        for external use, being renamed to syncconfig.
      
      The exact non-kconfig files touched by this commit are:
      
      $ git show --format="" --stat -- ':!scripts/kconfig'
       .gitignore             |  2 ++
       Makefile               |  9 +++++++--
       scripts/Makefile.build | 11 +++++++++++
       scripts/Makefile.lib   | 41 ++++++++++++-----------------------------
      
      The imported Linux commits touching the above files are:
      
      c054be10ffdbd5   ("remove gperf left-overs from build system")
      73a4f6dbe70a1b   ("kbuild: add LEX and YACC variables")
      033dba2ec06c47   ("kbuild: prepare to remove C files pre-generated by flex and bison")
      eea199b445f64c   ("kbuild: remove unnecessary LEX_PREFIX and YACC_PREFIX")
      e71de5ee08dcb0   ("kbuild: remove remaining use of undefined YACC_PREFIX")
      d59fbbd09d5d6b   ("kbuild: replace hardcoded bison in cmd_bison_h with $(YACC)")
      911a91c39cabcb H ("kconfig: rename silentoldconfig to syncconfig")
      59889300274569   (".gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore")
      9a8dfb394c0467   ("kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile")
      833e622459432e H ("genksyms: generate lexer and parser during build instead of shipping")
      b23d1a241f4eb4 H ("kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically")
      e9781b52d4e0e3 H ("kbuild: add PYTHON2 and PYTHON3 variables")
      
      The commits marked with 'H' are assessed as "hard" (build will fail)
      prerequisites and the rest of them are assessed as "soft" prerequisites
      for the re-sync. In spite of relatively high number of non-H commits,
      they belong to this Kconfig update topic-wise and decrease the number of
      cherry pick conflicts for many commits in this series. Additional effort
      can be put in eliminating the soft prerequisites, if really needed.
      
      The commits which contributed to this Kconfig re-sync are listed below.
      Whenever a conflict resolution has been performed (mostly by hand, but
      sometimes automatically by git), it is revealed by the '!' sign in the
      second column, which means a patch id mismatch between Linux and U-boot
      commits:
      
      9be3213b14d44f   ("gconfig: remove misleading parentheses around a condition")
      ff85a1a80e0034   ("kconfig: Check for libncurses before menuconfig")
      ad8181060788c8   ("kconfig: fix sparse warnings in nconfig")
      cb77f0d623ff33 ! ("scripts: Switch to more portable Perl shebang")
      bb3290d91695bb ! ("Remove gperf usage from toolchain")
      c054be10ffdbd5   ("remove gperf left-overs from build system")
      b24413180f5600 ! ("License cleanup: add SPDX GPL-2.0 license identifier to files with no license")
      9059a3493efea6 ! ("kconfig: fix relational operators for bool and tristate symbols")
      2c37e08464a850   ("kconfig: Warn if choice default is not in choice")
      33ca1a24866373   ("kconfig: Document the 'menu' struct")
      52aede4ba5efd1   ("kconfig: Document the 'symbol' struct")
      c873443430ebd1   ("kconfig: Sync zconf.y with zconf.tab.c_shipped")
      9a826842ff2fbd   ("kconfig: Rename menu_check_dep() to rewrite_m()")
      fa8cedaef814ce   ("kconfig: Clarify expression rewriting")
      f77850d3fe0c96   ("kconfig: Clean up modules handling and fix crash")
      e3b03bf29d6b99   ("kconfig: display recursive dependency resolution hint just once")
      73a4f6dbe70a1b ! ("kbuild: add LEX and YACC variables")
      033dba2ec06c47 ! ("kbuild: prepare to remove C files pre-generated by flex and bison")
      29c833061c1d8c   ("kconfig: generate lexer and parser during build instead of shipping")
      26e47a3c11a25c   ("kconfig: Don't leak symbol names during parsing")
      24161a6711c945   ("kconfig: Don't leak 'source' filenames during parsing")
      bc28fe1d5ede88   ("kconfig: Don't leak 'option' arguments during parsing")
      0724a7c32a54e3   ("kconfig: Don't leak main menus during parsing")
      ae7440ef0c8013   ("kconfig: Fix automatic menu creation mem leak")
      5b1374b3b3c2fc   ("kconfig: Fix expr_free() E_NOT leak")
      7cf33f88e29410   ("kconfig: Fix choice symbol expression leak")
      05cccce580456d   ("kconfig: Document automatic submenu creation code")
      0735f7e5def2ab   ("kconfig: Document important expression functions")
      df60f4b92d3d0b   ("kconfig: Remove menu_end_entry()")
      b92d804a51796b   ("kconfig: drop 'boolean' keyword")
      6479f327dea60d   ("kconfig: Warn if there is more than one help text")
      52e58a3caeba5d   ("kconfig: make input_mode static")
      5a3dc717b3c785   ("kconfig: make xfgets() really static")
      84dd95d4f87a0d   ("kconfig: make conf_unsaved a local variable of conf_read()")
      765f4cdef6f80d   ("kconfig: use default 'yy' prefix for lexer and parser")
      eea199b445f64c   ("kbuild: remove unnecessary LEX_PREFIX and YACC_PREFIX")
      e71de5ee08dcb0   ("kbuild: remove remaining use of undefined YACC_PREFIX")
      d59fbbd09d5d6b ! ("kbuild: replace hardcoded bison in cmd_bison_h with $(YACC)")
      3e41ba05b6d60c   ("kconfig: Document SYMBOL_OPTIONAL logic")
      d3465af60f4471   ("kconfig: Clarify choice dependency propagation")
      9d1a9e8bc18bea   ("kconfig: Document 'if' flattening logic")
      b53688014e3325   ("kconfig: Clarify menu and 'if' dependency propagation")
      d0fd0428ecf04b   ("kconfig: fix make xconfig when gettext is missing")
      312ee68752faaa   ("kconfig: announce removal of oldnoconfig if used")
      1ccb27143360bd   ("kconfig: make "Selected by:" and "Implied by:" readable")
      cedd55d49dee94 ! ("kconfig: Remove silentoldconfig from help and docs; fix kconfig/conf's help")
      1b9eda2e4892cb   ("kconfig: Warn if help text is blank")
      cb67ab2cd2b8ab   ("kconfig: do not write choice values when their dependency becomes n")
      4f208f392103e8   ("kconfig: show '?' prompt even if no help text is available")
      cd58a91def2acc   ("kconfig: remove 'config*' pattern from .gitignnore")
      d2a04648a5dbc3   ("kconfig: remove check_stdin()")
      f3ff6fb5db68bc   ("kconfig: echo stdin to stdout if either is redirected")
      9e3e10c725360b   ("kconfig: send error messages to stderr")
      d717f24d8c6808   ("kconfig: add xrealloc() helper")
      523ca58b7db2e3   ("kconfig: remove const qualifier from sym_expand_string_value()")
      cd81fc82b93fa4   ("kconfig: add xstrdup() helper")
      f4bc1eefc1608e   ("kconfig: set SYMBOL_AUTO to the symbol marked with defconfig_list")
      bf0bbdcf100322   ("kconfig: Don't leak choice names during parsing")
      1a90ce36c6eff6   ("kconfig: Update ncurses package names for menuconfig")
      5ae6fcc4bb82bd   ("kconfig: fix line number in recursive inclusion error message")
      07a422bb213adb ! ("kbuild: restore autoksyms.h touch to the top Makefile")
      9a47ceec543bfb   ("kconfig: clean-up reverse dependency help implementation")
      d9119b5925a03b   ("kconfig: Print reverse dependencies in groups")
      f467c5640c29ad   ("kconfig: only write '# CONFIG_FOO is not set' for visible symbols")
      59a80b5e892dde   ("kconfig: do not call check_conf() for olddefconfig")
      4bb3a5b085cd6f   ("kconfig: remove unneeded input_mode test in conf()")
      99f0b6578bab44   ("kconfig: remove redundant input_mode test for check_conf() loop")
      2aad9b89621386   ("kconfig: hide irrelevant sub-menus for oldconfig")
      81d2bc2273052e   ("kconfig: invoke oldconfig instead of silentoldconfig from local*config")
      911a91c39cabcb ! ("kconfig: rename silentoldconfig to syncconfig")
      2a61625835c7c8 ! ("kconfig: remove redundant streamline_config.pl prerequisite")
      022a4bf6b59dfd   ("kconfig: tests: add framework for Kconfig unit testing")
      1903c511905984   ("kconfig: tests: add basic choice tests")
      49ac3c0c3aa3b7   ("kconfig: tests: test automatic submenu creation")
      b76960c0f6b25d   ("kconfig: tests: test if new symbols in choice are asked")
      930c429a656fdb   ("kconfig: tests: check unneeded "is not set" with unmet dependency")
      ee236610653ede   ("kconfig: tests: check visibility of tristate choice values in y choice")
      beaaddb625400e   ("kconfig: tests: test defconfig when two choices interact")
      3e4888c2e3d77d   ("kconfig: tests: test randconfig for choice in choice")
      29c434f367ea7b   ("kconfig: tests: test if recursive dependencies are detected")
      e2c75e7667c737   ("kconfig: tests: test if recursive inclusion is detected")
      f622f827958162   ("kconfig: warn unmet direct dependency of tristate symbols selected by y")
      f8f69dc0b4e070   ("kconfig: make unmet dependency warnings readable")
      26561514cc9def   ("kconfig: do not include both curses.h and ncurses.h for nconfig")
      32a94b8b0c3e5a   ("kconfig: remove duplicated file name and lineno of recursive inclusion")
      379a8eb8eb1a55   ("kconfig: detect recursive inclusion earlier")
      18492685e479fd   ("kconfig: use yylineno option instead of manual lineno increments")
      59889300274569 ! (".gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore")
      9a8dfb394c0467 ! ("kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile")
      833e622459432e ! ("genksyms: generate lexer and parser during build instead of shipping")
      b23d1a241f4eb4 ! ("kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically")
      17baab68d337a0   ("kconfig: extend output of 'listnewconfig'")
      e9781b52d4e0e3 ! ("kbuild: add PYTHON2 and PYTHON3 variables")
      
      The current Kconfig update generates below build-time warnings:
        YACC    scripts/dtc/dtc-parser.tab.h
      scripts/dtc/dtc-parser.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr]
        YACC    scripts/dtc/dtc-parser.tab.c
      scripts/dtc/dtc-parser.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr]
      
      This seems to happen because the Kbuild updates apparently didn't make
      room for both "*shipped"-based builds and flex/bison-based builds. A
      similar problem has been reported for genksyms parser in v4.17-rc1
      commit 833e622459432e ("genksyms: generate lexer and parser during build
      instead of shipping"). I have figured out empirically that the warnings
      are healed after updating the in-tree U-boot DTC to upstream v1.4.6-9,
      same as done by Linux v4.17-rc1 commit 9130ba88464032 ("scripts/dtc:
      Update to upstream version v1.4.6-9-gaadd0b65c987"). Whether fixing the
      DTC-related yacc warnings should be done together with the Kconfig
      re-sync, I would like to hear from community.
      
      My testing was limited to:
      - make defconfig all
      - make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- r8a7795_ulcb_defconfig all
      - comparing .config before and after the re-sync
      - running the newly imported Kconfig unit tests as seen below:
      
      $ make testconfig
      Tested-by: NPetr Vorel <petr.vorel@gmail.com>
      
      ============================= test session starts =============================
      scripts/kconfig/tests/auto_submenu/__init__.py::test PASSED             [  7%]
      scripts/kconfig/tests/choice/__init__.py::test_oldask0 PASSED           [ 14%]
      scripts/kconfig/tests/choice/__init__.py::test_oldask1 PASSED           [ 21%]
      scripts/kconfig/tests/choice/__init__.py::test_allyes PASSED            [ 28%]
      scripts/kconfig/tests/choice/__init__.py::test_allmod PASSED            [ 35%]
      scripts/kconfig/tests/choice/__init__.py::test_allno PASSED             [ 42%]
      scripts/kconfig/tests/choice/__init__.py::test_alldef PASSED            [ 50%]
      scripts/kconfig/tests/choice_value_with_m_dep/__init__.py::test PASSED  [ 57%]
      scripts/kconfig/tests/err_recursive_inc/__init__.py::test PASSED        [ 64%]
      scripts/kconfig/tests/inter_choice/__init__.py::test PASSED             [ 71%]
      scripts/kconfig/tests/new_choice_with_dep/__init__.py::test PASSED      [ 78%]
      scripts/kconfig/tests/no_write_if_dep_unmet/__init__.py::test PASSED    [ 85%]
      scripts/kconfig/tests/rand_nested_choice/__init__.py::test PASSED       [ 92%]
      scripts/kconfig/tests/warn_recursive_dep/__init__.py::test PASSED       [100%]
      ========================== 14 passed in 0.34 seconds ==========================
      Signed-off-by: NEugeniu Rosca <erosca@de.adit-jv.com>
      Reviewed-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: NPetr Vorel <petr.vorel@gmail.com>
      e91610da
  3. 24 5月, 2018 1 次提交
    • P
      Makefile: adopt --std=gnu11 for HOSTCFLAGS on Linux · 9de4f959
      Philipp Tomsich 提交于
      Following the conversion of the SPDX license tags, a number of files
      compiled with -pedantic now generate warnings similar to the following
      for using C99-style '//' comments in ISO C90 code:
      
        tools/gen_eth_addr.c:1:1: warning: C++ style comments are not allowed in ISO C90
         // SPDX-License-Identifier: GPL-2.0+
         ^
      
      The SPDX comment-style change means that these files have adopted C99,
      so need to change the language-standard to --std=gnu99 or --std=gnu11
      to let the compiler know this.
      
      As we now require GCC 6 or newer for the cross-compiler, the project has
      implicitly moved the project to GNU11: let older GCC versions on various
      Linux distros know to treat our host tools as GNU11 as well.
      
      References: commit 83d290c5 ("SPDX: Convert all of our single license tags to Linux Kernel style")
      Signed-off-by: NPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
      Reviewed-by: NTom Rini <trini@konsulko.com>
      9de4f959
  4. 07 5月, 2018 2 次提交
    • T
      Prepare v2018.05 · 890e79f2
      Tom Rini 提交于
      Signed-off-by: NTom Rini <trini@konsulko.com>
      890e79f2
    • T
      SPDX: Convert all of our single license tags to Linux Kernel style · 83d290c5
      Tom Rini 提交于
      When U-Boot started using SPDX tags we were among the early adopters and
      there weren't a lot of other examples to borrow from.  So we picked the
      area of the file that usually had a full license text and replaced it
      with an appropriate SPDX-License-Identifier: entry.  Since then, the
      Linux Kernel has adopted SPDX tags and they place it as the very first
      line in a file (except where shebangs are used, then it's second line)
      and with slightly different comment styles than us.
      
      In part due to community overlap, in part due to better tag visibility
      and in part for other minor reasons, switch over to that style.
      
      This commit changes all instances where we have a single declared
      license in the tag as both the before and after are identical in tag
      contents.  There's also a few places where I found we did not have a tag
      and have introduced one.
      Signed-off-by: NTom Rini <trini@konsulko.com>
      83d290c5
  5. 01 5月, 2018 1 次提交
  6. 28 4月, 2018 2 次提交
    • M
      kbuild: use -fmacro-prefix-map to make __FILE__ a relative path · 1eb2e71e
      Masahiro Yamada 提交于
      The __FILE__ macro is used everywhere in U-Boot to locate the file
      printing the log message, such as WARN_ON(), etc.  If U-Boot is
      built out of tree, this can be a long absolute path.
      
      This is because Kbuild runs in the objtree instead of the srctree,
      then __FILE__ is expanded to a file path prefixed with $(srctree)/.
      
      A brand-new option from GCC, -fmacro-prefix-map, solves this problem.
      If your compiler supports it, __FILE__ is the relative path from the
      srctree regardless of O= option.  This provides more readable log,
      more reproducible builds, and smaller image size.
      
      [ Linux commit: a73619a845d5625079cc1b3b820f44c899618388 ]
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      1eb2e71e
    • T
      Makefile: Update clang warning disables from Linux · 4760fe26
      Tom Rini 提交于
      Re-sync the logic about which clang warnings to disable from v4.17-rc1.
      Note that we don't disable all of the same ones as for now we haven't
      run into any cases of warnings from clang in code from upstream Linux.
      Signed-off-by: NTom Rini <trini@konsulko.com>
      4760fe26
  7. 17 4月, 2018 1 次提交
  8. 15 4月, 2018 1 次提交
    • R
      Makefile: always preserve output for images that can contain HAB Blocks · 06587617
      Rasmus Villemoes 提交于
      The current makefile logic disables creation of the
      SPL.log/u-boot-ivt.img.log etc. files when V=1 is given on the command
      line, the rationale presumably being that the user wants and gets the
      information on the console.
      
      However, from general principles, I don't think a higher V= level
      should affect which build artifacts get generated (and certainly
      shouldn't produce fewer). Concretely, it's also a problem that when
      doing a V=1 build in a terminal, the relevant HAB blocks lines easily
      drown in all the other V=1 output.
      
      Moreover, build systems such as Yocto by default pass V=1, so in that
      case the information gets hidden away in the do_compile log file, making
      it nigh impossible to create a recipe for creating signed U-boot images
      - I don't want to disable V=1, because having verbose output in the log
      file is valuable when things go wrong, but OTOH trying to go digging in
      the do_compile log file (and getting exactly the right lines) is not
      pleasant to even think about.
      
      So change the logic so that for V=0, the mkimage output is redirected
      to MKIMAGEOUTPUT (which is also the current behaviour), while for any
      other value of V, we _additionally_ write the information to make's
      stdout, whatever that might be.
      Signed-off-by: NRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Tested-by: NBreno Lima <breno.lima@nxp.com>
      06587617
  9. 14 4月, 2018 1 次提交
  10. 07 4月, 2018 1 次提交
    • R
      Allow providing default environment from file · f3d8f7dd
      Rasmus Villemoes 提交于
      Modifying the default environment via CONFIG_EXTRA_ENV_SETTINGS is
      somewhat inflexible, partly because the cpp language does not allow
      appending to an existing macro. This prevents reuse of "environment
      fragments" for different boards, which in turn makes maintaining that
      environment consistently tedious and error-prone.
      
      This implements a Kconfig option for allowing one to define the entire
      default environment in an external file, which can then, for example, be
      generated programmatically as part of a Yocto recipe, or simply be kept
      in version control separately from the U-boot repository.
      Tested-by: NSean Nyekjaer <sean.nyekjaer@prevas.dk>
      Signed-off-by: NRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Reviewed-by: NLukasz Majewski <lukma@denx.de>
      f3d8f7dd
  11. 03 4月, 2018 2 次提交
    • A
      Makefile: Disable stack-usage check for ARC · 948071ba
      Alexey Brodkin 提交于
      With the most recent tools for ARC (arc-2017.09) in case of
      "naked" function compiler throws a warning:
      ---------------------------------->8-----------------------------
      board/synopsys/hsdk/hsdk.c: In function 'hsdk_core_init_f':
      board/synopsys/hsdk/hsdk.c:345:1: warning: stack usage computation not supported for this target
       }
       ^
      ---------------------------------->8-----------------------------
      
      That happens because the compiler doesn't handle "naked" functions
      as a special case where stack calculation shouldn't be done.
      
      But for now until this is fixed in GCC to get clean buildman output
      we're disabling stack-usage check for ARC.
      
      See https://lists.denx.de/pipermail/u-boot/2018-April/324455.html
      for more background.
      Signed-off-by: NAlexey Brodkin <abrodkin@synopsys.com>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Tom Rini <trini@konsulko.com>
      948071ba
    • T
      Prepare v2018.05-rc1 · 645b5afb
      Tom Rini 提交于
      Signed-off-by: NTom Rini <trini@konsulko.com>
      645b5afb
  12. 29 3月, 2018 1 次提交
  13. 13 3月, 2018 3 次提交
  14. 06 3月, 2018 1 次提交
  15. 28 2月, 2018 2 次提交
  16. 23 2月, 2018 1 次提交
    • A
      Makefile: Don't mess with .text section location for selected arches · 1022807c
      Alexey Brodkin 提交于
      Most of architectures have .text section situated in the very beginning
      of U-Boot binary and thus it is very logical that CONFIG_SYS_TEXT_BASE
      is used on final linkage step to specify where U-Boot gets linked to.
      
      For that we pass the following construction to the LD:
      ---------------------------->8-----------------------
      xxx-ld ...  -Ttext $(CONFIG_SYS_TEXT_BASE) ...
      ---------------------------->8-----------------------
      
      But there could be exceptions. For example:
       1. In case of ARCv2 we want to put vectors table in its own section
          .ivt in front of .text section which means we need either add an
          offset to CONFIG_SYS_TEXT_BASE to compensate for .ivt or don't
          pass "-Ttext" to the LD at all and specify link base in linker
          script directly.
      
       2. Some architectures even though have .text section in the very
          beginning of the U-Boot image still use different symbols to
          specify link-base:
             * NIOS2: CONFIG_SYS_MONITOR_BASE (which I really like because
               that exactly what makes sense - where out image starts but not
               beginning of its .text section which just happened to match the
               whole image beginning)
             * EXTENSA: CONFIG_SYS_TEXT_ADDR
             * X86: Which doesn't use CONFIG_SYS_MONITOR_BASE in case of EFI
               otherwise sets explicit link base in u-boot.lds
      
      I think that's good to allow for flexibility and don't require each and
      every architecture or even platform to specify CONFIG_SYS_TEXT_BASE as well
      as use it to set .text section location.
      
      So let's only pass "-Ttext xxx" for those architectures who don't set
      link-base explicitly in their linker scripts.
      
      This patch iaddresses comments for previously sent
      https://patchwork.ozlabs.org/patch/867540/.
      Signed-off-by: NAlexey Brodkin <abrodkin@synopsys.com>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Marek Vasut <marek.vasut@gmail.com>
      Cc: Max Filippov <jcmvbkbc@gmail.com>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Tom Rini <trini@konsulko.com>
      1022807c
  17. 21 2月, 2018 1 次提交
  18. 13 2月, 2018 1 次提交
  19. 30 1月, 2018 1 次提交
  20. 26 1月, 2018 1 次提交
  21. 13 1月, 2018 1 次提交
  22. 12 1月, 2018 1 次提交
  23. 09 1月, 2018 1 次提交
  24. 02 1月, 2018 1 次提交
  25. 19 12月, 2017 1 次提交
  26. 13 12月, 2017 1 次提交
    • S
      binman: tegra: Convert to use binman · f2faffec
      Simon Glass 提交于
      Update tegra to use binman for image creation. This still includes the
      current Makefile logic, but a later patch will remove this. Three output
      files are created, all of which combine
      SPL and U-Boot:
      
         u-boot-tegra.bin        - standard image
         u-boot-dtb-tegra.bin    - same as u-boot-tegra.bin
         u-boot-nodtb-target.bin - includes U-Boot without the appended device tree
      
      The latter is useful for build systems where the device is appended later,
      perhaps after being modified.
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      f2faffec
  27. 05 12月, 2017 1 次提交
  28. 21 11月, 2017 3 次提交
    • S
      envtools: make sure version/timestamp header file are available · ded84f90
      Stefan Agner 提交于
      With commit 84d46e7e ("tools: env: allow to print U-Boot version")
      the fw_env utilities need the version.h header file. Building only
      the envtools in a pristine build directory will fail due to missing
      header files.
      
      Make sure the header files are a dependency of the envtools target.
      
      Fixes: 84d46e7e ("tools: env: allow to print U-Boot version")
      Signed-off-by: NStefan Agner <stefan.agner@toradex.com>
      Tested-by: NPeter Robinson <pbrobinson@gmail.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      ded84f90
    • M
      Makefile: Correct SPL/TPL/DTB build race condition · dd2081a8
      M. Vefa Bicakci 提交于
      When building on a multi-core machine for an SPL-enabled board that
      also uses CONFIG_OF_EMBED, the following error can be encountered
      due to a race condition:
      
        make[3]: *** No rule to make target 'spl/dts/dt.dtb.o', needed by
          'spl/dts/built-in.o'.  Stop.
        ../scripts/Makefile.spl:364: recipe for target 'spl/dts' failed
        make[2]: *** [spl/dts] Error 2
        make[2]: *** Waiting for unfinished jobs....
      
      A reliable way to trigger this race condition is to add "sleep 60" to
      the end of the "arch-dtbs" rule's recipe in "dts/Makefile" and to build
      U-Boot against a board which uses the CONFIG_OF_EMBED and CONFIG_SPL
      options using "make -j8" or a similar command.
      
      This commit corrects this race condition via the use of CONFIG_OF_EMBED
      in the same way that commit 3c00a2c8 ("Makefile: Correct dependency
      race condition with TPL") and commit 054b3a1e ("dm: Makefile: Build
      of-platdata before SPL") use CONFIG_OF_SEPARATE.
      Signed-off-by: NM. Vefa Bicakci <m.v.b@runbox.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      dd2081a8
    • H
      Makefile: add coccicheck target · 8a28caf0
      Heinrich Schuchardt 提交于
      Coccinelle is a program for static code analysis.
      For details on Coccinelle see
      
      	http://coccinelle.lip6.fr/
      
      Add scripts/coccicheck copied from Linux kernel v4.14.
      
      The coccicheck script executes the tests *.cocci in
      directory scripts/coccinelle by calling spatch.
      
      In Makefile add a coccicheck target. You can use it with
      
      	make coccicheck MODE=<mode>
      
      	where mode in patch, report, context, org.
      
      Add a copy of Linux v4.14 file Documentation/dev-tools/coccinelle.rst
      as doc/README.coccinelle.
      
      Cc: Simon Glass <sjg@chromium.org>
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      8a28caf0
  29. 17 11月, 2017 2 次提交
    • M
      pylibfdt: compile pylibfdt only when dtoc/binman is necessary · d6a0c78a
      Masahiro Yamada 提交于
      Currently, pylibfdt is always compiled if swig is installed on your
      machine.  It is really annoying because most of targets (excepts
      x86, sunxi, rockchip) do not use dtoc or binman.
      
      "checkbinman" and "checkdtoc" are wrong.  It is odd that the final
      build stage checks if we have built necessary tools.  If your platform
      depends on dtoc/binman, you must be able to build pylibfdt.  If swig
      is not installed, it should fail immediately.
      
      I added PYLIBFDT, DTOC, BINMAN entries to Kconfig.  They should be
      property select:ed by platforms that need them.  Kbuild will descend
      into scripts/dtc/pylibfdt/ only when CONFIG_PYLIBFDT is enabled.
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      d6a0c78a
    • M
      pylibfdt: move pylibfdt to scripts/dtc/pylibfdt and refactor makefile · 15b97f5c
      Masahiro Yamada 提交于
      The pylibfdt is used by dtoc (and, indirectly by binman), but there
      is no reason why it must be generated in the tools/ directory.
      
      Recently, U-Boot switched over to the bundled DTC, and the directory
      structure under scripts/dtc/ now mirrors the upstream DTC project.
      So, scripts/dtc/pylibfdt is the best location.
      
      I also rewrote the Makefile in a cleaner Kbuild style.
      
      The scripts from the upstream have been moved as follows:
      
        lib/libfdt/pylibfdt/setup.py -> scripts/dtc/pylibfdt/setup.py
        lib/libfdt/pylibfdt/libfdt.i -> scripts/dtc/pylibfdt/libfdt.i_shipped
      
      The .i_shipped is coped to .i during building because the .i must be
      located in the objtree when we build it out of tree.
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      15b97f5c
  30. 14 11月, 2017 1 次提交
  31. 07 11月, 2017 1 次提交