15 Feb, 2018

1 commit

  • With commit 9bd76b807636 ("spl: make CONFIG_OF_EMBED pass dts through
    fdtgrep"), CONFIG_SPL_MULTI_DTB_FIT has been broken because
    cmd_fdtgrep was now unknown in scripts/Makefile.spl after moving
    it to dts/Makefile. This bug has been introduced with v2018.01.

    This patch moves cmd_fdtgrep from dts/Makefile to scripts/Makefile.lib
    and includes scripts/Makefile.lib in scripts/Makefile.spl.

    Fixes: 9bd76b807636 ("spl: make CONFIG_OF_EMBED pass dts through fdtgrep")
    Reported-by: Lokesh Vutla
    Signed-off-by: Simon Goldschmidt
    Reviewed-by: Lokesh Vutla

    Simon Goldschmidt
     

23 Nov, 2017

1 commit

  • There is a debugging option in the Makefile to allow people to figure out
    which u-boot.dtsi files are used in the build. But is it not easy to use
    since it only shows files it finds, not those it is looking for. Update it
    and update the mention of it to the docs.

    Signed-off-by: Simon Glass

    Simon Glass
     

16 Oct, 2017

1 commit

  • I saw a DT build issue report some time before [1]. I was able to
    reproduce the bug, and figure out the root cause.

    Since commit 6d427c6b1fa0 ("binman: Automatically include a U-Boot
    .dtsi file"), invalid .*.cmd files are generated.

    Since that commit, DTS files are put into sed and piped to CPP.
    Because CPP reads the stream from stdin, -Wp,-MD,$(depfile).pre.tmp
    option generates a depfile with the target name "-". This is not
    the format expected by fixdep.

    Use one more temporary file instead of using pipe. With this, deps_
    in the .*.cmd will be fixed. Having a temp file name in source_ is
    odd, but it is unsed in the build system. Not a big deal.

    [1] https://lists.denx.de/pipermail/u-boot/2017-June/294451.html

    Fiexes: 6d427c6b1fa0 ("binman: Automatically include a U-Boot .dtsi file")
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

19 Sep, 2017

3 commits

  • Replace all occurences of helloworld by generalized forms.
    This allows us to build additional EFI applications that are
    included into the U-Boot binary without loading
    scripts/Makefile.lib with specific filenames.

    Signed-off-by: Heinrich Schuchardt
    Signed-off-by: Alexander Graf

    Heinrich Schuchardt
     
  • In scripts/Makefile.lib we build section including helloworld.efi.
    This allows to load the EFI binary with command 'bootefi hello'.

    scripts/Makefile.lib contains explicit references to strings
    containing helloworld and hello_world. This makes it impossible
    to generalize the coding to accomodate additional built in
    EFI binaries.

    Let us rename the variables __efi_hello_world_* to
    __efi_helloworld_*.

    Signed-off-by: Heinrich Schuchardt
    Signed-off-by: Alexander Graf

    Heinrich Schuchardt
     
  • The target
    $(obj)/helloworld.so:
    exists twice in Makefile.lib.

    If you add an echo command to each of the two recipes you get
    warnings like:

    scripts/Makefile.lib:383: warning:
    overriding recipe for target 'drivers/power/battery/helloworld.so'
    scripts/Makefile.lib:379: warning:
    ignoring old recipe for target 'drivers/power/battery/helloworld.so'

    This patch removes the obsolete target.

    Signed-off-by: Heinrich Schuchardt
    Signed-off-by: Alexander Graf

    Heinrich Schuchardt
     

15 Sep, 2017

1 commit


30 Jul, 2017

1 commit

  • If ASL compiler failed by any reason do not produce output C file.
    Otherwise sequential run of make will shadow the actual error in ASL,
    i.e.

    CC board/intel/edison/dsdt.o
    board/intel/edison/dsdt.c:1:1: error: unterminated comment
    /*

    and user has to remove dsdt.c and run make in order to see the error again.

    Signed-off-by: Andy Shevchenko
    Reviewed-by: Bin Meng
    Tested-by: Bin Meng

    Andy Shevchenko
     

06 Jun, 2017

1 commit

  • We only want to apply files such as 'omap5-u-boot.dtsi', which resides
    in arch/arm/dts/ to other files in arch/arm/dts/ and not say
    test/overlay/. Rework the make logic to check for -u-boot.dtsi files in
    the same directory as their target dts.

    Cc: Simon Glass
    Reported-by: Pantelis Antoniou
    Signed-off-by: Tom Rini
    Tested-by: Pantelis Antoniou
    Reviewed-by: Simon Glass

    Tom Rini
     

19 May, 2017

1 commit

  • The intention of having a -u-boot.dtsi file is to be able to make
    changes to the provided upstream dts files as well as to be able to add
    nodes. Change the logic for adding the file from making it the last
    included file at the top of the dts to being included at the end of the
    file.

    Cc: Jean-Jacques Hiblot
    Cc: Simon Glass
    Signed-off-by: Tom Rini
    Tested-by: Jean-Jacques Hiblot
    Reviewed-by: Simon Glass

    Tom Rini
     

15 Jan, 2017

2 commits


03 Jan, 2017

1 commit

  • To being able to sign created binaries, we need to know the HAB Blocks
    for that image. Especially for the imximage type the HAB Blocks are
    only available during creation of the image. We want to preserve the
    information until we get to sign the files.
    In the verbose case we still get them printed out instead of writing
    to log files.

    Cc: sbabic@denx.de

    v2-Changes:
    - No usage of MKIMAGEOUTPUT_$(@F) macro.
    - Predefine default value /dev/null in every involved Makefile.

    Signed-off-by: Sven Ebenfeld
    Reviewed-by: George McCollister
    Tested-by: George McCollister

    Sven Ebenfeld
     

20 Dec, 2016

3 commits

  • Move sunxi boards to use binman. This involves adding the image definition
    to the device tree and using it in the Makefile.

    Signed-off-by: Simon Glass
    Reviewed-by: Tom Rini

    Simon Glass
     
  • For boards that need U-Boot-specific additions to the device tree, it is
    a minor annoyance to have to add these each time the tree is synced with
    upstream.

    Add a means to include a file (e.g. u-boot.dtsi) automatically into the .dts
    file before it is compiled.

    The file uses is the first one that exists in this list:

    arch//dts/-u-boot.dtsi
    arch//dts/-u-boot.dtsi
    arch//dts/-u-boot.dtsi
    arch//dts/-u-boot.dtsi
    arch//dts/u-boot.dtsi

    Signed-off-by: Simon Glass
    Suggested-by: Tom Rini
    Reviewed-by: Bin Meng
    Tested-by: Bin Meng

    Simon Glass
     
  • It is sometimes useful to be able to reference configuration options in a
    device tree source file. Add the necessary includes so that this works.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng
    Tested-by: Bin Meng

    Simon Glass
     

15 Nov, 2016

1 commit


20 Aug, 2016

1 commit

  • Having dashes as a separator in the DTB name is a quite common practice.

    However, the current code to generate objects from DTBs assumes the
    separator is an underscore, leading to a compilation error when building a
    device tree with dashes.

    Replace all the dashes in the DTB name to generate the symbols name, which
    should solve this issue.

    Acked-by: Simon Glass
    Acked-by: Pantelis Antoniou
    Signed-off-by: Maxime Ripard

    Maxime Ripard
     

30 May, 2016

1 commit

  • ASL files may include various U-Boot header files, but IASL compiler
    does not understand any C language embedded in these header files.
    To reuse those header files for ASL compiling, use __ASSEMBLY__ in
    the header files to exclude everything that is not liked by IASL.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     

23 May, 2016

5 commits


30 Jan, 2016

1 commit


19 Jan, 2016

1 commit


26 Aug, 2015

1 commit

  • Implement write_acpi_table() to create a minimal working ACPI table.
    This includes writing FACS, XSDT, RSDP, FADT, MCFG, MADT, DSDT & SSDT
    ACPI table entries.

    Use a Kconfig option GENERATE_ACPI_TABLE to tell U-Boot whether we need
    actually write the APCI table just like we did for PIRQ routing, MP table
    and SFI tables. With ACPI table existence, linux kernel gets control of
    power management, thermal management, configuration management and
    monitoring in hardware.

    Signed-off-by: Saket Sinha
    Reviewed-by: Bin Meng
    Tidied up whitespace and aligned some tabs:
    Signed-off-by: Simon Glass

    Saket Sinha
     

05 Aug, 2015

1 commit


28 Jul, 2015

1 commit

  • Update some build scripts to match Linux 4.1. Commit-based syncing
    was done so as not to break U-Boot specific changes.
    The previous big sync was from Linux 3.18-rc1 by commit 176d09827725
    (kbuild: sync misc scripts with Linux 3.18-rc1).

    The commits imported from Linux (some with adjustments) are:

    [1] commit 9fb5e5372208973984a23ee6f5f025c05d364633
    Author: Robert Richter
    dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst

    [2] commit 371fdc77af44f4cb32475fd499e1d912ccc30890
    Author: Masahiro Yamada
    kbuild: collect shorthands into scripts/Kbuild.include

    [3] commit a29b82326ed4eb5567b03c85b52c6891578d5a03
    Author: Michal Marek
    kbuild: Remove duplicate $(cmd) definition in Makefile.clean

    [4] commit 1846dfbde3e8a53f3673dcb1c1b79fd9b3f8d40d
    Author: Masahiro Yamada
    kbuild: remove redundant -rR flag of hdr-inst

    [5] commit 34948e0bbf98640fc1821751b01d2f0cd17d84d5
    Author: Michal Marek
    kbuild: Drop support for clean-rule

    [6] commit a16c5f99a28c9945165c46da27fff8e6f26f8736
    Author: Michal Marek
    kbuild: Fix removal of the debian/ directory

    [7] commit d0d38cd9e853db11e0242b3df4c9c3c4a663fbb4
    Author: Masahiro Yamada
    kbuild: use mixed-targets when two or more config targets are given

    [8] commit dd33c03b18b3f2db791eb6a17c37d2de66e4de18
    Author: Masahiro Yamada
    kbuild: fix cc-ifversion macro

    [9] commit 665d92e38f65d70796aad2b8e49e42e80815d4a4
    Author: Masahiro Yamada
    kbuild: do not add $(call ...) to invoke cc-version or cc-fullversion

    [10] commit 6dcb4e5edf39e3b65a75ca76f087b2fdbee8a808
    Author: Masahiro Yamada
    kbuild: allow cc-ifversion to have the argument for false condition

    [11] commit c0a80c0c27e5e65b180a25e6c4c2f7ef9e386cd3
    Author: Heiko Carstens
    ftrace: allow architectures to specify ftrace compile options

    [12] commit 0b24becc810dc3be6e3f94103a866f214c282394
    Author: Andrey Ryabinin
    kasan: add kernel address sanitizer infrastructure

    [13] commit 4218affdf57f938c04e3a916a9685ee27079f377
    Author: Masahiro Yamada
    kbuild: remove warning about "make depend"

    [14] commit 77479b38e2f58890eb221a0418357502a5b41cd6
    Author: Nathan Rossi
    kbuild: Create directory for target DTB

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Robert Richter
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrey Ryabinin
    Signed-off-by: Nathan Rossi
    Signed-off-by: Michal Simek
    Signed-off-by: Olof Johansson
    Signed-off-by: Michal Marek
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

07 Apr, 2015

1 commit


25 Nov, 2014

1 commit


08 Nov, 2014

1 commit

  • Since Linux 3.18-rc1, Kbuild is able to handle multi-objs
    dependency correctly, which also allows us futher cleanups
    of some makefiles.

    This commit imports those commits:

    [1] commit c8589d1e9e01 by Masahiro Yamada
    kbuild: handle multi-objs dependency appropriately

    [2] commit 97e3226e6e98 by Masahiro Yamada
    kbuild: handle the dependency of multi-objs hostprogs appropriately

    [3] commit 022af62d0190 by Masahiro Yamada
    kbuild: refactor script/kconfig/Makefile

    [4] commit 221ecca6cafe by Masahiro Yamada
    kbuild: remove redundant clean-files from scripts/kconfig/Makefile

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

21 Jun, 2014

2 commits


20 Jun, 2014

1 commit


06 Jun, 2014

1 commit


18 Apr, 2014

1 commit

  • This commit imports Kbuild-related updates
    from v3.14 to v3.15-rc1.

    - commit 3d3d6b8474204b6819688c9800774d52d370a538
    kbuild: LLVMLinux: Adapt warnings for compilation with clang
    - commit 61163efae02040f66a95c8ed17f4407951ba58fa
    kbuild: LLVMLinux: Add Kbuild support for building kernel with Clang
    - commit 79192ca8ebd9a25c583aa46024a250fef1e7766f
    scripts: objdiff: detect object code changes between two commits
    - commit 1c9e70a55b088d97a59241744fe459409d0c3582
    kbuild: create a build directory automatically for out-of-tree build
    - commit a03fcb50e816a69acffb13b5e56db75063aeba8a
    kbuild: remove redundant '.*.cmd' pattern from make distclean
    - commit 13338935f1574a2dcd1c891461b0dcc42f8cff42
    kbuild: move "quote" to Kbuild.include to be consistent
    - commit bfdfaeae500a3b194b73b01e92a8034791a58b7f
    kbuild: specify build_docproc as a phony target
    - commit f4d4ffc03efc864645b990e1d579bbe1b8e358a4
    kbuild: dtbs_install: new make target
    - commit 1e64ff42ea3d8d2fc8aa71f9717b3c1cb6c2f893
    Kbuild, lto: Disable LTO for asm-offsets.c
    - commit ccbef1674a1579842c7dbdf554efca85d2cd245a
    Kbuild, lto: add ld-version and ld-ifversion macros
    - commit ae63b2d7bdd9bd66b88843be0daf8e37d8f0b574
    scripts/tags.sh: Ignore *.mod.c
    - commit e36aaea28972c57a32a3ba5365e61633739719b9
    kbuild: Fix silent builds with make-4

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

07 Mar, 2014

1 commit

  • 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: Masahiro Yamada
    Reported-by: Simon Glass
    Acked-by: Simon Glass
    Tested-by: Simon Glass [on Sandbox]
    Tested-by: Stephen Warren [on Tegra]

    Masahiro Yamada
     

20 Feb, 2014

2 commits

  • Unlike Linux Kernel, U-Boot historically had *.dts files under
    board/$(VENDOR)/dts/ and *.dtsi files under arch/$(ARCH)/dts/.

    I think arch/$(ARCH)/dts dicretory is a better location
    to store both *.dts and *.dtsi files.

    For example, before this commit, board/xilinx/dts directory
    had both Microblaze dts (microblaze-generic.dts) and
    ARM dts (zynq-*.dts), which are totally unrelated.

    This commit moves *.dts to arch/$(ARCH)/dts/ directories,
    allowing us to describe nicely mutiple DTBs generation in the next commit.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Useful rules in scripts/Makefile.lib allows us to easily
    generate a device tree blob and wrap it in assembly code.

    We do not need to parse a linker script to get output format and arch.

    This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada