15 Feb, 2017

1 commit


15 Jul, 2016

1 commit


23 May, 2016

1 commit

  • OF_LIST can't remain empty that's why setup it up to default DTB.

    If it is empty u-boot.img is created without FDT partition:
    For example:
    ./tools/mkimage -f auto -A arm -T firmware -C none -O u-boot -a
    0x8000000 -e 0 -n "U-Boot 2016.05-rc3 ..." -E -b -d u-boot-nodtb.bin u-boot.img
    Can't set 'timestamp' property for '' node (FDT_ERR_NOSPACE)
    FIT description: Firmware image with one or more FDT blobs
    Created: Wed May 4 15:02:52 2016
    Image 0 (firmware@1)
    Description: U-Boot 2016.05-rc3-00080-gff2e12ae22a8-dirty for zynqmp
    board
    Created: Wed May 4 15:02:52 2016
    Type: Firmware
    Compression: uncompressed
    Data Size: unavailable
    Architecture: ARM
    Load Address: 0x08000000
    Default Configuration: 'conf@1'
    Configuration 0 (conf@1)
    Description: unavailable
    Kernel: unavailable

    And then image like this doesn't contain description and link to FDT and
    can't boot.

    Signed-off-by: Michal Simek
    Reviewed-by: Tom Rini

    Michal Simek
     

15 Mar, 2016

2 commits


25 Feb, 2016

1 commit

  • These two properties are necessary for SPL to get clocks from DT.

    Note:
    For now, only clock look-up by index is supported (clk_get_by_index()
    function), so "clock-names" is never parsed in U-Boot. However, we
    may want to support something like clk_get_by_name() in the future,
    so let's keep "clock-names" as well as "clocks".

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

25 Jan, 2016

1 commit

  • This reverts commit 67871a595873930a0a536b1685e5caac53766701.

    Since that commit, out-of-tree cleaning emits lots of warnings.

    $ make O=foo clean
    make[1]: Entering directory `/home/masahiro/workspace/u-boot/foo'
    ../dts/../arch/arm/dts/Makefile:209: warning: overriding commands for target `dtbs'
    ../dts/../arch/arc/dts/Makefile:15: warning: ignoring old commands for target `dtbs'
    ../dts/../arch/microblaze/dts/Makefile:13: warning: overriding commands for target `dtbs'
    ../dts/../arch/arm/dts/Makefile:209: warning: ignoring old commands for target `dtbs'
    ../dts/../arch/mips/dts/Makefile:14: warning: overriding commands for target `dtbs'
    ../dts/../arch/microblaze/dts/Makefile:13: warning: ignoring old commands for target `dtbs'
    ../dts/../arch/nios2/dts/Makefile:13: warning: overriding commands for target `dtbs'
    ../dts/../arch/mips/dts/Makefile:14: warning: ignoring old commands for target `dtbs'
    ../dts/../arch/powerpc/dts/Makefile:13: warning: overriding commands for target `dtbs'
    ../dts/../arch/nios2/dts/Makefile:13: warning: ignoring old commands for target `dtbs'
    ../dts/../arch/sandbox/dts/Makefile:14: warning: overriding commands for target `dtbs'
    ../dts/../arch/powerpc/dts/Makefile:13: warning: ignoring old commands for target `dtbs'
    ../dts/../arch/x86/dts/Makefile:22: warning: overriding commands for target `dtbs'
    ../dts/../arch/sandbox/dts/Makefile:14: warning: ignoring old commands for target `dtbs'
    make[1]: Leaving directory `/home/masahiro/workspace/u-boot/foo'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

23 Jan, 2016

1 commit


17 Jan, 2016

1 commit


03 Oct, 2015

1 commit


17 Sep, 2015

1 commit


31 Aug, 2015

1 commit


19 Aug, 2015

1 commit

  • As we discussed a couple of times, negative CONFIG options make our
    life difficult; CONFIG_SYS_NO_FLASH, CONFIG_SYS_DCACHE_OFF, ...
    and here is another one.

    Now, there are three boards enabling OF_CONTROL on SPL:
    - socfpga_arria5_defconfig
    - socfpga_cyclone5_defconfig
    - socfpga_socrates_defconfig

    This commit adds CONFIG_SPL_OF_CONTROL for them and deletes
    CONFIG_SPL_DISABLE_OF_CONTROL from the other boards to invert
    the logic.

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

    Masahiro Yamada
     

22 Jul, 2015

1 commit

  • The SPL device tree size must be minimised to save memory. Only include
    properties that are needed by SPL - this is determined by the presence
    of the "u-boot,dm-pre-reloc" property. Also remove a predefined list of
    unused properties from the nodes that remain.

    Signed-off-by: Simon Glass

    Simon Glass
     

23 Apr, 2015

1 commit


25 Feb, 2015

1 commit


28 Oct, 2014

1 commit


25 Sep, 2014

