08 Feb, 2016

3 commits


06 Feb, 2016

1 commit

  • Correct spelling of "U-Boot" shall be used in all written text
    (documentation, comments in source files etc.).

    Signed-off-by: Bin Meng
    Reviewed-by: Heiko Schocher
    Reviewed-by: Simon Glass
    Reviewed-by: Minkyu Kang

    Bin Meng
     

02 Feb, 2016

2 commits

  • We don't need the -dtb suffix anymore, so drop it.

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

    Simon Glass
     
  • At present u-boot-spl.bin holds the plain SPL binary without the device
    tree. This is somewhat annoying since you need either u-boot-spl.bin or
    u-boot-spl-dtb.bin depending on whether device tree is used.

    Adjust the build such that u-boot-spl.bin includes a device tree
    (if enabled), and the plain binary is in u-boot-spl-nodtb.bin. For now
    u-boot-spl-dtb.bin remains the same.

    Tested-by: Stephen Warren
    Reviewed-by: Stephen Warren
    Signed-off-by: Simon Glass

    Simon Glass
     

30 Jan, 2016

1 commit


25 Jan, 2016

2 commits

  • Adapted from:

    >From 5631d9c429857194bd55d7bcd8fa5bdd1a9899a3 Mon Sep 17 00:00:00 2001
    From: Michal Marek
    Date: Wed, 19 Aug 2015 17:36:41 +0200
    Subject: [PATCH 1/1] kbuild: Fix clang detection

    We cannot detect clang before including the arch Makefile, because that
    can set the default cross compiler. We also cannot detect clang after
    including the arch Makefile, because powerpc wants to know about clang.
    Solve this by using an deferred variable. This costs us a few shell
    invocations, but this is only a constant number.

    Reported-by: Behan Webster
    Reported-by: Anton Blanchard
    Signed-off-by: Michal Marek

    in the Linux kernel.

    This will allow us to make better decisions about when to run tests
    later on for gcc features.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • There are a lot of unrelated files in common, including all of the commands.
    Moving them into their own directory makes them easier to find and is more
    logical.

    Some commands include non-command code, such as cmd_scsi.c. This should be
    sorted out at some point so that the function can be enabled with or without
    the associated command.

    Unfortunately, with m68k I get this error:

    m68k: + M5329AFEE
    +arch/m68k/cpu/mcf532x/start.o: In function `_start':
    +arch/m68k/cpu/mcf532x/start.S:159:(.text+0x452): relocation truncated to fit: R_68K_PC16 against symbol `board_init_f' defined in .text.board_init_f section in common/built-in.o

    I hope someone can shed some light on what this means. I hope it isn't
    depending on the position of code in the image.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng
    Reviewed-by: Heiko Schocher
    Acked-by: Stefan Roese
    Acked-by: Przemyslaw Marczak

    Simon Glass
     

19 Jan, 2016

2 commits


15 Jan, 2016

1 commit


08 Jan, 2016

1 commit


05 Jan, 2016

1 commit

  • using checkpatch with Perl 5.22.0 generates a warning,
    this is fixed in linux through commit:

    commit 4e5d56bdf892e18832a6540b63ebf709966bce2a
    Author: Eddie Kovsky
    Date: Wed Sep 9 15:37:52 2015 -0700

    checkpatch: fix left brace warning

    Using checkpatch.pl with Perl 5.22.0 generates the following warning:

    Unescaped left brace in regex is deprecated, passed through in regex;

    This patch fixes the warnings by escaping occurrences of the left brace
    inside the regular expression.

    Adapt it for U-Boot.

    Signed-off-by: Heiko Schocher

    Heiko Schocher
     

19 Nov, 2015

1 commit

  • Add a build target to generate 'boot.bin' which includes SPL. This is
    used by the platforms BootROM to load SPL directly.

    This change also conditionally changes what the 'boot.bin' target
    generates depending on the SoC. Leaving the behaviour unchanged for the
    AT91 targets.

    Signed-off-by: Nathan Rossi
    Signed-off-by: Michal Simek
    Cc: Tom Rini
    Cc: Andreas Bießmann
    Cc: Heiko Schocher
    Reviewed-by: Tom Rini

    Nathan Rossi
     

13 Nov, 2015

2 commits

  • CONFIG_OF_EMBED=y is the option which is here only for testing purpose
    and shouldn't be enabled by default as is describe at:
    "dts: Add a comment about CONFIG_OF_EMBED being for local use"
    (sha1: 3d3f60cb7a6bb6c338e00a9769fa918a8536096c)

    But still enabling this option locally shouldn't end up with compilation
    error when you build SPL. This patch fix it.

    Compilation error:
    lib/built-in.o: In function `fdtdec_setup':
    /mnt/disk/u-boot/lib/fdtdec.c:1246: undefined reference to
    `__dtb_dt_begin'

    Signed-off-by: Michal Simek
    Reported-by: Tom Rini
    Reviewed-by: Tom Rini
    Reviewed-by: Simon Glass

    Michal Simek
     
  • Looks like one spot got missed. Probably due to the backslash.

    Signed-off-by: Andy Fleming

    Andy Fleming
     

