13 Dec, 2017

27 commits

  • Texas Instrument's TPS65910 PMIC contains 3 buck DC-DC converts, one
    boost DC-DC converter and 8 LDOs. This patch implements driver model
    support for the TPS65910 PMIC and its regulators making the get/set
    API for regulator value/enable available.
    This patch depends on the patch "am33xx: Add a function to query MPU
    voltage in uV" to build correctly. For boards relying on the DT
    include file tps65910.dtsi the v3 patch "power: extend prefix match
    to regulator-name property" and an appropriate regulator naming is
    also required.

    Signed-off-by: Felix Brack
    Reviewed-by: Simon Glass

    Felix Brack
     
  • This patch changes the calls to uclass_first/next_device() in blk_first/
    next_device() to use uclass_find_first/next_device() instead. These functions
    don't prepare the devices, which is correct in this case.

    With this patch applied, the "usb storage" command now works again as
    expected:

    => usb storage
    Device 0: Vendor: SanDisk Rev: 1.00 Prod: Ultra
    Type: Removable Hard Disk
    Capacity: 58656.0 MB = 57.2 GB (120127488 x 512)

    Without this patch, it used to generate this buggy output:

    => usb storage
    Card did not respond to voltage select!
    mmc_init: -95, time 26
    No storage devices, perhaps not 'usb start'ed..?

    Signed-off-by: Stefan Roese
    Suggested-by: Simon Glass
    Cc: Simon Glass
    Cc: Bin Meng
    Reviewed-by: Bin Meng
    Reviewed-by: Simon Glass

    Stefan Roese
     
  • This patch extends pmic_bind_children prefix matching. In addition to
    the node name the property regulator-name is used while trying to match
    prefixes. This allows assigning different drivers to regulator nodes
    named regulator@1 and regulator@10 for example.
    I have discarded the idea of using other properties then regulator-name
    as I do not see any benefit in using property compatible or even
    regulator-compatible. Of course I am open to change this if there are
    good reasons to do so.

    Signed-off-by: Felix Brack
    Reviewed-by: Simon Glass

    Felix Brack
     
  • The DM version of do_reset has been issuing a warm-reset, which (on
    some platforms keeps GPIOs and other parts of the platform active).
    This may cause unintended behaviour, as calling do_reset usually
    indicates a desire to reset the board/platform and not just the CPU.

    This changes do_reset to always request a COLD reset.
    Note that programmatic uses can still invoke a WARM reset through
    reset_cpu() or using sysreset_walk().

    Signed-off-by: Philipp Tomsich
    Reviewed-by: Simon Glass

    Philipp Tomsich
     
  • 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: Simon Glass

    Simon Glass
     
  • Add this feature to the README.

    Signed-off-by: Simon Glass
    Reviewed-by: Lukasz Majewski

    Simon Glass
     
  • SPL supports reading U-Boot from a RAM location. At present this is
    hard-coded to the U-Boot text base address. Use binman to allow this to
    come from the image file, if binman is used.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • Allow SPL to access binman symbols and use this to get the address of
    U-Boot. This falls back to CONFIG_SYS_TEXT_BASE if the binman symbol
    is not available.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This area of the image contains symbols whose values are filled in by
    binman. If this feature is not used, the table is empty.

    Add this to the ARM SPL link script.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • Binman construct images consisting of multiple binary files. These files
    sometimes need to know (at run timme) where their peers are located. For
    example, SPL may want to know where U-Boot is located in the image, so
    that it can jump to U-Boot correctly on boot.

    In general the positions where the binaries end up after binman has
    finished packing them cannot be known at compile time. One reason for
    this is that binman does not know the size of the binaries until
    everything is compiled, linked and converted to binaries with objcopy.

    To make this work, we add a feature to binman which checks each binary
    for symbol names starting with '_binman'. These are then decoded to figure
    out which entry and property they refer to. Then binman writes the value
    of this symbol into the appropriate binary. With this, the symbol will
    have the correct value at run time.

    Macros are used to make this easier to use. As an example, this declares
    a symbol that will access the 'u-boot-spl' entry to find the 'pos' value
    (i.e. the position of SPL in the image):

    binman_sym_declare(unsigned long, u_boot_spl, pos);

    This converts to a symbol called '_binman_u_boot_spl_prop_pos' in any
    binary that includes it. Binman then updates the value in that binary,
    ensuring that it can be accessed at runtime with:

    ulong u_boot_pos = binman_sym(ulong, u_boot_spl, pos);

    This assigns the variable u_boot_pos to the position of SPL in the image.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • The elf module can provide some debugging information to assist with
    figuring out what is going wrong. This is also useful in tests. Update the
    -D option so that it is passed through to tests as well.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This is only 3 bytes long which is not enough to hold two symbol values,
    needed to test the binman symbols feature. Increase it to 15 bytes.

    Using very small regions is useful since we can easily compare them in
    tests and errors are fairly easy to diagnose.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • For testing we need to build some ELF files containing binman symbols. Add
    these to the Makefile and check in the binaries:

    u_boot_binman_syms - normal, valid ELF file
    u_boot_binman_syms_bad - missing the __image_copy_start symbol
    u_boot_binman_syms_size - has a binman symbol with an invalid size

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This feature is now supported. Drop the incorrect comment.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This file contains SPL image without a device tree. Add support for
    including this in images.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This file contains the SPL device tree. Add support for including this by
    itself in images.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • In some cases we need to read symbols from U-Boot. At present we have a
    a few cases which does this via 'nm' and 'grep'.

    It is better to use objdump since that tells us the size of the symbols
    and also whether it is weak or not.

    Add a new module which reads ELF information from files. Update existing
    uses of 'nm' to use this module.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • This symbol enables some library code used by various SATA drivers,
    so make this a non-user-visible symbol select'ed by the respective
    drivers, and let moveconfig handle the rest.

    Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • And use 'imply' liberally.

    Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • Use 'imply' here liberally to avoid the combinatorial explosion of
    defconfig changes in the PowerPC boards.

    Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • Use 'imply' here liberally to avoid the combinatorial explosion of
    defconfig changes in the PowerPC boards.

    Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • The last user of this driver went away in August 2015 in commit:
    b6073fd2115 ("arm: Remove mx51_efikamx, mx51_efikasb boards")

    Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     
  • The last user of this driver went away in June 2017, in commit:
    98f705c9ce ("powerpc: remove 4xx support")

    Signed-off-by: Tuomas Tynkkynen

    Tuomas Tynkkynen
     

