Received: by 2002:ac0:aa62:0:0:0:0:0 with SMTP id w31-v6csp3693018ima; Tue, 23 Oct 2018 09:43:21 -0700 (PDT) X-Google-Smtp-Source: AJdET5dF07z15eVMHej2uycSDcv8olE/8NVcdRXdlVFG5hi+d8406NjQEaLZ7BEocrUWq1rc4s1A X-Received: by 2002:a17:902:b612:: with SMTP id b18-v6mr1660011pls.205.1540313001448; Tue, 23 Oct 2018 09:43:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540313001; cv=none; d=google.com; s=arc-20160816; b=J54KpfZj6mV4JSje+XQ/H/gGWocCosH2ZGmyD+hSN0zck4fpy/mBM0dspHmX5SKG8j AxN9/tejUiqCAB1GrJ0V2YdZQ63TYA2DFZSspEksGEoIfQAZzqqiXEvvXlHlG1BJQfmX zZF5KtC04NbZy03SoyVV9i1lEHInVVlQgpV0TbXkTna8Qxh5+IJzHOniqsNt/+LBYTdg BRrKzyd5QC/plnbUeTqcX5GCXAoSjxm5U/0mOMXpygoyyVT5B91P6n8oz4XOkulTw7jC Fq4pybKdv1CUiRCCX46svTagLE4lBMIswlr6AFu1Kl4RRavia+2UkWhda5UNkEQRRWBa UieQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=aQhlNCj6mOhYbYatJGQi3vz6GFlNhYzLdWEvppl+E34=; b=UvUDA6D3gf1sP0MILglFyLY8nHD1HK46pShic24qfve9te5WsbS2ZHsWzQ9xx5TgLx LzZGXFMzaGufIIcSlBDhkNLTCPOU4OJVZQ76KiRpIt1Q5/+cBaS1AlCtcYNnWik0VcNl 0tiYpYmOXFAba5i7WM9IJK8QVhSt3YXh6lItAiYYwwgKUehc2vd3UzGb/WHNmFkdmvna 22ifGW2QfCngt30sIGlXkMe35yPJrIqsYlsQPKdTaFc5ZoLivFL58zeB+CvHK+tE4Qov zb/5KudS+8t0l/vdPplNrtuag00P+Ps4KLjytUQFuKwyzjbdnJSyM6VveJkr6s1ndBhV wcWQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d10-v6si1509723pgp.205.2018.10.23.09.43.04; Tue, 23 Oct 2018 09:43:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728467AbeJXBGv (ORCPT + 99 others); Tue, 23 Oct 2018 21:06:51 -0400 Received: from fllv0016.ext.ti.com ([198.47.19.142]:51720 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727402AbeJXBGv (ORCPT ); Tue, 23 Oct 2018 21:06:51 -0400 Received: from fllv0035.itg.ti.com ([10.64.41.0]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id w9NGgcS1051709; Tue, 23 Oct 2018 11:42:38 -0500 Received: from DFLE113.ent.ti.com (dfle113.ent.ti.com [10.64.6.34]) by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTPS id w9NGgcMA106149 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 23 Oct 2018 11:42:38 -0500 Received: from DFLE115.ent.ti.com (10.64.6.36) by DFLE113.ent.ti.com (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Tue, 23 Oct 2018 11:42:37 -0500 Received: from dlep32.itg.ti.com (157.170.170.100) by DFLE115.ent.ti.com (10.64.6.36) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1466.3 via Frontend Transport; Tue, 23 Oct 2018 11:42:37 -0500 Received: from [128.247.58.153] (ileax41-snat.itg.ti.com [10.172.224.153]) by dlep32.itg.ti.com (8.14.3/8.13.8) with ESMTP id w9NGgbsM023729; Tue, 23 Oct 2018 11:42:37 -0500 Subject: Re: [PATCH v4 00/17] remoteproc: add fixed memory region support To: Loic Pallardy , , CC: , , , References: <1532697292-14272-1-git-send-email-loic.pallardy@st.com> From: Suman Anna Message-ID: <129e3fbe-72c6-97d7-7d83-dc2858074f33@ti.com> Date: Tue, 23 Oct 2018 11:42:37 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <1532697292-14272-1-git-send-email-loic.pallardy@st.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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(-) >