From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B2DCC2B9F4 for ; Mon, 14 Jun 2021 10:37:32 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2CFB661457 for ; Mon, 14 Jun 2021 10:37:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2CFB661457 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Jxji96deZW4NdnLPabQ8Gj+0m3zwjSD1O2bbV5h3Kd8=; b=Gdl1BVZt/pyI1GyVHOyHJJQm9w JgaObFYmAWsttEVmh7GgXAaU+Ivn0Xjw4aYY07CpfHapyukupqt4qyQ1O4ZdgcM9Lmi4KzzeEXo1A 5C+h1mLQ1hHPFRHbrd/rFZ/0pxrbqjrpK4d4w1kqk6roOQuNM3L8SKTHYEhUPTq4rZVfj/5FMAN36 spG/QDklk4pwC5vZ0e4KZBgcMa4IiLi4ETyW6Z+OcrhYyuxn0HHnI+q1yLzYv4UILHCdR2cx1Caqf NMtxYGAVHXB9+I80TI92w9iIawjlybocL+/ijIOfBWewihVunUX/5eSn/nRiBOUiWkSCjw+NbYpqc D/zPkAyQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lsjw6-00DbGJ-H6; Mon, 14 Jun 2021 10:35:18 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lsjw3-00DbFM-15 for linux-arm-kernel@lists.infradead.org; Mon, 14 Jun 2021 10:35:16 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D06BA1FB; Mon, 14 Jun 2021 03:35:13 -0700 (PDT) Received: from [10.57.9.136] (unknown [10.57.9.136]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 064133F694; Mon, 14 Jun 2021 03:35:11 -0700 (PDT) Subject: Re: [PATCH v5 3/8] ACPI/IORT: Add a helper to retrieve RMR memory regions To: Shameerali Kolothum Thodi , Laurentiu Tudor , "linux-arm-kernel@lists.infradead.org" , "linux-acpi@vger.kernel.org" , "iommu@lists.linux-foundation.org" Cc: "jon@solid-run.com" , Linuxarm , "steven.price@arm.com" , "Guohanjun (Hanjun Guo)" , yangyicong , "Sami.Mujawar@arm.com" , wanghuiqiang References: <20210524110222.2212-1-shameerali.kolothum.thodi@huawei.com> <20210524110222.2212-4-shameerali.kolothum.thodi@huawei.com> <13c2499e-cc0c-d395-0d60-6c3437f206ac@nxp.com> <260859e85c854b90b513599f4febfbad@huawei.com> From: Robin Murphy Message-ID: <00b7b9e2-190a-6c84-9248-8526021e4d97@arm.com> Date: Mon, 14 Jun 2021 11:35:07 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <260859e85c854b90b513599f4febfbad@huawei.com> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210614_033515_205242_1E9E7013 X-CRM114-Status: GOOD ( 20.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 2021-05-26 17:36, Shameerali Kolothum Thodi wrote: > > >> -----Original Message----- >> From: Laurentiu Tudor [mailto:laurentiu.tudor@nxp.com] >> Sent: 26 May 2021 08:53 >> To: Shameerali Kolothum Thodi ; >> linux-arm-kernel@lists.infradead.org; linux-acpi@vger.kernel.org; >> iommu@lists.linux-foundation.org >> Cc: jon@solid-run.com; Linuxarm ; >> steven.price@arm.com; Guohanjun (Hanjun Guo) ; >> yangyicong ; Sami.Mujawar@arm.com; >> robin.murphy@arm.com; wanghuiqiang >> Subject: Re: [PATCH v5 3/8] ACPI/IORT: Add a helper to retrieve RMR memory >> regions >> >> Hi Shameer, >> >> On 5/24/2021 2:02 PM, Shameer Kolothum wrote: >>> Add a helper function that retrieves RMR memory descriptors >>> associated with a given IOMMU. This will be used by IOMMU >>> drivers to setup necessary mappings. >>> >>> Now that we have this, invoke it from the generic helper >>> interface. >>> >>> Signed-off-by: Shameer Kolothum >> >>> --- >>> drivers/acpi/arm64/iort.c | 50 >> +++++++++++++++++++++++++++++++++++++++ >>> drivers/iommu/dma-iommu.c | 4 ++++ >>> include/linux/acpi_iort.h | 7 ++++++ >>> 3 files changed, 61 insertions(+) >>> >>> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c >>> index fea1ffaedf3b..01917caf58de 100644 >>> --- a/drivers/acpi/arm64/iort.c >>> +++ b/drivers/acpi/arm64/iort.c >>> @@ -12,6 +12,7 @@ >>> >>> #include >>> #include >>> +#include >>> #include >>> #include >>> #include >>> @@ -837,6 +838,53 @@ static inline int iort_add_device_replay(struct >> device *dev) >>> return err; >>> } >>> >>> +/** >>> + * iort_iommu_get_rmrs - Helper to retrieve RMR info associated with >> IOMMU >>> + * @iommu: fwnode for the IOMMU >>> + * @head: RMR list head to be populated >>> + * >>> + * Returns: 0 on success, <0 failure >>> + */ >>> +int iort_iommu_get_rmrs(struct fwnode_handle *iommu_fwnode, >>> + struct list_head *head) >>> +{ >>> + struct iort_rmr_entry *e; >>> + struct acpi_iort_node *iommu; >>> + int rmrs = 0; >>> + >>> + iommu = iort_get_iort_node(iommu_fwnode); >>> + if (!iommu || list_empty(&iort_rmr_list)) >>> + return -ENODEV; >>> + >>> + list_for_each_entry(e, &iort_rmr_list, list) { >>> + int prot = IOMMU_READ | IOMMU_WRITE | IOMMU_NOEXEC | >> IOMMU_MMIO; >> >> We have a case with an IP block that needs EXEC rights on its reserved >> memory, so could you please drop the IOMMU_NOEXEC flag? > > Ok, I think I can drop that one if there are no other concerns. I was not quite > sure what to include here in the first place as the IORT spec is not giving any > further details about the RMR regions(May be the flags field can be extended to > describe these details). Right, it's reserved for the device to use *somehow* - that's all we know, so it's not our place to try and enforce any restrictive permissions. All it could possibly achieve is the ability to log an error to say "a thing did an unknown thing in a way we didn't expect!", and there's hardly much value in that. Robin. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel