16 Jan, 2018

1 commit


13 Dec, 2017

1 commit

  • 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
     

22 Nov, 2017

2 commits


06 Nov, 2017

1 commit


04 Oct, 2017

1 commit

  • U-Boot widely uses error() as a bit noisier variant of printf().

    This macro causes name conflict with the following line in
    include/linux/compiler-gcc.h:

    # define __compiletime_error(message) __attribute__((error(message)))

    This prevents us from using __compiletime_error(), and makes it
    difficult to fully sync BUILD_BUG macros with Linux. (Notice
    Linux's BUILD_BUG_ON_MSG is implemented by using compiletime_assert().)

    Let's convert error() into now treewide-available pr_err().

    Done with the help of Coccinelle, excluing tools/ directory.

    The semantic patch I used is as follows:

    //
    @@@@
    -error
    +pr_err
    (...)
    //

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass
    [trini: Re-run Coccinelle]
    Signed-off-by: Tom Rini

    Masahiro Yamada
     

19 Sep, 2017

1 commit


11 Jul, 2017

1 commit


07 Jun, 2017

2 commits


01 Jun, 2017

4 commits

  • Update this driver to support a live device tree.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • It is good practice to include common.h as the first header. This ensures
    that required features like the DECLARE_GLOBAL_DATA_PTR macro,
    configuration options and common types are available.

    Fix up some files which currently don't do this. This is necessary because
    driver model will soon start using global data and configuration in the
    dm/read.h header file, included via dm.h. The gd->fdt_blob value will be
    used to access the device tree and CONFIG options will be used to
    determine whether to support inline functions in the header file.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • These support the flat device tree. We want to use the dev_read_..()
    prefix for functions that support both flat tree and live tree. So rename
    the existing functions to avoid confusion.

    In the end we will have:

    1. dev_read_addr...() - works on devices, supports flat/live tree
    2. devfdt_get_addr...() - current functions, flat tree only
    3. of_get_address() etc. - new functions, live tree only

    All drivers will be written to use 1. That function will in turn call
    either 2 or 3 depending on whether the flat or live tree is in use.

    Note this involves changing some dead code - the imx_lpi2c.c file.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This header includes things that are needed to make driver build. Adjust
    existing users to include that always, even if other dm/ includes are
    present

    Signed-off-by: Simon Glass

    Simon Glass
     

31 May, 2017

1 commit


10 May, 2017

1 commit


08 May, 2017

1 commit

  • This change switches all existing users of ast2500 Watchdog to Driver
    Model based Watchdog driver.

    To perform system reset Sysreset Driver uses first Watchdog device found
    via uclass_first_device call. Since the system is going to be reset
    anyway it does not make much difference which watchdog is used.

    Instead of using Watchdog to reset itself, SDRAM driver now uses Reset
    driver to do that.

    These were the only users of the old Watchdog API, so that API is
    removed.

    This all is done in one change to avoid having to maintain dual API for
    watchdog in between.

    Signed-off-by: Maxim Sloyko
    Reviewed-by: Simon Glass

    maxims@google.com
     

18 Apr, 2017

1 commit

  • If the system is running PSCI firmware, the System Reset function
    (func ID: 0x80000009) is supposed to be handled by PSCI, that is,
    the SoC/board specific reset implementation should be moved to PSCI.
    U-Boot should call the PSCI service according to the arm-smccc
    manner.

    The arm-smccc is supported on ARMv7 or later. Especially, ARMv8
    generation SoCs are likely to run ARM Trusted Firmware BL31. In
    this case, U-Boot is a non-secure world boot loader, so it should
    not be able to reset the system directly.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

16 Apr, 2017

1 commit

  • The warm-reset of rk3188 socs keeps the remap setting as it was, so if
    it was enabled, the cpu would start from address 0x0 of the sram instead
    of address 0x0 of the bootrom, thus making the reset hang.

    Therefore make sure the remap is disabled before attempting a warm reset.

    Cold reset is not affected by this at all.

    Signed-off-by: Heiko Stuebner
    Acked-by: Simon Glass

    Heiko Stübner
     

17 Mar, 2017

2 commits


15 Mar, 2017

1 commit


08 Feb, 2017

1 commit

  • At present devices use a simple integer offset to record the device tree
    node associated with the device. In preparation for supporting a live
    device tree, which uses a node pointer instead, refactor existing code to
    access this field through an inline function.

    Signed-off-by: Simon Glass

    Simon Glass
     

29 Jan, 2017

1 commit

  • Add support for Watchdog Timer, which is compatible with AST2400 and
    AST2500 watchdogs. There is no uclass for Watchdog yet, so the driver
    does not follow the driver model. It also uses fixed clock, so no clock
    driver is needed.

    Add support for timer for Aspeed ast2400/ast2500 devices.
    The driver actually controls several devices, but because all devices
    share the same Control Register, it is somewhat difficult to completely
    decouple them. Since only one timer is needed at the moment, this should
    be OK. The timer uses fixed clock, so does not rely on a clock driver.

    Add sysreset driver, which uses watchdog timer to do resets and particular
    watchdog device to use is hardcoded (0)
    Reviewed-by: Simon Glass

    maxims@google.com
     

16 Aug, 2016

1 commit

  • The 'xtfpga' board is actually a set of FPGA evaluation boards that
    can be configured to run an Xtensa processor.

    - Avnet Xilinx LX60
    - Avnet Xilinx LX110
    - Avnet Xilinx LX200
    - Xilinx ML605
    - Xilinx KC705

    These boards share the same components (open-ethernet, ns16550 serial,
    lcd display, flash, etc.).

    Signed-off-by: Chris Zankel
    Signed-off-by: Max Filippov
    Reviewed-by: Simon Glass
    Reviewed-by: Tom Rini

    Chris Zankel
     

12 Aug, 2016

1 commit