20 Feb, 2019

1 commit


26 Jan, 2019

2 commits

  • Do this by using $(SPL_) in Makefiles and CONFIG_IS_ENABLED in C code.
    This ensures the files and features are only built into the right build
    for which they are enabled. Using the macros to simplify this patch was
    made possible by the config symbol rename done in the last patch.

    Signed-off-by: Andrew F. Davis
    Reviewed-by: Tom Rini
    Acked-by: Lukasz Majewski

    Andrew F. Davis
     
  • The symbol CONFIG_SPL_DFU_SUPPORT in SPL build has the same
    meaning as CONFIG_DFU in regular U-Boot. Drop the _SUPPORT
    to allow for cleaner use in code.

    Signed-off-by: Andrew F. Davis
    Reviewed-by: Tom Rini
    Acked-by: Lukasz Majewski

    Andrew F. Davis
     

11 Jan, 2019

1 commit


01 Jan, 2019

2 commits


15 Dec, 2018

1 commit


13 Dec, 2018

2 commits

  • Building U-Boot with CONFIG_PCI and CONFIG_DM_PCI enabled, but
    CONFIG_SPL_PCI_SUPPORT disabled, results in following linker
    error:

    lib/built-in.o: In function `fdtdec_get_pci_bar32':
    lib/fdtdec.c:305: undefined reference to `dm_pci_read_bar32'
    fdtdec.c:305:(.text.fdtdec_get_pci_bar32+0x24): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `dm_pci_read_bar32'

    This is because reference to dm_pci_read_bar32() remains in lib/fdtdec.c
    while SPL build does not descend into drivers/pci directory in
    drivers/Makefile if CONFIG_SPL_PCI_SUPPORT is not enabled.

    Fix this by applying appropriate #define guards in lib/fdtdec.c.
    It looks like ns16550.c has the same problem, so fixed that too.

    To simplify this, CONFIG_SPL_PCI_SUPPORT is renamed to CONFIG_SPL_PCI
    (enables use of CONFIG_IS_ENABLED() macro).

    Suggested-by: Vignesh R
    Signed-off-by: Sekhar Nori
    Reviewed-by: Lokesh Vutla
    Reviewed-by: Tom Rini

    Sekhar Nori
     
  • The function part_init() will only be built when we have both
    CONFIG_PARTITIONS and CONFIG_HAVE_BLOCK_DEVICE set. Protect the call to
    this function with both of these tests now.

    Cc: Simon Glass
    Cc: Philipp Tomsich
    Cc: Michal Simek
    Cc: York Sun
    Cc: Prabhakar Kushwaha
    Cc: Mingkai Hu
    Cc: Stefan Roese
    Cc: Marek Behún
    Cc: Vanessa Maegima
    Cc: Eugen Hristev
    Cc: Adam Ford
    Cc: Jagan Teki
    Cc: Tom Warren
    Cc: Stephen Warren
    Cc: Vitaly Andrianov
    Signed-off-by: Tom Rini
    Reviewed-by: Simon Glass

    Tom Rini
     

07 Dec, 2018

1 commit


26 Nov, 2018

1 commit

  • At present these subsystems are only supported in U-Boot proper but it is
    sometimes necessary to support them in SPL, or even TPL. Update the
    Kconfig and Makefile to support this. Also adjust GPIO so that it can be
    used in TPL if required.

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

    Simon Glass
     

15 Nov, 2018

1 commit

  • This adds a new virtio uclass driver for “virtio” [1] family of
    devices that are are found in virtual environments like QEMU,
    yet by design they look like physical devices to the guest.

    The uclass driver provides child_pre_probe() and child_post_probe()
    methods to do some common operations for virtio device drivers like
    device and driver supported feature negotiation, etc.

    [1] http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf

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

    Bin Meng
     

07 Oct, 2018

1 commit

  • Adds a uclass to interface with a TEE (Trusted Execution Environment).

    A TEE driver is a driver that interfaces with a trusted OS running in
    some secure environment, for example, TrustZone on ARM cpus, or a
    separate secure co-processor etc.

    The TEE subsystem can serve a TEE driver for a Global Platform compliant
    TEE, but it's not limited to only Global Platform TEEs.

    The over all design is based on the TEE subsystem in the Linux kernel,
    tailored for U-Boot.

    Reviewed-by: Simon Glass
    Tested-by: Igor Opaniuk
    Signed-off-by: Jens Wiklander

    Jens Wiklander
     

03 Oct, 2018

1 commit


01 Oct, 2018

1 commit


30 Sep, 2018

1 commit

  • Since there is no canonical "board device" that can be used in board
    files, it is difficult to use DM function for board initialization in
    these cases.

    Hence, add a uclass that implements a simple "board device", which can
    hold devices not suitable anywhere else in the device tree, and is also
    able to read encoded information, e.g. hard-wired GPIOs on a GPIO
    expander, read-only memory ICs, etc. that carry information about the
    hardware.

    The devices of this uclass expose methods to read generic data types
    (integers, strings, booleans) to encode the information provided by the
    hardware.

    Reviewed-by: Simon Glass
    Signed-off-by: Mario Six

    Mario Six
     

29 Sep, 2018

2 commits


20 Sep, 2018

1 commit

  • NAND flavors, like serial and parallel, have a lot in common and would
    benefit to share code. Let's move raw (parallel) NAND specific code in a
    raw/ subdirectory, to ease the addition of a core file in nand/ and the
    introduction of a spi/ subdirectory specific to SPI NANDs.

    Signed-off-by: Miquel Raynal

    Miquel Raynal
     

11 Sep, 2018

2 commits


11 Aug, 2018

1 commit

  • Add a uclass for AXI (Advanced eXtensible Interface) busses, and a
    driver for the gdsys IHS AXI bus on IHS FPGAs.

    Signed-off-by: Mario Six
    Reviewed-by: Simon Glass

    Mario Six
     

06 Aug, 2018

1 commit


20 Jul, 2018

1 commit

  • This is a uclass for Shared memory manager drivers.

    A Shared Memory Manager driver implements an interface for allocating
    and accessing items in the memory area shared among all of the
    processors.

    Signed-off-by: Ramon Fried

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

    Ramon Fried
     

10 Jul, 2018

1 commit


04 Jun, 2018

1 commit


30 May, 2018

2 commits

  • Add drivers/fastboot/fb_common.c, where fastboot_okay/fail are implemented
    so we can call them from a non-USB implementation.

    Introduce fastboot_response which takes varargs parameters so we can
    use it to generate formatted response strings. Refactor fastboot_okay/fail
    to use it.

    Signed-off-by: Alex Kiernan
    Reviewed-by: Joe Hershberger

    Alex Kiernan
     
  • Separate CMD_FASTBOOT from FASTBOOT and move code and configuration to
    drivers/fastboot.

    Switch dependencies on FASTBOOT to USB_FUNCTION_FASTBOOT as anyone who wants
    FASTBOOT before this series wants USB_FUNCTION_FASTBOOT. Split
    USB_FUNCTION_FASTBOOT from FASTBOOT so they retain their existing
    behaviour.

    Signed-off-by: Alex Kiernan
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger

    Alex Kiernan
     

28 May, 2018

1 commit

  • USB PHY implementation for Allwinner SOC's can be handling
    in to single driver with different phy configs.

    This driver handle all Allwinner USB PHY's start from 4I to
    50I(except 9I). Currently added A64 compatibility more will
    add in next coming patches.

    Current implementation is unable to get pinctrl, clock and reset
    details from DT since the dm code on these will add it future.

    Driver named as phy-sun4i-usb.c since the same PHY logic
    work for all Allwinner SOC's start from 4I to A64 except 9I
    with different phy configurations.

    Signed-off-by: Jagan Teki
    Acked-by: Jun Nie

    Jagan Teki
     

11 May, 2018

1 commit

  • New, SPL related config option - CONFIG_SPL_BOOTCOUNT_LIMIT has been
    added to allow drivers/bootcount code re-usage in SPL.

    This code is necessary to use and setup bootcount in SPL in the case of
    falcon boot mode.

    Signed-off-by: Lukasz Majewski
    Reviewed-by: Stefan Roese
    Reviewed-by: Tom Rini
    Reviewed-by: Alex Kiernan

    Lukasz Majewski
     

07 May, 2018

1 commit

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have a single declared
    license in the tag as both the before and after are identical in tag
    contents. There's also a few places where I found we did not have a tag
    and have introduced one.

    Signed-off-by: Tom Rini

    Tom Rini
     

20 Mar, 2018

1 commit


05 Mar, 2018

1 commit


21 Nov, 2017

1 commit


14 Aug, 2017

2 commits

  • Tom Rini
     
  • NVM Express (NVMe) is a register level interface that allows host
    software to communicate with a non-volatile memory subsystem. This
    interface is optimized for enterprise and client solid state drives,
    typically attached to the PCI express interface.

    This adds a U-Boot driver support of devices that follow the NVMe
    standard [1] and supports basic read/write operations.

    Tested with a 400GB Intel SSD 750 series NVMe card with controller
    id 8086:0953.

    [1] http://www.nvmexpress.org/resources/specifications/

    Signed-off-by: Zhikang Zhang
    Signed-off-by: Wenbin Song
    Signed-off-by: Bin Meng
    Reviewed-by: Tom Rini

    Zhikang Zhang
     

13 Aug, 2017

2 commits

  • To fully support DM timer in SPL and TPL, we need a few things cleaned
    up and normalised:
    - inclusion of the uclass and drivers should be an all-or-nothing
    decision for each stage and under control of $(SPL_TPL_)TIMER
    instead of having the two-level configuration with TIMER and
    $(SPL_TPL_)TIMER_SUPPORT
    - when $(SPL_TPL_)TIMER is enabled, the ARMv8 generic timer code can
    not be compiled in

    This normalises configuration to $(SPL_TPL_)TIMER and moves the config
    options to drivers/timer/Kconfig (and cleans up the collateral damage
    to some defconfigs that had SPL_TIMER_SUPPORT enabled).

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

    Philipp Tomsich
     
  • To simplify drivers/Makefile a bit when using TPL/SPL, we consistently
    use the $(SPL_TPL_) macro to test for drivers that have separate
    configuration symbols for the full U-boot, SPL and TPL stages.
    Instead of explicitly repeating them in two separate if-guarded
    sections of the Makefile, we can now simply list these options once.

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

    Philipp Tomsich
     

26 Jul, 2017

1 commit

  • Enable FPGA driver build for Arria 10 SPL because FPGA driver is
    needed by Arria 10 SPL to configure and getting DDR up before
    loading U-boot into DDR and booting from there.

    Signed-off-by: Tien Fong Chee
    Reviewed-by: Ley Foon Tan
    Reviewed-by: Dinh Nguyen

    Tien Fong Chee
     

12 Jul, 2017

1 commit