From nobody Fri May 3 02:30:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660641516; cv=none; d=zohomail.com; s=zohoarc; b=OMJdD+iVmo6VYjcOs6TNKqnCJhkb7+dJn7xz13HPWuzvu198EvNxS879PLKNNKRJwBYA8b/hdHx9D1WHW6t6mO96fZ6X4DgAdkocctJD5oFXwxOdKf4IHYDOQlwJP4eVd/UpMfHZwUKycLwKcVidGGKtDFnbovNhigd2E5FEMfI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660641516; h=Content-Type:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=BEWbrk13B8dUUcS/iloltDDXvYcOYwRvmnKjiW12DIU=; b=Sc7wyGYAG3VZG2LPFVcrE0pFBvNVqFKSPcGt27KW91Zh1y4Gg+86x8ml+trCyBJ+W6uh/PaBSYvIkBmDt9W7aQg2TMcvUcTt3NO98KOmiosXphwtlrvj+a8SQGlvK0+jrMFqiOJ35LZglALlqBRQ7MEoGshnb/Sb0nLAeWxRu3U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660641516955733.5776761445737; Tue, 16 Aug 2022 02:18:36 -0700 (PDT) Received: from localhost ([::1]:47850 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oNsiY-0007RX-T9 for importer@patchew.org; Tue, 16 Aug 2022 05:18:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59000) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNsgw-0006iz-0H for qemu-devel@nongnu.org; Tue, 16 Aug 2022 05:16:54 -0400 Received: from mail-yw1-x1136.google.com ([2607:f8b0:4864:20::1136]:46649) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oNsgt-0002QE-2U for qemu-devel@nongnu.org; Tue, 16 Aug 2022 05:16:53 -0400 Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-31f445bd486so135080587b3.13 for ; Tue, 16 Aug 2022 02:16:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc; bh=BEWbrk13B8dUUcS/iloltDDXvYcOYwRvmnKjiW12DIU=; b=CfdmB1weWZxVie73busfr8yjsc9DQ/1i0bAg7YtF7EE0cpp1CE3kpX+aV3kwRWh4yB SQzFRIz9Xkqakt9zdBgET1DayeaA8OExj/SsR4+IUDsT3t1xDXUVfia4abYx280mWfVC UnX+SxLWh2jBAbbiMJGofNGwMmtWNljlnnQ9zO3Q2U9h6TZMNplM5JQvsCMnI3GskKCV ciDwUq3ycV6IU6LeudC8uly2+UANrrGSjWGaoKLJFP71LNB0liO5KzNxqAG/tqFc5JrU j5Tw8MeO1fy7EpS1ANGnKfagreUgHudGqrcPPzgMuyGyrPjrUG911BNj4T3Ux4cf+jaA r56w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc; bh=BEWbrk13B8dUUcS/iloltDDXvYcOYwRvmnKjiW12DIU=; b=mxm6gt4tOSOsP4aIVJX4dPIHcvuOHTovfAR2XLywlt9k+gipvXi+XcHh9zyDJU3StP mDH313MyPNcw0DxXS7olVOkYs18SVYnk2PLM4XGd6fH5+CZeFJX/noUdo3eZ90gbtTR1 IEGAGdFMzdcEoUT45lLD//sy55wnWpRepPyW1lN+bIKQ35INJTzHCB7jF3339Oc1he1C 4qtFjzofigbkmdMVJwAgr8m+k1Asar7KrofbZk/HOuohFB2OTO6fM5pI9cGzFnYkG63V qAfWfDKNLngFIu+hBTdafXZFySiKLHpguW1bQD3JjmICaei7A7z6FKUWZ6j00POqGzgq Q/GQ== X-Gm-Message-State: ACgBeo1F699HZMvPcQ2PNuwO77PsjhO7711XoqcoWOnZ5q/gl+N/LIIg NN9mMp1qO5KoYgRlLLQGqkSvOCpL+rb6R2TEvMw= X-Google-Smtp-Source: AA6agR7fbcSxsKRG0P+T5jc3+4bkRCCvWZgNofpSFUsLQLkV/0h687Mmmkd4DVnTjfnN2zuw8ErehwVZfjQBtVCYgcI= X-Received: by 2002:a05:6902:100a:b0:676:ed53:25b0 with SMTP id w10-20020a056902100a00b00676ed5325b0mr13647958ybt.365.1660641409782; Tue, 16 Aug 2022 02:16:49 -0700 (PDT) MIME-Version: 1.0 From: Paul Schlacter Date: Tue, 16 Aug 2022 17:16:38 +0800 Message-ID: Subject: [PATCH v2] xio3130_upstream: Add ACS (Access Control Services) capability To: "Michael S. Tsirkin" , marcel.apfelbaum@gmail.com, fam@euphon.net, kwolf@redhat.com, stefanha@redhat.com, k.jensen@samsung.com, f4bug@amsat.org, its@irrelevant.dk, xypron.glpk@gmx.de, imammedo@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com, kbusch@kernel.org, hreitz@redhat.com, ani@anisinha.ca Content-Type: multipart/alternative; boundary="000000000000545bd405e65835d8" Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1136; envelope-from=wlfightup@gmail.com; helo=mail-yw1-x1136.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660641517833100001 Content-Transfer-Encoding: quoted-printable --000000000000545bd405e65835d8 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 djEgLT4gdjI6Ci0gQWxsb3cgQUNTIHRvIGJlIGRpc2FibGVkLgotIFN1Z2dlc3RlZCBieSBNaWNo YWVsIFMuIFRzaXJraW4sIHVzZSBkaXNhYmxlLWFjcyB0byBzZXQgcHJvcGVydHkuCgp2MToKLSBB ZGQgQUNTIChBY2Nlc3MgQ29udHJvbCBTZXJ2aWNlcykgY2FwYWJpbGl0eS4KCklmIGl0IGlzIGEg cGNpZSBkZXZpY2UsIGNoZWNrIHRoYXQgYWxsIGRldmljZXMgb24gdGhlIHBhdGggZnJvbQoKdGhl IGRldmljZSB0byB0aGUgcm9vdCBjb21wbGV4IGhhdmUgQUNTIGVuYWJsZWQsIGFuZCB0aGVuIHRo ZQoKZGV2aWNlIHdpbGwgYmVjb21lIGFuIGlvbW11X2dyb3VwLgoKaXQgd2lsbCBoYXZlIHRoZSBl ZmZlY3Qgb2YgaXNvbGF0aW9uCgoKClNpZ25lZC1vZmYtYnk6IHdhbmdsaWFuZyA8d2xmaWdodHVw QGdtYWlsLmNvbT4KClNpZ25lZC1vZmYtYnk6IHdhbmdsaWFuZyA8d2FuZ2xpYW5nNDBAYmFpZHUu Y29tPgoKCgotLS0KCiBody9wY2ktYnJpZGdlL3hpbzMxMzBfdXBzdHJlYW0uYyB8IDEyICsrKysr KysrKysrLQoKIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgoKZGlmZiAtLWdpdCBhL2h3L3BjaS1icmlkZ2UveGlvMzEzMF91cHN0cmVhbS5jCmIvaHcvcGNp LWJyaWRnZS94aW8zMTMwX3Vwc3RyZWFtLmMKCmluZGV4IDJkZjk1MjIyMmIuLjU0MzNkMDZmYjMg MTAwNjQ0CgotLS0gYS9ody9wY2ktYnJpZGdlL3hpbzMxMzBfdXBzdHJlYW0uYwoKKysrIGIvaHcv cGNpLWJyaWRnZS94aW8zMTMwX3Vwc3RyZWFtLmMKCkBAIC0yNCw2ICsyNCw3IEBACgogI2luY2x1 ZGUgImh3L3BjaS9tc2kuaCIKCiAjaW5jbHVkZSAiaHcvcGNpL3BjaWUuaCIKCiAjaW5jbHVkZSAi aHcvcGNpL3BjaWVfcG9ydC5oIgoKKyNpbmNsdWRlICJody9xZGV2LXByb3BlcnRpZXMuaCIKCiAj aW5jbHVkZSAibWlncmF0aW9uL3Ztc3RhdGUuaCIKCiAjaW5jbHVkZSAicWVtdS9tb2R1bGUuaCIK CgoKQEAgLTU5LDYgKzYwLDcgQEAgc3RhdGljIHZvaWQgeGlvMzEzMF91cHN0cmVhbV9yZXNldChE ZXZpY2VTdGF0ZSAqcWRldikKCiBzdGF0aWMgdm9pZCB4aW8zMTMwX3Vwc3RyZWFtX3JlYWxpemUo UENJRGV2aWNlICpkLCBFcnJvciAqKmVycnApCgogewoKICAgICBQQ0lFUG9ydCAqcCA9M0QgUENJ RV9QT1JUKGQpOwoKKyAgICBQQ0lFU2xvdCAqcyA9M0QgUENJRV9TTE9UKGQpOwoKICAgICBpbnQg cmM7CgoKCiAgICAgcGNpX2JyaWRnZV9pbml0Zm4oZCwgVFlQRV9QQ0lFX0JVUyk7CgpAQCAtOTQs NyArOTYsOSBAQCBzdGF0aWMgdm9pZCB4aW8zMTMwX3Vwc3RyZWFtX3JlYWxpemUoUENJRGV2aWNl ICpkLCBFcnJvcgoqKmVycnApCgogICAgICAgICBnb3RvIGVycjsKCiAgICAgfQoKCgotICAgIHBj aWVfYWNzX2luaXQoZCwgWElPMzEzMF9BQ1NfT0ZGU0VUKTsKCisgICAgaWYgKCFzLT5kaXNhYmxl X2FjcykgewoKKyAgICAgICAgcGNpZV9hY3NfaW5pdChkLCBYSU8zMTMwX0FDU19PRkZTRVQpOwoK KyAgICB9CgogICAgIHJldHVybjsKCgoKIGVycjoKCkBAIC0xMTMsNiArMTE3LDExIEBAIHN0YXRp YyB2b2lkIHhpbzMxMzBfdXBzdHJlYW1fZXhpdGZuKFBDSURldmljZSAqZCkKCiAgICAgcGNpX2Jy aWRnZV9leGl0Zm4oZCk7CgogfQoKCgorc3RhdGljIFByb3BlcnR5IHhpbzMxMzBfdXBzdHJlYW1f cHJvcHNbXSA9M0QgewoKKyAgICBERUZJTkVfUFJPUF9CT09MKCJkaXNhYmxlLWFjcyIsIFBDSUVT bG90LCBkaXNhYmxlX2FjcywgZmFsc2UpLAoKKyAgICBERUZJTkVfUFJPUF9FTkRfT0ZfTElTVCgp CgorfTsKCisKCiBzdGF0aWMgY29uc3QgVk1TdGF0ZURlc2NyaXB0aW9uIHZtc3RhdGVfeGlvMzEz MF91cHN0cmVhbSA9M0QgewoKICAgICAubmFtZSA9M0QgInhpbzMxMzAtZXhwcmVzcy11cHN0cmVh bS1wb3J0IiwKCiAgICAgLnByaW9yaXR5ID0zRCBNSUdfUFJJX1BDSV9CVVMsCgpAQCAtMTQyLDYg KzE1MSw3IEBAIHN0YXRpYyB2b2lkIHhpbzMxMzBfdXBzdHJlYW1fY2xhc3NfaW5pdChPYmplY3RD bGFzcwoqa2xhc3MsIHZvaWQgKmRhdGEpCgogICAgIGRjLT5kZXNjID0zRCAiVEkgWDMxMzAgVXBz dHJlYW0gUG9ydCBvZiBQQ0kgRXhwcmVzcyBTd2l0Y2giOwoKICAgICBkYy0+cmVzZXQgPTNEIHhp bzMxMzBfdXBzdHJlYW1fcmVzZXQ7CgogICAgIGRjLT52bXNkID0zRCAmdm1zdGF0ZV94aW8zMTMw X3Vwc3RyZWFtOwoKKyAgICBkZXZpY2VfY2xhc3Nfc2V0X3Byb3BzKGRjLCB4aW8zMTMwX3Vwc3Ry ZWFtX3Byb3BzKTsKCiB9CgoKCiBzdGF0aWMgY29uc3QgVHlwZUluZm8geGlvMzEzMF91cHN0cmVh bV9pbmZvID0zRCB7CgotLT0yMAoKMi4yNC4zIChBcHBsZSBHaXQtMTI4KQ== --000000000000545bd405e65835d8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
v1 -> v2:
- Allow ACS to be disabled.
- Suggested= by Michael S. Tsirkin, use disable-acs to set property.

