Re: [PATCH v4 00/17] remoteproc: add fixed memory region support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bjorn,

On 7/27/18 8:14 AM, Loic Pallardy wrote:
> The aim of the series is to implement carveout memory management as
> discussed during OpenAMP weekly call and defined in proposed document [1]
> 
> This first series focus only on adding support of the different types of
> carveout memories (dynamic, fixed, platform driver depend...).
> 64bit resource table will be addressed in a next series.
> Cent
> [1]: http://openamp.github.io/docs/mca/coprocessor-memory-definition-v6.pdf

Some of the patches in this series are breaking TI platforms, and I have
found couple of generic bugs as well. You may want to reconsider some of
these patches for 4.20. Apologies for the late review, but please look
through the comments I will be posting on various patches through the
rest of the day.

regards
Suman

> 
> ---
> Changes since V3:
> - Rebase on top of Bjorn remoteproc next git (3d065621c921)
> - Apply on top of "remoteproc: replace "%p" with "%pK"" [2]
> - Lot of changes to centralize carveout allocation before rproc_start()
> - Remove prepare/unprepare ops and rely on parse_fw instead of
> - Add possibility to assign reserved memory region to vdev device
> - Adapt TI da8xx and keystone remoteproc driver
> 
> As V3 series, V4 series takes some assumptions for carveout names
> associated to vdev:
> - For vring: "vdev%xvring%x" with vdev index from resource table and vring index
>   in vdev.
> - For vdev buffer: "vdev%xbuffer" with vdev index from resource table
> 
> [2] https://patchwork.kernel.org/patch/10511599
> 
> Changes since V2:
> Reshuffle the series to: 
> - Take into account Bjorn's comments.
> - Add patch to check consistency between carveout resource request and IOMMU
>   support.
> - Introduce platform specific prepare and unprepare ops to enable HW like
>   clock, bus, regulator, memory region... before loading co-processor firmware.
> - Rely on memory carveout management for all remoteproc memory allocations.
> - Lookup pre-registered carveout by name first.
> - Create a subdevice for each vdev declared in firmware resource table that
>   will be used by virtio based driver to retrieve specific memory pool.
> 
> This series takes some assumptions for carveout names associated to vdev:
> - For vring: "vdev%xvring%x" with vdev index from resource table and vring index
>   in vdev.
> - For vdev buffer: "vdev%xbuffer" with vdev index from resource table
> 
> This will be changed in the future, adding names field in vdev resource in
> next resource table version.
> 
> 
> Changes since V1:
> - Minor corrections on first 7 patches (error management)
> - Add "memory device" support on the top of first 7 patches.
>   Goal is to answer use case reported during OpenAMP weekly discussion:
>   - "Be able to specify memory region for vring and buffer allocation, even
>     if no specific request defined in firmware resource table."
>   Patches offer the capability to create a "memory device" associated to a
>   carveout with a dedicated DMA memory pool. Different resource handlers are
>   modified to look-up for specific carveout by name. If match found and associated
>   "memory device" present, device is used instead of rproc platform device for
>   allocation.
> 
> 
> Loic Pallardy (17):
>   remoteproc: configure IOMMU only if device address requested
>   remoteproc: add rproc_va_to_pa function
>   remoteproc: add release ops in rproc_mem_entry struct
>   remoteproc: add name in rproc_mem_entry struct
>   remoteproc: add helper function to allocate and init rproc_mem_entry
>     struct
>   remoteproc: introduce rproc_add_carveout function
>   remoteproc: introduce rproc_find_carveout_by_name function
>   remoteproc: add alloc ops in rproc_mem_entry struct
>   remoteproc: add helper function to allocate rproc_mem_entry from
>     reserved memory
>   remoteproc: add helper function to check carveout device address
>   remoteproc: modify rproc_handle_carveout to support pre-registered
>     region
>   remoteproc: modify vring allocation to rely on centralized carveout
>     allocator
>   remoteproc: create vdev subdevice with specific dma memory pool
>   remoteproc: keystone: declare reserved memory region for vdev device
>   remoteproc: da8xx: declare reserved memory region for vdev device
>   remoteproc: st: add reserved memory support
>   rpmsg: virtio: allocate buffer from parent
> 
>  drivers/remoteproc/da8xx_remoteproc.c    |  38 ++
>  drivers/remoteproc/keystone_remoteproc.c |  53 ++-
>  drivers/remoteproc/remoteproc_core.c     | 572 +++++++++++++++++++++++++------
>  drivers/remoteproc/remoteproc_debugfs.c  |   1 +
>  drivers/remoteproc/remoteproc_internal.h |   3 +
>  drivers/remoteproc/remoteproc_virtio.c   |  56 ++-
>  drivers/remoteproc/st_remoteproc.c       |  96 +++++-
>  drivers/rpmsg/virtio_rpmsg_bus.c         |   6 +-
>  include/linux/remoteproc.h               |  35 +-
>  9 files changed, 728 insertions(+), 132 deletions(-)
> 




[Index of Archives]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux