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 3B3D4C44501 for ; Tue, 14 Jul 2026 14:53:28 +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:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9D2A39RSXqrY/hp9RIEyUVr/V+wp06DewrcCBWg1JZg=; b=Mm4305GqyVGBbz 27iQKEL2u6BWacoi2t5yYjtJe2/UlW8PJiL5SmM1sWaQb4CF8nFMEV/ZbBQYJIynLsR5T5JgyPhem bJ2iowjWP0wXe2NMsSOrQzjC+JH77xcUwRGiM34KE7aVErZwtRjyc/OtsfylbMdYWjz69v4V2yKxB 4lKxn2AYOS2U2zDL0CXFB99D38O06lf+ztJ13fwwbpxCRHKlaeC7RSciaN8GGP9eN0kYPEA8RJaF9 gtxDsr2a/lP68JwzYeqmHpUssZac41YYf8Adlc9xgWSNZXIyvFnich2wbS4vj0GeqT7mJ6vjnZ1Ea z7A2tY/DHcHG0lRnsezA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjeVZ-0000000CRPB-1ocH; Tue, 14 Jul 2026 14:53:17 +0000 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjeVW-0000000CRMz-2qIW for linux-riscv@lists.infradead.org; Tue, 14 Jul 2026 14:53:16 +0000 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-493b27c7451so12829975e9.0 for ; Tue, 14 Jul 2026 07:53:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784040793; x=1784645593; darn=lists.infradead.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=pbWrlFJpCsAWWpngb8AaY/VxYoSajEZxkhMh3lUDPkg=; b=D0xopS+zvobzm7ApUseAc/ejkRfGLn06MymUuTYI7wiOYq1bOab7VUTJ6cZlZ9o1jR ILq/wOUpc0BgK5YeR6DksaAnAlW1YKdtqji2ieGgkks7zIE3v22O9KphZ/vOWG1yF/m9 lDgzR5nme+29553cSlrrHoVyNrr6UWRoEiQTDXXIaZnkA/IB9A7+aBXritFg//IdtciG uEA2tg/b7A5TMBnHP4EL8hzcECfXx99YONdxn2q2w+MEsVoT1rpFjRRa8erhrR57DKqO OBM1VnWNd5/G7OxjWE6NwBjPXQLvvji9q4B50bL4BWoFhuQCIYUYAToi3kGrPSMtQzkp WEvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784040793; x=1784645593; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=pbWrlFJpCsAWWpngb8AaY/VxYoSajEZxkhMh3lUDPkg=; b=VpgzUDvaHdal9Dv/88FGiGn2uCVQuRT8gQvhAK+zbfILnTb19waBfp0c8rPloEhEZD hmQ18j98kZj2Q03rODf+GNqaMs91ov+xEDZwN/LmM5FcCUHRQmdTBv+fD7PhY+T8WsKB wFchKGTZBYQ/aoDomYXU2QfItnC0FD6FZp8hbGSuzWVKN3zeVRJB8Onj7g3tlq/b7zFV 1ya3qTMi3w0c3Wdd+17HTSz4SoJcvu5oeSnsz2isNorzIYkTag5MPNK0F4FgsfGdnCWx fV1c6pRJl/dO06nP++Vdhz6z4B3ZRXrYgtqb8X/RZ2wEc4gIn+BOLcOarRS8nRxNXBmx J30g== X-Forwarded-Encrypted: i=1; AHgh+RqCd7DidcS+dRbtQYSZmYWrWcaO8skJm2m+sX2GkfyT3BF9Chv82QLcXdz7kj+ClnH759s48FJSs6gBcg==@lists.infradead.org X-Gm-Message-State: AOJu0Yx4zWwuzjXbctioCHy1UaJBV5NByJpiW3PL9ZYh0li1b8cJTmBp oUnWI4HRnQtBtvF0vLIP1++QsC4f8sUq4JRKqsjqxbVe9P8D1ywgK1fi X-Gm-Gg: AfdE7cmdKUIbUyDHtpup57ILc3n8GizOBqbcx5Zskc71f2CdG8l3kwt7F7COrER/Lyp w3gKr26cco11ThXx5AbvIZNLxQOONqtbptSqwJqHzr2vgTim5jms5/nR84+NBSr2hnseO3Rjg64 BwtW3KttS0ILEDusixdKXiYB5mLEKz5TTYCLZe3Bb6IXbyU7j0umndDJEGyNv+KeoT15sKqbVKF JAw7W2u9yEKvhrsglb05PsfU6RuGh5NQ+QfZRDp//c+YuwBjHOiu2sFBtPjqZKqo7DlzsLY7jWp PusLReNll7PcBals6nfe/JDJpSmT4+7bjXUzBBeWxEvYM/+DiogTcoGXj1B2QzimiyYtyHXbQmz tw4ayT38nWIAxymBfh833yGUK23GJ6QR70i7vcaaGf4SPkxy+D0Gt/eDX4XE+whIL6ibkYJBeu0 BPb1O7vduYV7sUYywGYrQxzqD1G9NqW6mX1uLIYWEBYAJfg1q3A3AQKnJO+j+F X-Received: by 2002:a05:600c:8b65:b0:493:f478:4c71 with SMTP id 5b1f17b1804b1-493f8885308mr139772165e9.7.1784040792394; Tue, 14 Jul 2026 07:53:12 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49508724786sm82851595e9.3.2026.07.14.07.53.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 07:53:12 -0700 (PDT) Date: Tue, 14 Jul 2026 15:53:10 +0100 From: David Laight To: Guo Ren Cc: Robin Murphy , Zhanpeng Zhang , Tomasz Jeznach , Joerg Roedel , Will Deacon , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Vivian Wang , Zong Li , cuiyunhui@bytedance.com, yuanzhu@bytedance.com, iommu@lists.linux.dev, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers Message-ID: <20260714155310.2e17473c@pumpkin> In-Reply-To: References: <20260615064855.90316-1-zhangzhanpeng.jasper@bytedance.com> <20260713122903.9458-1-zhangzhanpeng.jasper@bytedance.com> <3591a185-d0b5-4cb0-a0d5-ae9608a4e244@arm.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260714_075314_775493_A5419CDD X-CRM114-Status: GOOD ( 49.94 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gVHVlLCAxNCBKdWwgMjAyNiAyMToyNDoxOSArMDgwMApHdW8gUmVuIDxndW9yZW5Aa2VybmVs Lm9yZz4gd3JvdGU6Cgo+IE9uIFR1ZSwgSnVsIDE0LCAyMDI2IGF0IDg6MjfigK9QTSBSb2JpbiBN dXJwaHkgPHJvYmluLm11cnBoeUBhcm0uY29tPiB3cm90ZToKPiA+Cj4gPiBPbiAxMy8wNy8yMDI2 IDE6MjkgcG0sIFpoYW5wZW5nIFpoYW5nIHdyb3RlOiAgCj4gPiA+IFRoZSBSSVNDLVYgSU9NTVUg c3BlY2lmaWNhdGlvbiBbMV0gcGVybWl0cyA2NC1iaXQgcmVnaXN0ZXJzIHRvIGJlIGFjY2Vzc2Vk Cj4gPiA+IHVzaW5nIHR3byAzMi1iaXQgdHJhbnNhY3Rpb25zLCBoaWdoIGhhbGYgZmlyc3QsIGFu ZCBsZWF2ZXMgdGhlIHNpbmdsZS1jb3B5Cj4gPiA+IGF0b21pY2l0eSBvZiA4LWJ5dGUgSU9NTVUg cmVnaXN0ZXIgYWNjZXNzZXMgdW5zcGVjaWZpZWQuCj4gPiA+Cj4gPiA+IFVzZSB0aGUgZ2VuZXJp YyBoaV9sb19yZWFkcV9yZWxheGVkKCkgYW5kIGhpX2xvX3dyaXRlcV9yZWxheGVkKCkgaGVscGVy cwo+ID4gPiBmb3Igb3JkaW5hcnkgNjQtYml0IElPTU1VIHJlZ2lzdGVycy4gRm9yIEREVFAsIHBv bGwgQlVTWSBpbiB0aGUgbG93IGhhbGYsCj4gPiA+IHRoZW4gcmVhZCB0aGUgaGlnaCBoYWxmIGFu ZCBjb21wb3NlIHRoZSByZWdpc3RlciB2YWx1ZSBmcm9tIHRoZSBwb2xsZWQgbG93Cj4gPiA+IGhh bGYuIEhQTSBjb3VudGVyIHJlYWRzIHJlcXVpcmUgYSByb2xsb3Zlci1hd2FyZSBzZXF1ZW5jZSBh bmQgcmVtYWluCj4gPiA+IG91dHNpZGUgdGhlc2UgYWNjZXNzb3JzLgo+ID4gPgo+ID4gPiBUaGlz IGZvbGxvd3MgdGhlIDMyLWJpdCBhY2Nlc3MgZGlyZWN0aW9uIHByb3Bvc2VkIGJ5IEd1byBSZW4g WzJdIGFuZCB1c2VzCj4gPiA+IHRoZSBnZW5lcmljIG5vbi1hdG9taWMgTU1JTyBoZWxwZXJzIHN1 Z2dlc3RlZCBieSBEYXZpZCBMYWlnaHQuCj4gPiA+Cj4gPiA+IFsxXSBodHRwczovL2RvY3Mucmlz Y3Yub3JnL3JlZmVyZW5jZS9pb21tdS8KPiA+ID4gWzJdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L3IvMjAyNTA5MDMxNDQyMTcuODM3NDQ4LTEtZ3VvcmVuQGtlcm5lbC5vcmcKPiA+ID4KPiA+ID4g U3VnZ2VzdGVkLWJ5OiBHdW8gUmVuIDxndW9yZW5Aa2VybmVsLm9yZz4KPiA+ID4gU3VnZ2VzdGVk LWJ5OiBEYXZpZCBMYWlnaHQgPGRhdmlkLmxhaWdodC5saW51eEBnbWFpbC5jb20+Cj4gPiA+IFNp Z25lZC1vZmYtYnk6IFpoYW5wZW5nIFpoYW5nIDx6aGFuZ3poYW5wZW5nLmphc3BlckBieXRlZGFu Y2UuY29tPgo+ID4gPiAtLS0KPiA+ID4gQ2hhbmdlcyBpbiB2MzoKPiA+ID4gLSBVc2UgdGhlIERE VFAgYWNjZXNzIHNlcXVlbmNlIGZyb20gWzFdOiByZXRhaW4gdGhlIGxvdyBoYWxmIHJldHVybmVk IGJ5Cj4gPiA+ICAgIEJVU1kgcG9sbGluZywgcmVhZCBvbmx5IHRoZSBoaWdoIGhhbGYsIGFuZCBj b21wb3NlIHRoZSBERFRQIHZhbHVlIGZyb20KPiA+ID4gICAgdGhvc2UgdHdvIDMyLWJpdCByZWFk cy4KPiA+ID4KPiA+ID4gQ2hhbmdlcyBpbiB2MjoKPiA+ID4gLSBSZXdvcmsgdGhlIHBhdGNoIGJh c2VkIG9uIEd1byBSZW4ncyBlYXJsaWVyIHByb3Bvc2FsIFsxXS4KPiA+ID4gLSBEcm9wIHRoZSBi dWlsZC10aW1lIG9wdGlvbiBhbmQgdXNlIDMyLWJpdCBhY2Nlc3NlcyB1bmNvbmRpdGlvbmFsbHku Cj4gPiA+IC0gRHJvcCB0aGUgZ2xvYmFsIGxvY2sgYW5kIHVzZSB0aGUgZ2VuZXJpYyBoaWdoLWxv dyBNTUlPIGhlbHBlcnMsIGFzCj4gPiA+ICAgIHN1Z2dlc3RlZCBieSBEYXZpZCBMYWlnaHQuCj4g PiA+IC0gUG9sbCBERFRQLkJVU1kgdGhyb3VnaCBpdHMgbG93IGhhbGYuCj4gPiA+Cj4gPiA+IExp bmsgdG8gdjE6IFsyXQo+ID4gPiBTcGVjaWZpY2F0aW9uIGRpc2N1c3Npb246IFszXQo+ID4gPgo+ ID4gPiBbMV06IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvMjAyNTA5MDMxNDQyMTcuODM3NDQ4 LTEtZ3VvcmVuQGtlcm5lbC5vcmcKPiA+ID4gWzJdOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9y LzIwMjYwNjE1MDY0ODU1LjkwMzE2LTEtemhhbmd6aGFucGVuZy5qYXNwZXJAYnl0ZWRhbmNlLmNv bQo+ID4gPiBbM106IGh0dHBzOi8vZ2l0aHViLmNvbS9yaXNjdi1ub24taXNhL3Jpc2N2LWlvbW11 L2lzc3Vlcy83NjUKPiA+ID4KPiA+ID4gICBkcml2ZXJzL2lvbW11L3Jpc2N2L2lvbW11LmMgfCA5 ICsrKysrKy0tLQo+ID4gPiAgIGRyaXZlcnMvaW9tbXUvcmlzY3YvaW9tbXUuaCB8IDkgKysrLS0t LS0tCj4gPiA+ICAgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L3Jpc2N2L2lvbW11LmMg Yi9kcml2ZXJzL2lvbW11L3Jpc2N2L2lvbW11LmMKPiA+ID4gaW5kZXggY2VjM2RkZDdhYjEuLmQ2 NDdiNzFlYmVjIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2lvbW11L3Jpc2N2L2lvbW11LmMK PiA+ID4gKysrIGIvZHJpdmVycy9pb21tdS9yaXNjdi9pb21tdS5jCj4gPiA+IEBAIC02NzAsOSAr NjcwLDEyIEBAIHZvaWQgcmlzY3ZfaW9tbXVfZGlzYWJsZShzdHJ1Y3QgcmlzY3ZfaW9tbXVfZGV2 aWNlICppb21tdSkKPiA+ID4KPiA+ID4gICAjZGVmaW5lIHJpc2N2X2lvbW11X3JlYWRfZGR0cChp b21tdSkgKHsgXAo+ID4gPiAgICAgICB1NjQgZGR0cDsgXAo+ID4gPiAtICAgICByaXNjdl9pb21t dV9yZWFkcV90aW1lb3V0KChpb21tdSksIFJJU0NWX0lPTU1VX1JFR19ERFRQLCBkZHRwLCBcCj4g PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIShkZHRwICYgUklTQ1ZfSU9NTVVf RERUUF9CVVNZKSwgMTAsIFwKPiA+ID4gKyAgICAgdTMyIGRkdHBfbG8sIGRkdHBfaGk7IFwKPiA+ ID4gKyAgICAgcmlzY3ZfaW9tbXVfcmVhZGxfdGltZW91dCgoaW9tbXUpLCBSSVNDVl9JT01NVV9S RUdfRERUUCwgZGR0cF9sbywgXAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICEoZGR0cF9sbyAmIFJJU0NWX0lPTU1VX0REVFBfQlVTWSksIDEwLCBcCj4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUklTQ1ZfSU9NTVVfRERUUF9USU1FT1VUKTsgXAo+ID4g PiArICAgICBkZHRwX2hpID0gcmlzY3ZfaW9tbXVfcmVhZGwoKGlvbW11KSwgUklTQ1ZfSU9NTVVf UkVHX0REVFAgKyA0KTsgXCAgCj4gPgo+ID4gSXQgbG9va3MgbGlrZSB3aGVuZXZlciB5b3UgcmVh ZCBERFRQIHlvdSdyZSBvbmx5IHJlYWxseSBsb29raW5nIGF0IHRoZQo+ID4gQlVTWS9NT0RFIGZp ZWxkcyBhbnl3YXksIHNvIGRvZXMgdGhpcyBhY3R1YWxseSBuZWVkIHRvIHJlYWQgdGhlIHVwcGVy Cj4gPiBiaXRzIG9mIFBQTiBhdCBhbGw/IChUaGUgc3BlYyBzYXlzIHRoZXkgZG9uJ3QgZXZlbiBu ZWVkIHRvIGJlIHdyaXR0ZW4gb24KPiA+IFJWMzIgZWl0aGVyKSAgCj4gCj4gVGhlIG1vdGl2YXRp b24gaXMgbm90IFJWMzIgY29tcGF0aWJpbGl0eS4gSXQgYWRkcmVzc2VzIFJWNjQgcGxhdGZvcm1z Cj4gd2hlcmUgdGhlIElPTU1VIGNvbnRyb2wgcGxhbmUgY2FuIG9ubHkgYmUgYWNjZXNzZWQgdmlh IDMyLWJpdCBNTUlPLgo+IAo+ID4gIAo+ID4gPiArICAgICBkZHRwID0gKCh1NjQpZGR0cF9oaSA8 PCAzMikgfCBkZHRwX2xvOyBcCj4gPiA+ICAgICAgIGRkdHA7IH0pCj4gPiA+Cj4gPiA+ICAgc3Rh dGljIGludCByaXNjdl9pb21tdV9pb2Rpcl9hbGxvYyhzdHJ1Y3QgcmlzY3ZfaW9tbXVfZGV2aWNl ICppb21tdSkKPiA+ID4gQEAgLTE1MDEsNyArMTUwNCw3IEBAIHN0YXRpYyBpbnQgcmlzY3ZfaW9t bXVfaW5pdF9jaGVjayhzdHJ1Y3QgcmlzY3ZfaW9tbXVfZGV2aWNlICppb21tdSkKPiA+ID4gICAg ICAgICogcmVndWxhciBib290IGZsb3cgYW5kIGRpc2FibGUgdHJhbnNsYXRpb24gd2hlbiB3ZSBi b290IGludG8gYSBrZXhlYwo+ID4gPiAgICAgICAgKiBrZXJuZWwgYW5kIHRoZSBwcmV2aW91cyBr ZXJuZWwgbGVmdCB0aGVtIGVuYWJsZWQuCj4gPiA+ICAgICAgICAqLwo+ID4gPiAtICAgICBkZHRw ID0gcmlzY3ZfaW9tbXVfcmVhZHEoaW9tbXUsIFJJU0NWX0lPTU1VX1JFR19ERFRQKTsKPiA+ID4g KyAgICAgZGR0cCA9IHJpc2N2X2lvbW11X3JlYWRfZGR0cChpb21tdSk7Cj4gPiA+ICAgICAgIGlm IChkZHRwICYgUklTQ1ZfSU9NTVVfRERUUF9CVVNZKQo+ID4gPiAgICAgICAgICAgICAgIHJldHVy biAtRUJVU1k7Cj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L3Jpc2N2L2lv bW11LmggYi9kcml2ZXJzL2lvbW11L3Jpc2N2L2lvbW11LmgKPiA+ID4gaW5kZXggNDZkZjc5ZGQ1 NDkuLjFiMDM3OTBmYmUxIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2lvbW11L3Jpc2N2L2lv bW11LmgKPiA+ID4gKysrIGIvZHJpdmVycy9pb21tdS9yaXNjdi9pb21tdS5oCj4gPiA+IEBAIC0x MSw2ICsxMSw3IEBACj4gPiA+ICAgI2lmbmRlZiBfUklTQ1ZfSU9NTVVfSF8KPiA+ID4gICAjZGVm aW5lIF9SSVNDVl9JT01NVV9IXwo+ID4gPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2lvLTY0LW5v bmF0b21pYy1oaS1sby5oPgo+ID4gPiAgICNpbmNsdWRlIDxsaW51eC9pb21tdS5oPgo+ID4gPiAg ICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ID4gPiAgICNpbmNsdWRlIDxsaW51eC9pb3BvbGwu aD4KPiA+ID4gQEAgLTcwLDE3ICs3MSwxMyBAQCB2b2lkIHJpc2N2X2lvbW11X2Rpc2FibGUoc3Ry dWN0IHJpc2N2X2lvbW11X2RldmljZSAqaW9tbXUpOwo+ID4gPiAgICAgICByZWFkbF9yZWxheGVk KChpb21tdSktPnJlZyArIChhZGRyKSkKPiA+ID4KPiA+ID4gICAjZGVmaW5lIHJpc2N2X2lvbW11 X3JlYWRxKGlvbW11LCBhZGRyKSBcCj4gPiA+IC0gICAgIHJlYWRxX3JlbGF4ZWQoKGlvbW11KS0+ cmVnICsgKGFkZHIpKQo+ID4gPiArICAgICBoaV9sb19yZWFkcV9yZWxheGVkKChpb21tdSktPnJl ZyArIChhZGRyKSkgIAo+ID4KPiA+IFRoaXMgc2VlbXMgdW5uZWNlc3NhcnkgKHNpbWlsYXJseSBm b3Igd3JpdGVxKCkgYmVsb3cpIC0gb25jZSB5b3UndmUKPiA+IGluY2x1ZGVkIHRoZSBoZWFkZXIs IHRoZW4gaXQgYXV0b21hdGljYWxseSBwcm92aWRlcyByZWFkcXtfcmVsYXhlZH0oKQo+ID4gZm9y IFJWMzIgdmlhIHRoZSBub24tYXRvbWljIGltcGxlbWVudGF0aW9uLCBhbmQgd2hlcmV2ZXIgYXRv bWljaXR5Cj4gPiBkb2Vzbid0IG1hdHRlciwgdGhlbiBhcyB3cml0dGVuIHRoZXJlIHNlZW1zIHRv IGJlIG5vIHJlYXNvbiBmb3IgUlY2NCB0bwo+ID4gc3RvcCB1c2luZyB0aGUgcmVndWxhciBhcmNo IHJlYWRxKCkuCj4gPgo+ID4gTm90IHRoYXQgaXQgbWFrZXMgYW55IGRpZmZlcmVuY2UgdG8gbWUg ZWl0aGVyIHdheSwgYnV0IEkgZG9uJ3Qgc2VlIGFueQo+ID4gcmVhbCBpc3N1ZSB3aXRoIHRoZSBz cGVjIC0gaWYgc29mdHdhcmUgKm1heSogbWFrZSBhIDY0LWJpdCBhY2Nlc3MgdG8gYW55Cj4gPiA2 NC1iaXQgcmVnaXN0ZXIgdW5jb25kaXRpb25hbGx5LCB0aGVuIHRoYXQgY2FuIG9ubHkgaW1wbHkg dGhhdCBoYXJkd2FyZQo+ID4gKm11c3QqIGJlIGFibGUgdG8gYWNjb21tb2RhdGUgUlY2NCBzb2Z0 d2FyZSBjaG9vc2luZyB0byBkbyBzbywgYW5kCj4gPiB0aGVyZWZvcmUgbXVzdCBzdXBwb3J0ICpi b3RoKiAzMmIgYW5kIDY0YiBhY2Nlc3NlcyBpbiBnZW5lcmFsLCBleGNlcHQKPiA+IHBlcmhhcHMg b24gUlYzMi1vbmx5IHN5c3RlbXMgaWYgc29mdHdhcmUgY291bGQgbmV2ZXIgbWFrZSA2NGIgYWNj ZXNzZXMKPiA+IGluIHRoZSBmaXJzdCBwbGFjZS4gSWYgNjRiIHNpbmdsZS1jb3B5IGF0b21pY2l0 eSBpcyBub3QKPiA+IHJlcXVpcmVkL3NwZWNpZmllZCB0aGVuIGl0IHNob3VsZCBiZSB2YWxpZCB0 byBhY2hpZXZlIHRoYXQgYnkganVzdAo+ID4gc3RpY2tpbmcgYSBkb3duc2l6ZXIgaW4gdGhlIHVw c3RyZWFtIGludGVyY29ubmVjdCB0byBzcGxpdCA2NGIgYWNjZXNzZXMKPiA+IGludG8gMzJieDIg aW5jcmVtZW50YWwgYnVyc3RzLgo+ID4KPiA+IElmIGRvIGFjdHVhbGx5IHlvdSBuZWVkIHRoaXMg YXMgYW4gZXJyYXR1bSB3b3JrYXJvdW5kIHRvIHN1cHBvcnQKPiA+IHNwZWNpZmljIGhhcmR3YXJl IHdoaWNoIGhhcyBtaXNpbnRlcnByZXRlZCB0aGUgc3BlYyB0aGVuIEkgdGhpbmsgeW91Cj4gPiBz aG91bGQgYmUgY2xlYXIgYWJvdXQgdGhhdC4gT3RoZXJ3aXNlLCBhZGRpbmcgc3BlY3VsYXRpdmUg Indvcmthcm91bmRzIgo+ID4gd2hpY2ggKHNsaWdodGx5KSBwZW5hbGlzZSBoYXJkd2FyZSB0aGF0 IGdvdCBpdCByaWdodCwgd2hpbGUgaW52aXRpbmcKPiA+IGZ1dHVyZSBoYXJkd2FyZSB0byBnZXQg aXQgd3JvbmcsIGRvZXNuJ3Qgc2VlbSBsaWtlIHRoZSByaWdodCB3YXkgdG8gZ28KPiA+IGF0IGFs bC4uLiAgCj4gCj4gVGhlIG9ubHkgdGhyZWUgNjQtYml0IHJlZ2lzdGVycyB0aGUgZHJpdmVyIGV2 ZXIgdG91Y2hlcyBhcmUgRERUUCwKPiBDQVBBQklMSVRJRVMsIGFuZCBNU0lfQ0ZHX1RCTF9BRERS LiBOb25lIG9mIHRoZW0gaXMgb24gYW55Cj4gcGVyZm9ybWFuY2UtY3JpdGljYWwgb3IgaG90IHBh dGguIEV2ZW4gaWYgbmF0aXZlIDY0LWJpdCBNTUlPIGFjY2Vzc2VzCj4gd2VyZSB1c2VkLCB0aGVy ZSB3b3VsZCBiZSBubyBvYnNlcnZhYmxlIHBlcmZvcm1hbmNlIGJlbmVmaXQuCj4gVGhlcmVmb3Jl LCB0aGlzIGNoYW5nZSBkb2VzIG5vdCBwZW5hbGl6ZSBhbnkgaGFyZHdhcmUuCj4gCj4gUmVnYXJk aW5nIHRoZSBzcGVjaWZpY2F0aW9uLCB0aGVyZSByZW1haW5zIHN1YnN0YW50aWFsIGRpc2FncmVl bWVudAo+IG92ZXIgd2hldGhlciA2NC1iaXQgYWNjZXNzZXMgYXJlIG1hbmRhdG9yeS4gVGhlIHJl bGV2YW50IHNlbnRlbmNlIHVzZXMKPiB0aGUgd29yZCDigJxtYXnigJ0gKOKAnG1heSBiZSBhY2Nl c3NlZCB1c2luZyBlaXRoZXIgYSAzMi1iaXQgb3IgYSA2NC1iaXQKPiBhY2Nlc3PigJ0pLiBQZXIg UkZDIDIxMTksIOKAnG1heeKAnSBkb2VzIG5vdCBleHByZXNzIGEgcmVxdWlyZW1lbnQuIEJlY2F1 c2UKPiBldmVyeSBleGlzdGluZyBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5IHByb3ZpZGVzIHdvcmtp bmcgMzItYml0IE1NSU8KPiBhY2Nlc3MsIHdlIGJlbGlldmUgdGhlIHNhZmVyIGFuZCBsZXNzIGNv bnRyb3ZlcnNpYWwgY2hvaWNlIGlzIHRvIHVzZQo+IHRoZSBwb3J0YWJsZSAzMi1iaXQgcGF0aCB2 aWEgdGhlIGdlbmVyaWMgaGktbG8gaGVscGVycy4KPiAKClRoZXJlIGlzIGFsc28gdGhpcyBjbGF1 c2U6CglUaGUgOC1ieXRlIElPTU1VIHJlZ2lzdGVycyBhcmUgZGVmaW5lZCBpbiBzdWNoIGEgd2F5 IHRoYXQgc29mdHdhcmUgY2FuCglwZXJmb3JtIHR3byBpbmRpdmlkdWFsIDQtYnl0ZSBhY2Nlc3Nl cywgb3IgaGFyZHdhcmUgY2FuIHBlcmZvcm0gdHdvCglpbmRlcGVuZGVudCA0LWJ5dGUgdHJhbnNh Y3Rpb25zIHJlc3VsdGluZyBmcm9tIGFuIDgtYnl0ZSBhY2Nlc3MsCgl0byB0aGUgaGlnaCBhbmQg bG93IGhhbHZlcyBvZiB0aGUgcmVnaXN0ZXIsIGluIHRoYXQgb3JkZXIsIGFzIGxvbmcgYXMKCXRo ZSByZWdpc3RlciBzZW1hbnRpY3MsIHdpdGggcmVnYXJkIHRvIHNpZGUtZWZmZWN0cywgYXJlIHJl c3BlY3RlZAoJYmV0d2VlbiB0aGUgdHdvIHNvZnR3YXJlIGFjY2Vzc2VzLCBvciB0d28gaGFyZHdh cmUgdHJhbnNhY3Rpb25zLAoJcmVzcGVjdGl2ZWx5LgoKSSdtIG5vdCBzdXJlIHdoYXQgdGhlIHJl bGV2YW5jZSBvZiB0aGUgaGlnaC1sb3cgb3JkZXIgaXMuCkl0IGNvdWxkIG1lYW4sIGZvciBleGFt cGxlLCB0aGF0IGEgcmVhZCBvZiB0aGUgaGlnaCB3b3JkIGNhbiBsYXRjaCB0aGUgbG93CmZvciB0 aGUgbmV4dCByZWFkIC0gc28gdGhhdCB5b3UgZ2V0IGFuIGF0b21pYyA2NGJpdCByZWFkLgpUaGF0 IG1pZ2h0IGJlIG9rIGlmIGhhcmR3YXJlIHNwbGl0cyB0aGUgNjRiaXQgcmVhZCwgYnV0IGlmIHNv ZnR3YXJlIGRvZXMgaXQKaXQgaXNuJ3QgZ29pbmcgdG8gZ28gd2VsbCB1bmxlc3MgdGhlIGRyaXZl ciBsb2NrcyBhbGwgKGFuZCBpdCBtaWdodCBiZSBhbGwpCnNsYXZlIGFjY2Vzc2VzLgpJbiB0aGUg d29yc3QgY2FzZSB0aGVyZSBtaWdodCBiZSBhIHNpbmdsZSBsYXRjaCBmb3IgYWxsIG9kZCB3b3Jk IHJlYWRzLgpXcml0ZXMgY291bGQgYmUgd29yc2UhCgpIYXJkd2FyZSBjYW4gYmUgdGhhdCBicm9r ZW4uCkkgcmVtZW1iZXIgYSBQQ0kgc2xhdmUgdGhhdCB0ZXJtaW5hdGVkIHJlYWRzIHJlcXVlc3Rp bmcgJ2N5Y2xlIHJlcnVuJwphbmQgdGhlbiBhc3N1bWVkIHRoYXQgdGhlIGZvbGxvd2luZyByZWFk cyB3b3VsZCBiZSByZXBlYXRzIG9mIHRoZSBzYW1lCnJlYWQsIG5vdCByZWFkcyBvZiBhIGRpZmZl cmVudCBhZGRyZXNzIGJ5IHRoZSBvdGhlciBjcHUuCkl0IGRpZG4ndCBkbyB3cml0ZXMgcHJvcGVy bHkgZWl0aGVyLCBJJ3ZlIGZvcmdvdHRlbiB0aGUgZXhhY3QgZGV0YWlscwpidXQgSSB0aGluayBh IHNlY29uZCAodGhpcmQ/KSB3cml0ZSBvdmVyd3JpdGUgc29tZSBsYXRjaGVzLgoKCURhdmlkCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlz Y3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6762448C8C5 for ; Tue, 14 Jul 2026 14:53:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784040798; cv=none; b=WTmOx4MVyOSudhCoeBqiL9sxi5AqbXSsgOkQBW+NV73HkfJ2bmnSXEoZZU74PjD36eYcOteqwPRPV29GEMVR/6/bqi8U+ZkXf+nB2aFoJNA3qU4uVupchLb6bSTGBY/g4NI0eRm49he7MAY9ii+aUFw9YaltGSSA22ohKAN90WU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784040798; c=relaxed/simple; bh=Xo3watiwcFJTp0DI7j9qzLePC/4mR79ZkMl/gbtKsKg=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=szW7ViL8s4ptb2vhjH9dnDf0moLHJ3j2DOfTBl2wmFvly7mMAkbjWm1nKVRJA5AlpiDDGBHzrGNmvBsAR/g2rmIFQJnzjpTOuALo7uc0BGWwZllacK6wmRrT1Bf/f6o/34HQOX6SuCfBDULqdx2WnVHoKiGDg4G2TfBZjz2Djqc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ggDaMTew; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ggDaMTew" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-493b27c7451so12829995e9.0 for ; Tue, 14 Jul 2026 07:53:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784040793; x=1784645593; darn=lists.linux.dev; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=pbWrlFJpCsAWWpngb8AaY/VxYoSajEZxkhMh3lUDPkg=; b=ggDaMTewuVzU8SfrrTjOEdNfOcC6ZeXYIBpBoQuhQq+lB782PZwQKSyEGiB2ho04BP QhciFmXeypmhnD7XSpvboxc0qsji/074AL1B52AEhmX8aHIyJkf+luq+6OHCuyR3lcQQ gLr6rQ2ssJxHkIUIeLwrus9RYpppm5TAFrveVOSZ9ApZxE8hTUpS5mmQ1eYnLF//ALKs 5zAk7H8ylFTpCqMXdjb+XEy0tyrwmJKhjpRuMs5noOpXCrTxwRi+CJkMhSlH/jvB7Smy jbZBnbNy4a2gV5OKSCRCXdA1ER3ezFxmNKgYUbbXXeRtlcjwFMHIhEXIK+r+iCdZJdur bNCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784040793; x=1784645593; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=pbWrlFJpCsAWWpngb8AaY/VxYoSajEZxkhMh3lUDPkg=; b=skpWNhKx1WByOVwfPBzutN+nJVOl/fyRafiY6A6SyAA4qJf7LToKSenHcERxGnnZyN EX/Jx/P8cDPz7/glyN2wNHlbC1Y8u95f93JsnuJZOIQub1zVTowLSj8lMFt2gWr1YpXy Qyl1qQ8azf4ltPa1O3SaI9uDjdm64f3oO0+HNj0gpWceFxsRqRDyvLS0jAvS/wiCAfAu iKcEPFvYbnE4dy/PJFukgtJODs18Z41yiX8xymgRzi0+/QSlmqSaULaMDoYM4e2abj6E wnKtBJBEJTZJMelUQid0N0FYHjSxVTbYISpx0qktvEBjTV4dCN1kQ2+mrwtrPiq0zYTa z/mw== X-Forwarded-Encrypted: i=1; AHgh+Rqm0MH0ehpXBDAa8Bq/FguSwv772xsTCq0mSnZ30Tms6/3VxD6Aq+e6xqb1PHJ8aeNQeuIY2A==@lists.linux.dev X-Gm-Message-State: AOJu0YyTLpPnerKlJCDsG9GItV7qygEv0ZnBvKClegxdGbAA4pkf2+VR SOBP0P/YnksedruiC6aXJnLGezilxzD8QYGBTGG3Lf+InO2RH7q90ObT X-Gm-Gg: AfdE7ckeBOUg3zl1rMA0FX7bTGah9l1BQZtDXGCo5mJr0+74DRrxy8fsrcN9fRsDvrh EbK3gQIVG9mEY3CitI+3Uy1zAoM8q2KV4upAOII+WpW8UNNDcRLdSPCedozaAlhUYGnDH6pB3vP yPFzyw4WkTjwmYY0nhEca7GGuGyGUbIJ9R68BU+3h9kMYvk7c3unlCKysfixRXn6HjnvzYVVw+/ WY3IO/IsXdSOfTj94uH0VbNGsKbf2CMlOV1rrQoWat7M2vKa/+xOjvowuzMjpLtm8IWxv+k6Vvc y+/72nVFPB2XC2n3FgqJReXG3hJidjOlC2kbl0MXo+q+dYRKotzaUY/ZYZy3YBJ8RvZwwwV+2R+ 6YpDQp/T5Ws3Ap+ki7my0dMjQIyFsj3Q+PBy9gVpFZTastCVU8mdomqeclWDQwlci6s70VlsCXi t3KYDU9mZIv12e57V34EGFF+5/cVh6QOFQxKXYArlq634lYFvJ0jngEt7wfYFE X-Received: by 2002:a05:600c:8b65:b0:493:f478:4c71 with SMTP id 5b1f17b1804b1-493f8885308mr139772165e9.7.1784040792394; Tue, 14 Jul 2026 07:53:12 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49508724786sm82851595e9.3.2026.07.14.07.53.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 07:53:12 -0700 (PDT) Date: Tue, 14 Jul 2026 15:53:10 +0100 From: David Laight To: Guo Ren Cc: Robin Murphy , Zhanpeng Zhang , Tomasz Jeznach , Joerg Roedel , Will Deacon , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Vivian Wang , Zong Li , cuiyunhui@bytedance.com, yuanzhu@bytedance.com, iommu@lists.linux.dev, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers Message-ID: <20260714155310.2e17473c@pumpkin> In-Reply-To: References: <20260615064855.90316-1-zhangzhanpeng.jasper@bytedance.com> <20260713122903.9458-1-zhangzhanpeng.jasper@bytedance.com> <3591a185-d0b5-4cb0-a0d5-ae9608a4e244@arm.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: iommu@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Tue, 14 Jul 2026 21:24:19 +0800 Guo Ren wrote: > On Tue, Jul 14, 2026 at 8:27=E2=80=AFPM Robin Murphy wrote: > > > > On 13/07/2026 1:29 pm, Zhanpeng Zhang wrote: =20 > > > The RISC-V IOMMU specification [1] permits 64-bit registers to be acc= essed > > > using two 32-bit transactions, high half first, and leaves the single= -copy > > > atomicity of 8-byte IOMMU register accesses unspecified. > > > > > > Use the generic hi_lo_readq_relaxed() and hi_lo_writeq_relaxed() help= ers > > > for ordinary 64-bit IOMMU registers. For DDTP, poll BUSY in the low h= alf, > > > then read the high half and compose the register value from the polle= d low > > > half. HPM counter reads require a rollover-aware sequence and remain > > > outside these accessors. > > > > > > This follows the 32-bit access direction proposed by Guo Ren [2] and = uses > > > the generic non-atomic MMIO helpers suggested by David Laight. > > > > > > [1] https://docs.riscv.org/reference/iommu/ > > > [2] https://lore.kernel.org/r/20250903144217.837448-1-guoren@kernel.o= rg > > > > > > Suggested-by: Guo Ren > > > Suggested-by: David Laight > > > Signed-off-by: Zhanpeng Zhang > > > --- > > > Changes in v3: > > > - Use the DDTP access sequence from [1]: retain the low half returned= by > > > BUSY polling, read only the high half, and compose the DDTP value = from > > > those two 32-bit reads. > > > > > > Changes in v2: > > > - Rework the patch based on Guo Ren's earlier proposal [1]. > > > - Drop the build-time option and use 32-bit accesses unconditionally. > > > - Drop the global lock and use the generic high-low MMIO helpers, as > > > suggested by David Laight. > > > - Poll DDTP.BUSY through its low half. > > > > > > Link to v1: [2] > > > Specification discussion: [3] > > > > > > [1]: https://lore.kernel.org/r/20250903144217.837448-1-guoren@kernel.= org > > > [2]: https://lore.kernel.org/r/20260615064855.90316-1-zhangzhanpeng.j= asper@bytedance.com > > > [3]: https://github.com/riscv-non-isa/riscv-iommu/issues/765 > > > > > > drivers/iommu/riscv/iommu.c | 9 ++++++--- > > > drivers/iommu/riscv/iommu.h | 9 +++------ > > > 2 files changed, 9 insertions(+), 9 deletions(-) > > > > > > diff --git a/drivers/iommu/riscv/iommu.c b/drivers/iommu/riscv/iommu.c > > > index cec3ddd7ab1..d647b71ebec 100644 > > > --- a/drivers/iommu/riscv/iommu.c > > > +++ b/drivers/iommu/riscv/iommu.c > > > @@ -670,9 +670,12 @@ void riscv_iommu_disable(struct riscv_iommu_devi= ce *iommu) > > > > > > #define riscv_iommu_read_ddtp(iommu) ({ \ > > > u64 ddtp; \ > > > - riscv_iommu_readq_timeout((iommu), RISCV_IOMMU_REG_DDTP, ddtp, \ > > > - !(ddtp & RISCV_IOMMU_DDTP_BUSY), 10, \ > > > + u32 ddtp_lo, ddtp_hi; \ > > > + riscv_iommu_readl_timeout((iommu), RISCV_IOMMU_REG_DDTP, ddtp_l= o, \ > > > + !(ddtp_lo & RISCV_IOMMU_DDTP_BUSY), 1= 0, \ > > > RISCV_IOMMU_DDTP_TIMEOUT); \ > > > + ddtp_hi =3D riscv_iommu_readl((iommu), RISCV_IOMMU_REG_DDTP + 4= ); \ =20 > > > > It looks like whenever you read DDTP you're only really looking at the > > BUSY/MODE fields anyway, so does this actually need to read the upper > > bits of PPN at all? (The spec says they don't even need to be written on > > RV32 either) =20 >=20 > The motivation is not RV32 compatibility. It addresses RV64 platforms > where the IOMMU control plane can only be accessed via 32-bit MMIO. >=20 > > =20 > > > + ddtp =3D ((u64)ddtp_hi << 32) | ddtp_lo; \ > > > ddtp; }) > > > > > > static int riscv_iommu_iodir_alloc(struct riscv_iommu_device *iommu) > > > @@ -1501,7 +1504,7 @@ static int riscv_iommu_init_check(struct riscv_= iommu_device *iommu) > > > * regular boot flow and disable translation when we boot into = a kexec > > > * kernel and the previous kernel left them enabled. > > > */ > > > - ddtp =3D riscv_iommu_readq(iommu, RISCV_IOMMU_REG_DDTP); > > > + ddtp =3D riscv_iommu_read_ddtp(iommu); > > > if (ddtp & RISCV_IOMMU_DDTP_BUSY) > > > return -EBUSY; > > > > > > diff --git a/drivers/iommu/riscv/iommu.h b/drivers/iommu/riscv/iommu.h > > > index 46df79dd549..1b03790fbe1 100644 > > > --- a/drivers/iommu/riscv/iommu.h > > > +++ b/drivers/iommu/riscv/iommu.h > > > @@ -11,6 +11,7 @@ > > > #ifndef _RISCV_IOMMU_H_ > > > #define _RISCV_IOMMU_H_ > > > > > > +#include > > > #include > > > #include > > > #include > > > @@ -70,17 +71,13 @@ void riscv_iommu_disable(struct riscv_iommu_devic= e *iommu); > > > readl_relaxed((iommu)->reg + (addr)) > > > > > > #define riscv_iommu_readq(iommu, addr) \ > > > - readq_relaxed((iommu)->reg + (addr)) > > > + hi_lo_readq_relaxed((iommu)->reg + (addr)) =20 > > > > This seems unnecessary (similarly for writeq() below) - once you've > > included the header, then it automatically provides readq{_relaxed}() > > for RV32 via the non-atomic implementation, and wherever atomicity > > doesn't matter, then as written there seems to be no reason for RV64 to > > stop using the regular arch readq(). > > > > Not that it makes any difference to me either way, but I don't see any > > real issue with the spec - if software *may* make a 64-bit access to any > > 64-bit register unconditionally, then that can only imply that hardware > > *must* be able to accommodate RV64 software choosing to do so, and > > therefore must support *both* 32b and 64b accesses in general, except > > perhaps on RV32-only systems if software could never make 64b accesses > > in the first place. If 64b single-copy atomicity is not > > required/specified then it should be valid to achieve that by just > > sticking a downsizer in the upstream interconnect to split 64b accesses > > into 32bx2 incremental bursts. > > > > If do actually you need this as an erratum workaround to support > > specific hardware which has misinterpreted the spec then I think you > > should be clear about that. Otherwise, adding speculative "workarounds" > > which (slightly) penalise hardware that got it right, while inviting > > future hardware to get it wrong, doesn't seem like the right way to go > > at all... =20 >=20 > The only three 64-bit registers the driver ever touches are DDTP, > CAPABILITIES, and MSI_CFG_TBL_ADDR. None of them is on any > performance-critical or hot path. Even if native 64-bit MMIO accesses > were used, there would be no observable performance benefit. > Therefore, this change does not penalize any hardware. >=20 > Regarding the specification, there remains substantial disagreement > over whether 64-bit accesses are mandatory. The relevant sentence uses > the word =E2=80=9Cmay=E2=80=9D (=E2=80=9Cmay be accessed using either a 3= 2-bit or a 64-bit > access=E2=80=9D). Per RFC 2119, =E2=80=9Cmay=E2=80=9D does not express a = requirement. Because > every existing implementation already provides working 32-bit MMIO > access, we believe the safer and less controversial choice is to use > the portable 32-bit path via the generic hi-lo helpers. >=20 There is also this clause: The 8-byte IOMMU registers are defined in such a way that software can perform two individual 4-byte accesses, or hardware can perform two independent 4-byte transactions resulting from an 8-byte access, to the high and low halves of the register, in that order, as long as the register semantics, with regard to side-effects, are respected between the two software accesses, or two hardware transactions, respectively. I'm not sure what the relevance of the high-low order is. It could mean, for example, that a read of the high word can latch the low for the next read - so that you get an atomic 64bit read. That might be ok if hardware splits the 64bit read, but if software does it it isn't going to go well unless the driver locks all (and it might be all) slave accesses. In the worst case there might be a single latch for all odd word reads. Writes could be worse! Hardware can be that broken. I remember a PCI slave that terminated reads requesting 'cycle rerun' and then assumed that the following reads would be repeats of the same read, not reads of a different address by the other cpu. It didn't do writes properly either, I've forgotten the exact details but I think a second (third?) write overwrite some latches. David