v1:
- Ad= d ACS (Access Control Services) capability.

If it is a pcie de= vice, check that all devices on the path from

the device to= the root complex have ACS enabled, and then the

device wil= l become an iommu_group.

it will have the effect of isolati= on



Signed-off-by: wangliang <wlfightup@gmail.com>

=

Signed-off-by: wangliang <wangliang40@baidu.com>



---

=C2=A0hw/pci-bridge/xio3130_upstream.c | 12 +++++++++++= -

=C2=A01 file changed, 11 insertions(+), 1 deletion(-)


diff --git a/hw/pci-bridge/xio3= 130_upstream.c b/hw/pci-bridge/xio3130_upstream.c

index 2df952222b..5433d06fb3 10= 0644

--- a/hw/pci-bridge/xio3130_ups= tream.c

+++ b/hw/pci-bridge/xio3130_ups= tream.c

@@ -24,6 +24,7 @@

=C2=A0#include "hw/pci/msi.h"

=C2=A0#include "hw/pci/pcie.h"

=C2=A0#include "hw/pci/pcie_port.h"

+#include "hw/qdev-propert= ies.h"

=C2=A0#include "migration/vmstate.h"

=C2=A0#include "qemu/module.h"

=C2=A0

@@ -59,6 +60,7 @@ static void x= io3130_upstream_reset(DeviceState *qdev)

