From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2A410376EE; Mon, 18 Mar 2024 11:22:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710760968; cv=none; b=S43Rx+GPoO348B2MLx2R7JMvkBm4RBbupr4L9V0jURuqolmOYCJtNhm3q2eRD4c7Bc4KXuCMsG1jl3aAx5X+/OvNHiURdoK63kVHy/dcrCQCFiuEYmkOejlJ3vX3Su71NZPmUziLRamRwTORvej7kG+L+UgnAAgLZRFOG40FA5w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710760968; c=relaxed/simple; bh=Dyf8nAP5CvRaKtnDPPCqW92IsZjNM9dunGL3Is/ffwk=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=kHYT2OeWVb4iCX0xw5AU9LK+bx4uCX0XeASqn6g1vzGHfXqR85uQIRNyGhYk9+WQrK9tS37wkxyl/2NPtrb13maUVv8v+A5IFsNcKndQYpcwLtml7JTBsrd7rjpNah94kHk0Dr/5FVoX0J3IBI9WfIbkxBr/3jEiPNYALLLAOdI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com 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 A3341143D; Mon, 18 Mar 2024 04:23:21 -0700 (PDT) Received: from [10.57.12.69] (unknown [10.57.12.69]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 473A73F762; Mon, 18 Mar 2024 04:22:43 -0700 (PDT) Message-ID: <136e6054-0e08-4a26-8aa4-0572bdf6fd4f@arm.com> Date: Mon, 18 Mar 2024 11:22:43 +0000 Precedence: bulk X-Mailing-List: linux-coco@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 03/28] arm64: RME: Add wrappers for RMI calls Content-Language: en-GB To: Ganapatrao Kulkarni , kvm@vger.kernel.org, kvmarm@lists.linux.dev Cc: Catalin Marinas , Marc Zyngier , Will Deacon , James Morse , Oliver Upton , Suzuki K Poulose , Zenghui Yu , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Joey Gouly , Alexandru Elisei , Christoffer Dall , Fuad Tabba , linux-coco@lists.linux.dev References: <20230127112248.136810-1-suzuki.poulose@arm.com> <20230127112932.38045-1-steven.price@arm.com> <20230127112932.38045-4-steven.price@arm.com> From: Steven Price In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 18/03/2024 07:03, Ganapatrao Kulkarni wrote: > > Hi Steven, > > On 27-01-2023 04:59 pm, Steven Price wrote: >> The wrappers make the call sites easier to read and deal with the >> boiler plate of handling the error codes from the RMM. >> >> Signed-off-by: Steven Price >> --- >>   arch/arm64/include/asm/rmi_cmds.h | 259 ++++++++++++++++++++++++++++++ >>   1 file changed, 259 insertions(+) >>   create mode 100644 arch/arm64/include/asm/rmi_cmds.h >> >> diff --git a/arch/arm64/include/asm/rmi_cmds.h >> b/arch/arm64/include/asm/rmi_cmds.h >> new file mode 100644 >> index 000000000000..d5468ee46f35 >> --- /dev/null >> +++ b/arch/arm64/include/asm/rmi_cmds.h [...] >> +static inline int rmi_rtt_read_entry(unsigned long rd, unsigned long >> map_addr, >> +                     unsigned long level, struct rtt_entry *rtt) >> +{ >> +    struct arm_smccc_1_2_regs regs = { >> +        SMC_RMI_RTT_READ_ENTRY, >> +        rd, map_addr, level >> +    }; >> + >> +    arm_smccc_1_2_smc(®s, ®s); >> + >> +    rtt->walk_level = regs.a1; >> +    rtt->state = regs.a2 & 0xFF; >> +    rtt->desc = regs.a3; >> +    rtt->ripas = regs.a4 & 1; >> + >> +    return regs.a0; >> +} >> + >> +static inline int rmi_rtt_set_ripas(unsigned long rd, unsigned long rec, >> +                    unsigned long map_addr, unsigned long level, >> +                    unsigned long ripas) >> +{ >> +    struct arm_smccc_res res; >> + >> +    arm_smccc_1_1_invoke(SMC_RMI_RTT_SET_RIPAS, rd, rec, map_addr, >> level, >> +                 ripas, &res); >> + >> +    return res.a0; >> +} >> + >> +static inline int rmi_rtt_unmap_unprotected(unsigned long rd, >> +                        unsigned long map_addr, >> +                        unsigned long level) >> +{ >> +    struct arm_smccc_res res; >> + >> +    arm_smccc_1_1_invoke(SMC_RMI_RTT_UNMAP_UNPROTECTED, rd, map_addr, >> +                 level, &res); >> + >> +    return res.a0; >> +} >> + >> +static inline phys_addr_t rmi_rtt_get_phys(struct rtt_entry *rtt) >> +{ >> +    return rtt->desc & GENMASK(47, 12); >> +} >> + >> +#endif > > Can we please replace all occurrence of "unsigned long" with u64? I'm conflicted here. On the one hand I agree with you - it would be better to use types that are sized according to the RMM spec. However, this file is a thin wrapper around the low-level SMC calls, and the SMCCC interface is a bunch of "unsigned longs" (e.g. look at struct arm_smccc_1_2_regs). In particular it could be broken to use smaller types (e.g. char/u8) as it would potentially permit the compiler to leave 'junk' in the top part of the register. So the question becomes whether to stick with the SMCCC interface sizes (unsigned long) or use our knowledge that it must be a 64 bit platform (RMM isn't support for 32 bit) and therefore use u64. My (mild) preference is for unsigned long because it makes it obvious how this relates to the SMCCC interface it's using. It also seems like it would ease compatibility if (/when?) 128 bit registers become a thing. > Also as per spec, RTT level is Int64, can we change accordingly? Here, however, I agree you've definitely got a point. level should be signed as (at least in theory) it could be negative. > Please CC me in future cca patch-sets. > gankulkarni@os.amperecomputing.com I will do, thanks for the review. Steve 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id ACFF0C54E5D for ; Mon, 18 Mar 2024 11:23:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7Cb9XNfDvZQKQZ4/WkpvX5YICjraUO1zEo9mG34aR6w=; b=ARSaWD3dF2ZOGs u4IImAFdvJ+p6Ss6JSkhF1bbwvyqlYnHY30cea2oGSst0r6d2dNdAYJLC97g0MzlpK2kUP9pt7MkC uKLC5SZnojfJ2m7hiKafoohpf8iPudylo4Bu4XjjLRem7NM0GV+EVLPP1ILmQTpFRVrzK4QMXXkvH LrmG2vde56s5pT5TWai3ajSmJXf9oKLchZ8VYMmrybmNGjKSpGzuCmf/yiNdiePumrghDDaJ4nN3r M4zBV1F7gw2eP0bVqCLv6MYUhJPe2zcUBp7oLWpWbzArx80SKoM8o/LNNdBStkaPOp/7n4WOpUzZJ NMP46rZzU9qUGNOTxJsg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rmB55-00000008LL1-2Gd9; Mon, 18 Mar 2024 11:23:03 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rmB4r-00000008LD9-2ov5 for linux-arm-kernel@lists.infradead.org; Mon, 18 Mar 2024 11:22:51 +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 A3341143D; Mon, 18 Mar 2024 04:23:21 -0700 (PDT) Received: from [10.57.12.69] (unknown [10.57.12.69]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 473A73F762; Mon, 18 Mar 2024 04:22:43 -0700 (PDT) Message-ID: <136e6054-0e08-4a26-8aa4-0572bdf6fd4f@arm.com> Date: Mon, 18 Mar 2024 11:22:43 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 03/28] arm64: RME: Add wrappers for RMI calls Content-Language: en-GB To: Ganapatrao Kulkarni , kvm@vger.kernel.org, kvmarm@lists.linux.dev Cc: Catalin Marinas , Marc Zyngier , Will Deacon , James Morse , Oliver Upton , Suzuki K Poulose , Zenghui Yu , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Joey Gouly , Alexandru Elisei , Christoffer Dall , Fuad Tabba , linux-coco@lists.linux.dev References: <20230127112248.136810-1-suzuki.poulose@arm.com> <20230127112932.38045-1-steven.price@arm.com> <20230127112932.38045-4-steven.price@arm.com> From: Steven Price In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240318_042249_845687_3AEB4E66 X-CRM114-Status: GOOD ( 19.91 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTgvMDMvMjAyNCAwNzowMywgR2FuYXBhdHJhbyBLdWxrYXJuaSB3cm90ZToKPiAKPiBIaSBT dGV2ZW4sCj4gCj4gT24gMjctMDEtMjAyMyAwNDo1OSBwbSwgU3RldmVuIFByaWNlIHdyb3RlOgo+ PiBUaGUgd3JhcHBlcnMgbWFrZSB0aGUgY2FsbCBzaXRlcyBlYXNpZXIgdG8gcmVhZCBhbmQgZGVh bCB3aXRoIHRoZQo+PiBib2lsZXIgcGxhdGUgb2YgaGFuZGxpbmcgdGhlIGVycm9yIGNvZGVzIGZy b20gdGhlIFJNTS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogU3RldmVuIFByaWNlIDxzdGV2ZW4ucHJp Y2VAYXJtLmNvbT4KPj4gLS0tCj4+IMKgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vcm1pX2NtZHMu aCB8IDI1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAgMSBmaWxlIGNoYW5n ZWQsIDI1OSBpbnNlcnRpb25zKCspCj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0 L2luY2x1ZGUvYXNtL3JtaV9jbWRzLmgKPj4KPj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5j bHVkZS9hc20vcm1pX2NtZHMuaAo+PiBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcm1pX2NtZHMu aAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmQ1NDY4ZWU0 NmYzNQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcm1p X2NtZHMuaAoKWy4uLl0KCj4+ICtzdGF0aWMgaW5saW5lIGludCBybWlfcnR0X3JlYWRfZW50cnko dW5zaWduZWQgbG9uZyByZCwgdW5zaWduZWQgbG9uZwo+PiBtYXBfYWRkciwKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBsZXZlbCwgc3Ry dWN0IHJ0dF9lbnRyeSAqcnR0KQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBhcm1fc21jY2NfMV8y X3JlZ3MgcmVncyA9IHsKPj4gK8KgwqDCoMKgwqDCoMKgIFNNQ19STUlfUlRUX1JFQURfRU5UUlks Cj4+ICvCoMKgwqDCoMKgwqDCoCByZCwgbWFwX2FkZHIsIGxldmVsCj4+ICvCoMKgwqAgfTsKPj4g Kwo+PiArwqDCoMKgIGFybV9zbWNjY18xXzJfc21jKCZyZWdzLCAmcmVncyk7Cj4+ICsKPj4gK8Kg wqDCoCBydHQtPndhbGtfbGV2ZWwgPSByZWdzLmExOwo+PiArwqDCoMKgIHJ0dC0+c3RhdGUgPSBy ZWdzLmEyICYgMHhGRjsKPj4gK8KgwqDCoCBydHQtPmRlc2MgPSByZWdzLmEzOwo+PiArwqDCoMKg IHJ0dC0+cmlwYXMgPSByZWdzLmE0ICYgMTsKPj4gKwo+PiArwqDCoMKgIHJldHVybiByZWdzLmEw Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW5saW5lIGludCBybWlfcnR0X3NldF9yaXBhcyh1bnNp Z25lZCBsb25nIHJkLCB1bnNpZ25lZCBsb25nIHJlYywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgbWFwX2FkZHIsIHVuc2lnbmVkIGxvbmcg bGV2ZWwsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25l ZCBsb25nIHJpcGFzKQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBhcm1fc21jY2NfcmVzIHJlczsK Pj4gKwo+PiArwqDCoMKgIGFybV9zbWNjY18xXzFfaW52b2tlKFNNQ19STUlfUlRUX1NFVF9SSVBB UywgcmQsIHJlYywgbWFwX2FkZHIsCj4+IGxldmVsLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgcmlwYXMsICZyZXMpOwo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIHJlcy5hMDsK Pj4gK30KPj4gKwo+PiArc3RhdGljIGlubGluZSBpbnQgcm1pX3J0dF91bm1hcF91bnByb3RlY3Rl ZCh1bnNpZ25lZCBsb25nIHJkLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIG1hcF9hZGRyLAo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGxldmVsKQo+PiAr ewo+PiArwqDCoMKgIHN0cnVjdCBhcm1fc21jY2NfcmVzIHJlczsKPj4gKwo+PiArwqDCoMKgIGFy bV9zbWNjY18xXzFfaW52b2tlKFNNQ19STUlfUlRUX1VOTUFQX1VOUFJPVEVDVEVELCByZCwgbWFw X2FkZHIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXZlbCwgJnJlcyk7 Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4gcmVzLmEwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW5s aW5lIHBoeXNfYWRkcl90IHJtaV9ydHRfZ2V0X3BoeXMoc3RydWN0IHJ0dF9lbnRyeSAqcnR0KQo+ PiArewo+PiArwqDCoMKgIHJldHVybiBydHQtPmRlc2MgJiBHRU5NQVNLKDQ3LCAxMik7Cj4+ICt9 Cj4+ICsKPj4gKyNlbmRpZgo+IAo+IENhbiB3ZSBwbGVhc2UgcmVwbGFjZSBhbGwgb2NjdXJyZW5j ZSBvZiAidW5zaWduZWQgbG9uZyIgd2l0aCB1NjQ/CgpJJ20gY29uZmxpY3RlZCBoZXJlLiBPbiB0 aGUgb25lIGhhbmQgSSBhZ3JlZSB3aXRoIHlvdSAtIGl0IHdvdWxkIGJlCmJldHRlciB0byB1c2Ug dHlwZXMgdGhhdCBhcmUgc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSBSTU0gc3BlYy4gSG93ZXZlciwK dGhpcyBmaWxlIGlzIGEgdGhpbiB3cmFwcGVyIGFyb3VuZCB0aGUgbG93LWxldmVsIFNNQyBjYWxs cywgYW5kIHRoZQpTTUNDQyBpbnRlcmZhY2UgaXMgYSBidW5jaCBvZiAidW5zaWduZWQgbG9uZ3Mi IChlLmcuIGxvb2sgYXQgc3RydWN0CmFybV9zbWNjY18xXzJfcmVncykuCgpJbiBwYXJ0aWN1bGFy IGl0IGNvdWxkIGJlIGJyb2tlbiB0byB1c2Ugc21hbGxlciB0eXBlcyAoZS5nLiBjaGFyL3U4KSBh cwppdCB3b3VsZCBwb3RlbnRpYWxseSBwZXJtaXQgdGhlIGNvbXBpbGVyIHRvIGxlYXZlICdqdW5r JyBpbiB0aGUgdG9wIHBhcnQKb2YgdGhlIHJlZ2lzdGVyLgoKU28gdGhlIHF1ZXN0aW9uIGJlY29t ZXMgd2hldGhlciB0byBzdGljayB3aXRoIHRoZSBTTUNDQyBpbnRlcmZhY2Ugc2l6ZXMKKHVuc2ln bmVkIGxvbmcpIG9yIHVzZSBvdXIga25vd2xlZGdlIHRoYXQgaXQgbXVzdCBiZSBhIDY0IGJpdCBw bGF0Zm9ybQooUk1NIGlzbid0IHN1cHBvcnQgZm9yIDMyIGJpdCkgYW5kIHRoZXJlZm9yZSB1c2Ug dTY0LiBNeSAobWlsZCkKcHJlZmVyZW5jZSBpcyBmb3IgdW5zaWduZWQgbG9uZyBiZWNhdXNlIGl0 IG1ha2VzIGl0IG9idmlvdXMgaG93IHRoaXMKcmVsYXRlcyB0byB0aGUgU01DQ0MgaW50ZXJmYWNl IGl0J3MgdXNpbmcuIEl0IGFsc28gc2VlbXMgbGlrZSBpdCB3b3VsZAplYXNlIGNvbXBhdGliaWxp dHkgaWYgKC93aGVuPykgMTI4IGJpdCByZWdpc3RlcnMgYmVjb21lIGEgdGhpbmcuCgo+IEFsc28g YXMgcGVyIHNwZWMsIFJUVCBsZXZlbCBpcyBJbnQ2NCwgY2FuIHdlIGNoYW5nZSBhY2NvcmRpbmds eT8KCkhlcmUsIGhvd2V2ZXIsIEkgYWdyZWUgeW91J3ZlIGRlZmluaXRlbHkgZ290IGEgcG9pbnQu IGxldmVsIHNob3VsZCBiZQpzaWduZWQgYXMgKGF0IGxlYXN0IGluIHRoZW9yeSkgaXQgY291bGQg YmUgbmVnYXRpdmUuCgo+IFBsZWFzZSBDQyBtZSBpbiBmdXR1cmUgY2NhIHBhdGNoLXNldHMuCj4g Z2Fua3Vsa2FybmlAb3MuYW1wZXJlY29tcHV0aW5nLmNvbQoKSSB3aWxsIGRvLCB0aGFua3MgZm9y IHRoZSByZXZpZXcuCgpTdGV2ZQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK