11 Sep, 2018

4 commits

  • Add an option for building remoteproc drivers within SPL.

    Reviewed-by: Tom Rini
    Signed-off-by: Lokesh Vutla

    Lokesh Vutla
     
  • Add support for K3 based remoteproc driver that
    communicates with TISCI to start start a remote processor.

    Reviewed-by: Tom Rini
    Signed-off-by: Lokesh Vutla

    Lokesh Vutla
     
  • K3 specific SoCs have a dedicated microcontroller for doing
    resource management. Any HLOS/firmware on compute clusters should
    load a firmware to this microcontroller before accessing any resource.
    Adding support for loading this firmware.

    After the K3 system controller got loaded with firmware and started
    up it sends out a boot notification message through the secure proxy
    facility using the TI SCI protocol. Intercept and receive this message
    through the rproc start operation which will need to get invoked
    explicitly after the firmware got loaded.

    Signed-off-by: Lokesh Vutla
    Signed-off-by: Andreas Dannenberg
    Reviewed-by: Tom Rini

    Lokesh Vutla
     
  • Existing rproc_init() api tries to initialize all available
    remoteproc devices. This will fail when there is dependency
    among available remoteprocs. So introduce a separate api
    that allows to initialize remoteprocs individually based
    on id.

    Reviewed-by: Tom Rini
    Signed-off-by: Lokesh Vutla

    Lokesh Vutla
     

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
     

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
     

15 Mar, 2016

1 commit

  • Many TI System on Chip (SoC) solutions do have a dedicated
    microcontroller for doing power management functionality. These include
    the AM335x, AM437x, Keystone K2G SoCs. The functionality provided by
    these microcontrollers and the communication mechanisms vary very
    widely. However, we are able to consolidate some basic functionality to
    be generic enough starting with K2G SoC family. Introduce a basic remote
    proc driver to support these microcontrollers. In fact, on SoCs starting
    with K2G, basic power management functions are primarily accessible for
    the High Level Operating Systems(HLOS) via these microcontroller solutions.

    Hence, having these started at a bootloader level is pretty much
    mandatory.

    Signed-off-by: Nishanth Menon
    Reviewed-by: Tom Rini

    Nishanth Menon
     

06 Dec, 2015

1 commit

  • Neither uc_pdata->name nor check_name are supposed to be NULL in
    _rproc_name_is_unique(). if uc_pdata->name is NULL, we are not
    intialized yet, however if check_data is NULL, we do not have
    proper data. Further, if either were NULL, strlen will crap out
    while attempting to derefence NULL.

    Instead, just check if either of these are NULL and bail out.

    This should also fix the following coverity scan warnings:
    *** CID 132281: Null pointer dereferences (FORWARD_NULL)
    /drivers/remoteproc/rproc-uclass.c: 73 in _rproc_name_is_unique()

    Reported-by: Tom Rini
    Signed-off-by: Nishanth Menon

    Nishanth Menon
     

23 Oct, 2015

2 commits

  • Introduce a dummy driver for sandbox that allows us to verify basic
    functionality. This is not meant to do anything functional - but is
    more or less meant as a framework plumbing debug helper.

    The sandbox remoteproc driver maintains absolutey no states and is a
    simple driver which just is filled with empty hooks. Idea being to give
    an approximate idea to implement own remoteproc driver using this as a
    template.

    Reviewed-by: Simon Glass
    Signed-off-by: Nishanth Menon
    Acked-by: Simon Glass

    Nishanth Menon
     
  • Many System on Chip(SoC) solutions are complex with multiple processors
    on the same die dedicated to either general purpose of specialized
    functions. Many examples do exist in today's SoCs from various vendors.
    Typical examples are micro controllers such as an ARM M3/M0 doing a
    offload of specific function such as event integration or power
    management or controlling camera etc.

    Traditionally, the responsibility of loading up such a processor with a
    firmware and communication has been with a High Level Operating
    System(HLOS) such as Linux. However, there exists classes of products
    where Linux would need to expect services from such a processor or the
    delay of Linux and operating system being able to load up such a
    firmware is unacceptable.

    To address these needs, we need some minimal capability to load such a
    system and ensure it is started prior to an Operating System(Linux or
    any other) is started up.

    NOTE: This is NOT meant to be a solve-all solution, instead, it tries to
    address certain class of SoCs and products that need such a solution.

    A very simple model is introduced here as part of the initial support
    that supports microcontrollers with internal memory (no MMU, no
    execution from external memory, or specific image format needs). This
    basic framework can then (hopefully) be extensible to other complex SoC
    processor support as need be.

    Reviewed-by: Simon Glass
    Signed-off-by: Nishanth Menon
    Acked-by: Simon Glass

    Nishanth Menon