=C2=A0static void xio3130_upstream_realize(PCIDevice *d= , Error **errp)

=C2=A0{

=C2=A0=C2=A0 =C2=A0 PCIEPort *p =3D PCIE_PORT(d);

+=C2=A0 =C2=A0 PCIESlot *s =3D PCIE_SLOT(d);

=C2=A0=C2=A0 =C2=A0 int rc;

=C2=A0

=C2=A0=C2=A0 =C2=A0 pci_bridge_initfn(d, TYPE_PCIE_BUS)= ;

@@ -94,7 +96,9 @@ static void x= io3130_upstream_realize(PCIDevice *d, Error **errp)

=C2=A0=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto err;

=C2=A0=C2=A0 =C2=A0 }

=C2=A0

-=C2=A0 =C2=A0 pcie_acs_init(d, XIO3130_ACS_OFFSET);

+=C2=A0 =C2=A0 if (!s->disable_acs) {

+=C2=A0 =C2=A0 =C2=A0 =C2=A0 pcie_acs_init(d, XIO3130_A= CS_OFFSET);

+=C2=A0 =C2=A0 }

=C2=A0=C2=A0 =C2=A0 return;

=C2=A0

=C2=A0err:

@@ -113,6 +117,11 @@ static voi= d xio3130_upstream_exitfn(PCIDevice *d)