12 Dec, 2017

4 commits


11 Dec, 2017

9 commits

  • It is tedious to define both mask and bit-shift.
    provides a convenient way to get access to register fields with a
    single shifted mask.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Use DIV_ROUND_CLOSEST(). To make the JK value even more precise,
    I used a bigger coefficient, then divide it by 512.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Commit 682e09ff9f35 ("ARM: uniphier: add PLL init code for LD20 SoC")
    missed to write the computed value to the SSCPLLCTRL2 register.

    Fixes: 682e09ff9f35 ("ARM: uniphier: add PLL init code for LD20 SoC")
    Signed-off-by: Dai Okamura
    Signed-off-by: Masahiro Yamada

    Dai Okamura
     
  • denali.c has no driver entry in itself. It makes sense only when
    compiled together with denali_dt.c

    Let NAND_DENALI_DT select NAND_DENALI, and hide NAND_DENALI from
    the Kconfig menu.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Fix the link error for the combination of
    CONFIG_ARCH_UNIPHIER_LD11=n
    CONFIG_ARCH_UNIPHIER_LD20=n
    CONFIG_ARCH_UNIPHIER_PXS3=y

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Synopsys HSDK clock controller generates and supplies clocks to various
    controllers and peripherals within the SoC.

    Each clock has assigned identifier and client device tree nodes can use
    this identifier to specify the clock which they consume. All available
    clocks are defined as preprocessor macros in the
    dt-bindings/clock/snps,hsdk-cgu.h header and can be used in device
    tree sources.

    Signed-off-by: Eugeniy Paltsev
    Signed-off-by: Alexey Brodkin

    Eugeniy Paltsev
     
  • dcache_exists, icache_exists, slc_exists and ioc_exists global
    variables in "arch/arc/lib/cache.c" remain uninitialized if
    SoC doesn't have corresponding HW.

    This happens because we use the next constructions for their
    definition and initialization:
    -------------------------->>---------------------
    int ioc_exists __section(".data");

    if (/* condition */)
    ioc_exists = 1;
    -------------------------->>---------------------

    That's quite a non-trivial issue as one may think of it.
    The point is we intentionally put those variables in ".data" section
    so they might survive relocation (remember we initilaize them very early
    before relocation and continue to use after reloaction). While being
    non-initialized and not explicitly put in .data section they would end-up
    in ".bss" section which by definition is filled with zeroes.
    But since we place those variables in .data section we need to care
    about their proper initialization ourselves.

    Also while at it we change their type to "bool" as more appropriate.

    Signed-off-by: Eugeniy Paltsev
    Signed-off-by: Alexey Brodkin

    Eugeniy Paltsev
     
  • Signed-off-by: Eugeniy Paltsev
    Signed-off-by: Alexey Brodkin

    Eugeniy Paltsev
     
  • ARCNUM [15:8] field in ARC_AUX_IDENTITY register allows us to
    uniquely identify each core in a multi-core system.

    I.e. with help of this macro each core may get its index in SMP system.

    Signed-off-by: Eugeniy Paltsev
    Signed-off-by: Alexey Brodkin

    Eugeniy Paltsev