2 commits

  • This option specifies the default Device Tree used for the run-time
    configuration of U-Boot.

    Signed-off-by: Masahiro Yamada
    Cc: Simon Glass
    Cc: Stephen Warren
    Cc: Minkyu Kang
    Cc: Michal Simek

    Masahiro Yamada
     
  • This commit moves:
    CONFIG_OF_CONTROL
    CONFIG_OF_SEPARATE
    CONFIG_OF_EMBED
    CONFIG_OF_HOSTFILE

    Because these options are currently not supported for SPL,
    the "Device Tree Control" menu does not appear in the SPL
    configuration.

    Note:
    zynq-common.h should be adjusted so as not to change the
    default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass
    Cc: Stephen Warren
    Cc: Minkyu Kang
    Acked-by: Michal Simek

    Masahiro Yamada
     

19 Jun, 2014

1 commit


12 Jun, 2014

1 commit

  • In some cases, an externally-built device tree binary is required to be
    attached to U-Boot. An example is when using image signing, since in that
    case the .dtb file must include the public keys.

    Add a DEV_TREE_BIN option to the Makefile, and update the documentation.

    Usage is something like:

    make DEV_TREE_BIN=boot/am335x-boneblack-pubkey.dtb

    Signed-off-by: Simon Glass

    Simon Glass
     

06 Jun, 2014

1 commit


29 Mar, 2014

1 commit


20 Feb, 2014

6 commits

  • It is convenient to have all device trees on the same SoC compiled.
    It allows for later easy repackaging without the need to re-run
    the make file.

    - Build device trees with the same SoC under arch/$(ARCH)/dts

    - Copy the one specified by CONFIG_DEFAULT_DEVICE_TREE or
    DEVICE_TREE=... to dts/dt.dtb

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • 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
     
  • This commit refactors cleaning targets such as
    clean, clobber, mrpropper, distclean
    with scripts/Makefile.clean.

    By using scripts/Makefile.clean, we can recursively descend
    into subdirectories and delete generated files there.

    We do not need add a big list of generated files
    to the "clean" target.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • 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: Masahiro Yamada
    Tested-by: Gerhard Sittig

    Masahiro Yamada
     
  • 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 " 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="
    syntax for descending into sub-directories.
    (We can write it like "make $(obj)=" with a shorthand.)
    This means the current working directory is always the top
    of the output directory.

    Signed-off-by: Masahiro Yamada
    Tested-by: Gerhard Sittig

    Masahiro Yamada
     

13 Dec, 2013

1 commit

  • Some editors such as Emacs can highlight source files.
    But their parser algorithm is not perfect.

    If you use one double-quotation alone, some editor cannot
    handle it nicely and mark source lines as a string by mistake.

    It is preferable to use two double-quotations as a pair.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

01 Nov, 2013

1 commit


03 Aug, 2013

5 commits

  • This brings U-Boot's cpp invocation into line with the way the Linux
    kernel invokes cpp on device trees. Consistency will be useful to ensure
    *.dts is portable between the two.

    -undef also has the added advantage of not defining "linux", so DT
    property names such as "linux,keymap" don't get mangled.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     
  • Recent dtc supports #line directives in the input source code, and even
    uses them to generate useful line numbers in any messages it emits. Stop
    passing -P to cpp, since there's no need any more.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     
  • Now that nothing uses the defines ARCH_CPU_DTS, BOARD_DTS, stop defining
    them.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     
  • *.dts may use #include (via cpp) or /include/ (via dtc; assuming a newer
    dtc). The choice is up to the creator of the DT. Create a common variable
    DTC_INCDIRS that lists the paths searched by include statements, and
    update cpp and dtc invocation to use them.

    For cpp, also specify -nostdinc to ensure the same set of paths is
    available to both type of include statement.

    For dtc, create a new DTC_FLAGS variable to hold all the flags passed to
    dtc.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     
  • The invocation of dtc is significantly more complex that it could be,
    in order to work around an issue on old versions of dtc, which print
    a message to stdout every time they run.

    Remove this workaround, on the assumption that people have or will
    upgrade to a newer version of dtc. This simplifies the build rule
    significantly.

    Related, split the invocation of cpp and dtc into separate commands
    rather than a pipeline, so that if either fail, it is detected. This has
    the nice benefit of saving off the result of the pre-processing step,
    allowing it to be easily inspected.

    Assuming a new enough dtc (which an earlier patch enforces), dtc will
    parse #line directives in its input file, and generate correct file and
    line numbers in error messages, even though cpp is unconditionally
    applied to its input file.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     

24 Jul, 2013

1 commit


03 Apr, 2013

1 commit


15 Mar, 2013

1 commit


08 Feb, 2013

1 commit

  • Using "-ansi" preprocessor option will cause dts lines that begin with
    '#' to choke the preprocessor. Change to "-x assembler-with-cpp"
    instead which is what the kernel uses to preprocess dts files.

    Signed-off-by: Allen Martin
    Reviewed-by: Stephen Warren
    Acked-by: Simon Glass

    Allen Martin