10 Nov, 2015

1 commit

  • After consulting with some of the SPDX team, the conclusion is that
    Makefiles are worth adding SPDX-License-Identifier tags too, and most of
    ours have one. This adds tags to ones that lack them and converts a few
    that had full (or in one case, very partial) license blobs into the
    equivalent tag.

    Cc: Kate Stewart
    Signed-off-by: Tom Rini

    Tom Rini
     

04 Nov, 2015

1 commit


25 Oct, 2015

1 commit

  • This function will be used by both SPL and U-Boot proper. So move it into
    a common place. Also change the #ifdef so that the early malloc() area is
    not set up in SPL if CONFIG_SYS_SPL_MALLOC_START is defined. In that case
    it would never actually be used, and just chews up stack space.

    Signed-off-by: Simon Glass

    Simon Glass
     

16 Sep, 2015

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
     

19 Aug, 2015

7 commits

  • We have flipped CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing
    devices, $(SPL_) and CONFIG_IS_ENABLED(), so we are ready to clear
    away the ugly logic in include/fdtdec.h:

    #ifdef CONFIG_OF_CONTROL
    # if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL)
    # define OF_CONTROL 0
    # else
    # define OF_CONTROL 1
    # endif
    #else
    # define OF_CONTROL 0
    #endif

    Now CONFIG_IS_ENABLED(OF_CONTROL) is the substitute. It refers to
    CONFIG_OF_CONTROL for U-boot proper and CONFIG_SPL_OF_CONTROL for
    SPL.

    Also, we no longer have to cancel CONFIG_OF_CONTROL in
    include/config_uncmd_spl.h and scripts/Makefile.spl.

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

    Masahiro Yamada
     
  • 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
     
  • We do not want to compile the DM remove code for SPL. Currently,
    we undef it in include/config_uncmd_spl.h (for C files) and in
    scripts/Makefile.uncmd_spl (for Makefiles). This is really ugly.

    This commit demonstrates how we can deprecate those two files.

    Use $(SPL_) for the entry in the Makfile and CONFIG_IS_ENABLED()
    in C files.

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

    Masahiro Yamada
     
  • Just preparing for upcoming cleaning.

    The board-specific linker script board/vpac270/u-boot-spl.lds
    has been touched to avoid build error. It does not change the
    size of spl/u-boot-spl.bin for this board, so it should be OK.

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

    Masahiro Yamada
     
  • The previous commit introduced a useful macro used in makefiles,
    in order to reference to different variables (CONFIG_... or
    CONFIG_SPL_...) depending on the build context.

    Per-image config option control is a PITA in C sources, too.
    Here are some macros useful in C/CPP expressions.

    CONFIG_IS_ENABLED(FOO) can be used as a shorthand for

    (!defined(CONFIG_SPL_BUILD) && defined(CONFIG_FOO)) || \
    (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_FOO))

    For example, it is useful to describe C code as follows,

    #if CONFIG_IS_ENABLED(OF_CONTROL)
    (device tree code)
    #else
    (board file code)
    #endif

    The ifdef conditional above is switched by CONFIG_OF_CONTROL during
    the U-Boot proper building (CONFIG_SPL_BUILD is not defined), and by
    CONFIG_SPL_OF_CONTROL during SPL building (CONFIG_SPL_BUILD is
    defined).

    The macro can be used in C context as well, so you can also write the
    equivalent code as follows:

    if (CONFIG_IS_ENABLED(OF_CONTROL)) {
    (device tree code)
    } else {
    (board file code)
    }

    Another useful macro is CONFIG_VALUE().
    CONFIG_VALUE(FOO) is expanded into CONFIG_FOO if CONFIG_SPL_BUILD is
    undefined, and into CONFIG_SPL_FOO if CONFIG_SPL_BUILD is defined.

    You can write as follows:

    text_base = CONFIG_VALUE(TEXT_BASE);

    instead of:

    #ifdef CONFIG_SPL_BUILD
    text_base = CONFIG_SPL_TEXT_BASE;
    #else
    text_base = CONFIG_TEXT_BASE;
    #endif

    This commit also adds slight hacking on fixdep so that it can
    output a correct list of fixed dependencies.

    If the fixdep finds CONFIG_IS_ENABLED(FOO) in a source file,
    we want
    $(wildcard include/config/foo.h)
    in the U-boot proper building context, while we want
    $(wildcard include/config/spl/foo.h)
    in the SPL build context.

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

    Masahiro Yamada
     
  • Commit e02ee2548afe ("kconfig: switch to single .config
    configuration") made the configuration itself pretty simple,
    instead, we lost the way to systematically enable/disable config
    options for each image independently.

    Our current strategy is, put entries into Makefile.spl for options
    we need separate enabling, or once enable the options globally in
    Kconfig and then undef them in Makefile.uncmd_spl if we do not want
    to compile the features for SPL at all. Things are getting really
    messy. Besides, "ifdef CONFIG_SPL_BUILD" are sprinkled everywhere
    in makefiles.

    This commit adds a variable to help describe makefile simpler.

    $(SPL_) evaluates to "SPL_" during the SPL build, while to an empty
    string during building U-boot proper.

    So, you can write

    obj-$(CONFIG_$(SPL_)FOO) += foo.o

    instead of

    ifdef CONFIG_SPL_BUILD
    obj-$(CONFIG_SPL_FOO) += foo.o
    else
    obj-$(CONFIG_FOO) += foo.o
    endif

    If CONFIG_SPL_FOO does not exist in Kconfig, it is equivalent to

    ifndef CONFIG_SPL_BUILD
    obj-$(CONFIG_SPL_FOO) += foo.o
    endif

    This is the pattern we often see in our current makefiles.

    To take advantage of this macro, we should prefix SPL_ for the SPL
    version of the option when we need independent control between
    U-boot and SPL. With this naming scheme, I hope our makefiles will
    be much simplified.

    It means we want to rename existing config options as follows
    in the long run:

    CONFIG_SPL_SERIAL_SUPPORT -> CONFIG_SPL_SERIAL
    CONFIG_SPL_I2C_SUPPORT -> CONFIG_SPL_I2C
    CONFIG_SPL_GPIO_SUPPORT -> CONFIG_SPL_GPIO
    CONFIG_SPL_SPI_SUPPORT -> CONFIG_SPL_SPI
    CONFIG_SPL_DISABLE_OF_CONTROL -> CONFIG_SPL_OF_CONTROL
    (inverting the logic)

    Then drivers/Makefile would be re-worked as follows:

    obj-$(CONFIG_$(SPL_)SERIAL) += serial/
    obj-$(CONFIG_$(SPL_)I2C) += i2c/
    obj-$(CONFIG_$(SPL_)GPIO) += gpio/
    obj-$(CONFIG_$(SPL_)SPI) += spi/
    ...

    Eventually, SPL-specialized entries in Makefile.spl would go away.

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

    Masahiro Yamada
     
  • If the target string matches "CONFIG_", move the pointer p
    forward. This saves several 7-chars adjustments.

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

    Masahiro Yamada
     

08 Aug, 2015

2 commits

  • Add build target for generating boot partition images recognised by
    the SoCFPGA BootROM. The SoCFPGA BootROM expects four copies of the
    u-boot-spl-dtb.sfp at the beginning of boot partition. Those are
    u-boot-spl-dtb.bin augmented by a header with which the BootROM can
    work. The u-boot-dtb.img uImage is appended to this to produce a
    full boot partition image, the u-boot-with-spl-dtb.sfp . This is
    the name of the final target.

    Signed-off-by: Marek Vasut

    Marek Vasut
     
  • This patch enables the SDRAM controller that is used on Altera's SoCFPGA
    family. This patch configures the SDRAM controller based on a configuration
    file that is generated from the Quartus tool, sdram_config.h.

    Signed-off-by: Dinh Nguyen

    Dinh Nguyen
     

05 Aug, 2015

1 commit


28 Jul, 2015

3 commits

  • The symbolic link to SoC/CPU specific header directory is created
    during the build, while it is only necessary for ARM, AVR32, SPARC,
    x86, and some CPUs of PowerPC. For the other architectures, it just
    results in a broken symbolic link.

    Introduce CONFIG_CREATE_ARCH_SYMLINK to not create unneeded symbolic
    links.

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

    Masahiro Yamada
     
  • 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
     
  • Update the files under scripts/kconfig/ to match Linux 4.1.
    Some Kconfig sources have diverged from those in the kernel,
    so commit-base syncing was done not to lose U-Boot specific updates.

    The commits cherry-picked from Linux are:

    [1] commit be8af2d54a66911693eddc556e4f7a866670082b
    Author: Bjørn Forsman
    kconfig/lxdialog: get ncurses CFLAGS with pkg-config

    [2] commit 3943f42c11896ce82ad3da132c8a5630313bdd0e
    Author: Andrey Utkin
    Replace mentions of "list_struct" to "list_head"

    [3] commit e4e458b45c5861808674eebfea94cee2258bb2ea
    Author: Arjun Sreedharan
    calloc/xcalloc: Fix argument order

    [4] commit 09950bc256e3628d275f90e016e6f5a039fbdcab
    Author: Olof Johansson
    merge_config.sh: Display usage if given too few arguments

    [5] commit b6a2ab2cd4739a9573ed41677e53171987b8da34
    Author: Colin Ian King
    kconfig: use va_end to match corresponding va_start

    [6] commit 70529b1a1784503169416df19ce3d68746401340
    Author: Michal Marek
    kconfig: Get rid of the P() macro in headers

    [7] commit 463157444e377bf9b279101b1f16a94c4648c03a
    Author: Michal Marek
    kconfig: Remove dead code

    [8] commit ad8d40cda3ad22ad9e8863d55a5c88f85c0173f0
    Author: Michal Marek
    kconfig: Remove unnecessary prototypes from headers

    [9] commit de4619937229378e81f95e99c9866acc8e207d34
    Author: Masahiro Yamada
    kbuild: mergeconfig: fix "jobserver unavailable" warning

    [10] commit b9fe99c5b994c6ddc57780993966b18899526c0b
    Author: Masahiro Yamada
    kbuild: mergeconfig: move an error check to merge_config.sh

    [11] commit 371cfd4ff0611d8bc5d18bbb9cc6a2bc3d56cd3d
    Author: Masahiro Yamada
    kbuild: mergeconfig: remove redundant $(objtree)

    [12] commit 3a975b8cfcbe026b535f83bde9a3c009bae214f9
    Author: Masahiro Yamada
    merge_config.sh: improve indentation

    [13] commit bc8f8f5fc47cd02c2c5f3580dac2fe6695af1edd
    Author: Masahiro Yamada
    merge_config.sh: rename MAKE to RUNMAKE

    [14] commit 63a91033d52e64a22e571fe84924c0b7f21c280d
    Author: Masahiro Yamada
    kbuild: add generic mergeconfig target, %.config

    [15] commit 1cba0c305758c3c1786ecaceb03e142c95a4edc9
    Author: Michal Marek
    kconfig: Simplify Makefile

    [16] commit 0a1f00a1c86421cc07cec87011c7cf4df68ee54b
    Author: Michal Marek
    kconfig: Do not print status messages in make -s mode

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Bjørn Forsman
    Signed-off-by: Andrey Utkin
    Signed-off-by: Jiri Kosina
    Signed-off-by: Arjun Sreedharan
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: Olof Johansson
    Signed-off-by: Colin Ian King
    Signed-off-by: Michal Marek

    Masahiro Yamada
     

23 Jul, 2015

3 commits

  • Tom Rini
     
  • This patch adds the DDR3 setup and training code taken from the Marvell
    U-Boot repository. This code used to be included as a binary (bin_hdr)
    into the Armada A38x boot image. Not linked with the main U-Boot. With this
    code addition and the serdes/PHY setup code, the Armada A38x support
    in mainline U-Boot is finally self-contained. So the complete image
    for booting can be built from mainline U-Boot. Without any additional
    external inclusion.

    Note:
    This code has undergone many hours (days!) of coding-style cleanup and
    refactoring. It still is not checkpatch clean though, I'm afraid. As the
    factoring of the code has so many levels of indentation that many lines
    are longer than 80 chars.

    Signed-off-by: Stefan Roese

    Stefan Roese
     
  • With the upcoming addition of the Armada 38x DDR support, which is not
    compatible to the Armada XP DDR init code, we need to introduce a new
    directory infrastructure. To support multiple Marvell DDR controller.

    This will be the new structure:

    drivers/ddr/marvell/axp
    Supporting Armada XP (AXP) devices (and perhaps Armada 370)

    drivers/ddr/marvell/a38x
    Supporting Armada 38x devices (and perhaps Armada 39x)

    Signed-off-by: Stefan Roese

    Stefan Roese
     

22 Jul, 2015

2 commits

  • Clocks are an important feature of platforms and have become increasing
    complex with time. Most modern SoCs have multiple PLLs and dozens of clock
    dividers which distribute clocks to on-chip peripherals.

    Some SoC implementations have a clock API which is private to that SoC family,
    e.g. Tegra and Exynos. This is useful but it would be better to have a
    common API that can be understood and used throughout U-Boot.

    Add a simple clock API as a starting point. It supports querying and setting
    the rate of a clock. Each clock is a device. To reduce memory and processing
    overhead the concept of peripheral clocks is provided. These do not need to
    be explicit devices - it is possible to write a driver that can adjust the
    I2C clock (for example) without an explicit I2C clock device. This can
    dramatically reduce the number of devices (and associated overhead) in a
    complex SoC.

    Clocks are referenced by a number, and it is expected that SoCs will define
    that numbering themselves via an enum.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • Add support for a driver which sets up DRAM and can return information about
    the amount of RAM available. This is a first step towards moving RAM init
    to driver model.

    Signed-off-by: Simon Glass

    Simon Glass