=C2=A0=C2=A0 =C2=A0 pci_bridge_exitfn(d);

=C2=A0}

=C2=A0

+static Property xio3130_upstre= am_props[] =3D {

+=C2=A0 =C2=A0 DEFINE_PROP_BOOL("disable-acs"= , PCIESlot, disable_acs, false),

+=C2=A0 =C2=A0 DEFINE_PROP_END_OF_LIST()

+};

+

=C2=A0static const VMStateDescription vmstate_xio3130_u= pstream =3D {

=C2=A0=C2=A0 =C2=A0 .name =3D "xio3130-express-ups= tream-port",

=C2=A0=C2=A0 =C2=A0 .priority =3D MIG_PRI_PCI_BUS,

@@ -142,6 +151,7 @@ static void= xio3130_upstream_class_init(ObjectClass *klass, void *data)

=C2=A0=C2=A0 =C2=A0 dc->desc =3D "TI X3130 Upst= ream Port of PCI Express Switch";

=C2=A0=C2=A0 =C2=A0 dc->reset =3D xio3130_upstream_r= eset;

=C2=A0=C2=A0 =C2=A0 dc->vmsd =3D &vmstate_xio313= 0_upstream;

+=C2=A0 =C2=A0 device_class_set_props(dc, xio3130_upstr= eam_props);

=C2=A0}

=C2=A0

=C2=A0static const TypeInfo xio3130_upstream_info =3D {=

--=C2=A0

2.24.3 (Apple Git-128)<= /span>

--000000000000545bd405e65835d8--