31 Jul, 2018

1 commit


16 Jan, 2018

2 commits

  • As the core now deals with the lack of a resource table, remove the
    dangling custom dummy implementations of find_rsc_table from drivers.

    Reviewed-By: Loic Pallardy
    Tested-By: Loic Pallardy
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     
  • There are currently a few different schemes used for overriding fw_ops
    or parts of fw_ops. Merge fw_ops into rproc_ops and expose the default
    ELF-loader symbols so that they can be assigned by the drivers.

    To keep backwards compatibility with the "default" case, a driver not
    specifying the "load" operation is assumed to want the full ELF-loader
    suit of functions.

    Reviewed-By: Loic Pallardy
    Tested-By: Loic Pallardy
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     

19 Jan, 2017

1 commit

  • Declare rproc_ops structures as const as they are only passed as an
    argument to the function rproc_alloc. This argument is of type const, so
    rproc_ops structures having this property can be declared const too.
    Done using Coccinelle:

    @r1 disable optional_qualifier @
    identifier i;
    position p;
    @@
    static struct rproc_ops i@p = {...};

    @ok1@
    identifier r1.i;
    position p;
    @@
    rproc_alloc(...,&i@p,...)

    @bad@
    position p!={r1.p,ok1.p};
    identifier r1.i;
    @@
    i@p

    @depends on !bad disable optional_qualifier@
    identifier r1.i;
    @@
    +const
    struct rproc_ops i;

    File size details:

    Size of the file remoteproc/da8xx_remoteproc.o remains the same before and
    after applying the changes.

    text data bss dec hex filename
    1312 100 4 1416 588 remoteproc/da8xx_remoteproc.o
    1312 100 4 1416 588 remoteproc/da8xx_remoteproc.o

    970 240 0 1210 4ba remoteproc/omap_remoteproc.o
    1002 192 0 1194 4aa remoteproc/omap_remoteproc.o

    1901 240 0 2141 85d remoteproc/st_remoteproc.o
    1933 192 0 2125 84d remoteproc/st_remoteproc.o

    1288 96 0 1384 568 remoteproc/st_slim_rproc.o
    1320 64 0 1384 568 remoteproc/st_slim_rproc.o

    2121 240 0 2361 939 remoteproc/wkup_m3_rproc.o
    2161 192 0 2353 931 remoteproc/wkup_m3_rproc.o

    Signed-off-by: Bhumika Goyal
    Signed-off-by: Bjorn Andersson

    Bhumika Goyal
     

20 Nov, 2016

1 commit


18 Oct, 2016

1 commit

  • slim core is used as a basis for many IPs in the STi
    chipsets such as fdma and demux. To avoid duplicating
    the elf loading code in each device driver a slim
    rproc driver has been created.

    This driver is designed to be used by other device drivers
    such as fdma, or demux whose IP is based around a slim core.
    The device driver can call slim_rproc_alloc() to allocate
    a slim rproc and slim_rproc_put() when finished.

    This driver takes care of ioremapping the slim
    registers (dmem, imem, slimcore, peripherals), whose offsets
    and sizes can change between IP's. It also obtains and enables
    any clocks used by the device. This approach avoids having
    a double mapping of the registers as slim_rproc does not register
    its own platform device. It also maps well to device tree
    abstraction as it allows us to have one dt node for the whole
    device.

    All of the generic rproc elf loading code can be reused, and
    we provide start() stop() hooks to start and stop the slim
    core once the firmware has been loaded. This has been tested
    successfully with fdma driver.

    Signed-off-by: Peter Griffin
    Signed-off-by: Vinod Koul

    Peter Griffin