Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2227741/?format=api
{ "id": 2227741, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2227741/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260424080508.53992-13-jamin_lin@aspeedtech.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/1.1/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260424080508.53992-13-jamin_lin@aspeedtech.com>", "date": "2026-04-24T08:05:25", "name": "[v5,12/18] hw/usb/hcd-ehci: Implement 64-bit qTD descriptor addressing", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "96ec54cffae83be300ce789f86c80f4e6523d07e", "submitter": { "id": 81768, "url": "http://patchwork.ozlabs.org/api/1.1/people/81768/?format=api", "name": "Jamin Lin", "email": "jamin_lin@aspeedtech.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260424080508.53992-13-jamin_lin@aspeedtech.com/mbox/", "series": [ { "id": 501315, "url": "http://patchwork.ozlabs.org/api/1.1/series/501315/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=501315", "date": "2026-04-24T08:05:08", "name": "hw/usb/ehci: Add 64-bit descriptor addressing support", "version": 5, "mbox": "http://patchwork.ozlabs.org/series/501315/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2227741/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2227741/checks/", "tags": {}, "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=aspeedtech.com header.i=@aspeedtech.com\n header.a=rsa-sha256 header.s=selector1 header.b=kKkY8feI;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=aspeedtech.com;" ], "Received": [ "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g25Dd4hbQz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 18:08:01 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wGBXu-0005Cb-7i; Fri, 24 Apr 2026 04:05:54 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <jamin_lin@aspeedtech.com>)\n id 1wGBXg-00053N-FB; Fri, 24 Apr 2026 04:05:45 -0400", "from mail-japaneastazlp170130007.outbound.protection.outlook.com\n ([2a01:111:f403:c405::7] helo=TYDPR03CU002.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <jamin_lin@aspeedtech.com>)\n id 1wGBXe-0001I1-Jh; Fri, 24 Apr 2026 04:05:40 -0400", "from TYPPR06MB8206.apcprd06.prod.outlook.com (2603:1096:405:383::19)\n by SEZPR06MB5856.apcprd06.prod.outlook.com (2603:1096:101:9e::8) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.18; Fri, 24 Apr\n 2026 08:05:26 +0000", "from TYPPR06MB8206.apcprd06.prod.outlook.com\n ([fe80::e659:1ead:77cb:f6d3]) by TYPPR06MB8206.apcprd06.prod.outlook.com\n ([fe80::e659:1ead:77cb:f6d3%3]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026\n 08:05:25 +0000" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=zVxtRf+QLJWehW5uIqq2n9JjTwepC1LTPXWcPObd8AFcAfow+ORbdbbj/nL/oLXR6LxSjpCBR4wocDzxP6F08oy07YEjGGHagu54TIFIuSrpOFUysIWGmw+ltn9sJcDpPsBsVVa6ZbHi934ztTfJz7GbH+J7jgia52/vhw358UbqpMYmHQXmxP8JzsjO5A3+jb8Z6nfNBVBMtm0q4coXawJFaRhXj6E6wvFjD6agAEdAuBMiL/AaEAYYhOEjmtkjUEeWm6f9QxXMQSFdPYhoZRgWoTZBGbeSbb+uElr2fvHjpq280spK1IJomDwVAicSYfExD2f+G34twQDf87cInw==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=9rRaAH+M0gmGI75Fu9T+UdOCeNggmfgzhvnjrKg1krs=;\n b=OfnidHtrmPU82cKGc2MOL8DJwzEDVAP4AfpMmZNXZCzw+stsd94WM2emTxPvfQa32oFAVJR0v2XbmJYk1xc8DmVRSUYc2om5p/cg34x2+mvIlmIbScIhlb4i5VofS6pyyDsuYfK3F0w2t7S53f7rimtpxbp5mIQMQTBYOh7qoNbVymvHd+hMuktk1ATcNqrqbhfVGH74Z4lAVa0vL7lGlIy0AspbIYk4INS7lbHfAl/D4eOJxByP4ETkLYUDFAQLRgHZxXwD1i9oNiCSwkFpeS3ZtFBelybEfn04e0EQHzbOrS1/dAydeQExtwPAc3UBe7lMRFv77v0P+cEKlDGBqw==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=aspeedtech.com; dmarc=pass action=none\n header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=9rRaAH+M0gmGI75Fu9T+UdOCeNggmfgzhvnjrKg1krs=;\n b=kKkY8feIggTWU0sHhq9WdH2FIqDdmUpfoNwREgabGVUumYftsS9hnkOSlV26PiQ/UVl/Uhf5nVnN6pYbqLa/Qhmx1wGYBcod+hyUg1kB4bEBDUDvkly7GY//szrjYnybTLT3wjmX2E8LTWz6CrHTMbH4vpqQBEVlSo9iRqa6nz3Amjd0FXOHNNLu3m1400geu937XIp7PFO4aeChFWtby0jQvx8g9fs5c+c3TmrXfBbqEeY9SNeucgEeoh+fDEFReWBs1yPFIxW2sxqQUoODqG6bAGAbvgyBKYxebteRMXwYRaa1o55c7y0KNosbRB1wWAImi9E3ZsflTgfY3SPSFA==", "From": "Jamin Lin <jamin_lin@aspeedtech.com>", "To": "\"peterx@redhat.com\" <peterx@redhat.com>,\n \"philmd@linaro.org\" <philmd@linaro.org>,\n =?iso-8859-1?q?C=E9dric_Le_Goater?= <clg@kaod.org>,\n Peter Maydell <peter.maydell@linaro.org>,\n Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>,\n Kane Chen <kane_chen@aspeedtech.com>,\n Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Yanan Wang <wangyanan55@huawei.com>, Zhao Liu <zhao1.liu@intel.com>,\n Paolo Bonzini <pbonzini@redhat.com>,\n Richard Henderson <richard.henderson@linaro.org>,\n \"Michael S. Tsirkin\" <mst@redhat.com>, Laurent Vivier <laurent@vivier.eu>,\n Nicholas Piggin <npiggin@gmail.com>,\n Harsh Prateek Bora <harshpb@linux.ibm.com>,\n Cornelia Huck <cohuck@redhat.com>, Eric Farman <farman@linux.ibm.com>,\n Matthew Rosato <mjrosato@linux.ibm.com>, Halil Pasic <pasic@linux.ibm.com>,\n Christian Borntraeger <borntraeger@linux.ibm.com>,\n Ilya Leoshkevich <iii@linux.ibm.com>, David Hildenbrand <david@kernel.org>,\n \"open list:ASPEED BMCs\" <qemu-arm@nongnu.org>,\n \"open list:All patches CC here\" <qemu-devel@nongnu.org>,\n \"open list:sPAPR pseries\" <qemu-ppc@nongnu.org>,\n \"open list:S390 general arch...\" <qemu-s390x@nongnu.org>", "CC": "Jamin Lin <jamin_lin@aspeedtech.com>, Troy Lee <troy_lee@aspeedtech.com>,\n \"farosas@suse.de\" <farosas@suse.de>, \"flwu@google.com\" <flwu@google.com>,\n \"nabihestefan@google.com\" <nabihestefan@google.com>", "Subject": "[PATCH v5 12/18] hw/usb/hcd-ehci: Implement 64-bit qTD descriptor\n addressing", "Thread-Topic": "[PATCH v5 12/18] hw/usb/hcd-ehci: Implement 64-bit qTD\n descriptor addressing", "Thread-Index": "AQHc08EbpbJwd2qS3EyDLGVoWRNsYQ==", "Date": "Fri, 24 Apr 2026 08:05:25 +0000", "Message-ID": "<20260424080508.53992-13-jamin_lin@aspeedtech.com>", "References": "<20260424080508.53992-1-jamin_lin@aspeedtech.com>", "In-Reply-To": "<20260424080508.53992-1-jamin_lin@aspeedtech.com>", "Accept-Language": "zh-TW, en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "authentication-results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=aspeedtech.com header.i=@aspeedtech.com\n header.a=rsa-sha256 header.s=selector1 header.b=kKkY8feI;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=aspeedtech.com;" ], "x-ms-publictraffictype": "Email", "x-ms-traffictypediagnostic": "TYPPR06MB8206:EE_|SEZPR06MB5856:EE_", "x-ms-office365-filtering-correlation-id": "9c46a31c-8e33-4714-5754-08dea1d83dfb", "x-ms-exchange-senderadcheck": "1", "x-ms-exchange-antispam-relay": "0", "x-microsoft-antispam": "BCL:0;\n ARA:13230040|1800799024|366016|7416014|376014|38070700021|921020|18002099003|22082099003|56012099003;", "x-microsoft-antispam-message-info": "\n Q43S78MlzrRquXKwyw1njY9vWpcwPhw44b/dtNuWqgEptlrHPQ+CBkm/T5CyDj9ow1q9fOqSz56nSUzbM/U9q4x39m5PQ6HSJY2X4836UKknHZceIeOgDWUqqLDBRiumNYPjkpvBK+JZbvp5dq0iFS+2m7FzGwAbCewmsHcGCV6u2jucfi5eSnV0lzzq6XRIYjKwJbQXcmHDQ5JGKi47Uh/kREATNgaUAbL8ELwXoDIncl0bbIUSHz+3uBan3mXqSoMcFNWIaUGjfS3sPUfSZKZjogN74R0taeDr2zJcFGmBYXTYTnmQ3kcPyut1C/VWxhulSZNOSi7aOr4mKgjA2fmN5uMXjjE4aivQeDyguF9EhX7frf4rCW0eXODHytV9bWZJ2UV5Sbmr2oYp/r09k5YoLZ9EyWXJdS+J0SEegugScUZ/92MwjrLqNJYMANgclIEHPrRc09tLck75aoyi5RV2AKa7cKD2/EzwTMxUQZWp9MwFnAUCo914f2tLRTM06TqhgocrRYSoZSHdOvGOEsy+GxyM3U6W6Ou+lACEO97aRn6DgQUBxVDGSy85SUFewcNrXwzV1wBU/Y18+Oe9FTFf7DYtLdDP5YiKI0IrYU2iF79zN+GXoBJfikP/RqSk5R/7pe5/muv4Q1N36PXvdNEVM/jXog+Ak+ZtsCEeHliKmsw6mtMCFgQVH0IP9mt/bmV7Ba0VObLxSL+PH43tdjRmx4DJ1RjHpk8k6B2rYOdDmWLQCNXSxGpsw8wxjQurDcLCEfXSzYQL4A4AqScIIrFtZbuLg4NFzASW+DGXO2ulXfa6yiZKYiF2jYRbvZ5+", "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:TYPPR06MB8206.apcprd06.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700021)(921020)(18002099003)(22082099003)(56012099003);\n DIR:OUT; SFP:1102;", "x-ms-exchange-antispam-messagedata-chunkcount": "1", "x-ms-exchange-antispam-messagedata-0": "=?iso-8859-1?q?BrGQmwl1CARMUr/RGq2FBip?=\n\t=?iso-8859-1?q?tOfJYug0iciag15s0OOq617wyUyGfw5pyKxKALFZe/2B4UN9XJh93dbAqsIJ?=\n\t=?iso-8859-1?q?zzqh0BDoBXyXPJNVe82r0GytIZT3jgSOWO7a5noD6i/CcUaTjmzvvsFmYIF3?=\n\t=?iso-8859-1?q?LeUSK1q9vN+JxfbeeIUNulER5DAijEneiFL+oiPf46uk6snTivy1dvKD/PH6?=\n\t=?iso-8859-1?q?5NW/2jULkAtZaqmiovNe9aGy2taoSdikrmLB7kmaCpzEYZE5uQ+QwyXf/GIw?=\n\t=?iso-8859-1?q?1qqdzG3G9LldGkIUOQ/LxdU+ZaOxN+grUOzD4HlLQ6qXsHmiSF0LUed7FZdO?=\n\t=?iso-8859-1?q?Ca1Df0LBSvMz8tP39c3kA6v49JrVrBUK2zTlSWc214x+Nnl2rZgDZQ/Mm8Ho?=\n\t=?iso-8859-1?q?Qjka7Ffu8Zr0x3Zv0HxiwJ48lnXhmtyQ33bIElcBuVkSbfXsrnFOztlBP2CN?=\n\t=?iso-8859-1?q?/WeO+xwDQl3otHqw4/yKKFCBEo4hiqJOrdzGqP9VuCEC2Xf/ZHQxlkWT07yx?=\n\t=?iso-8859-1?q?7uqfJoukwUU+sZ4tO+AgXH4fq4Zo9m947agxmeCGKug0wlOwvNw2qiNkX9DM?=\n\t=?iso-8859-1?q?J1sLsLQRBSHO78KkDJc3vo5bMRMwd4Dp2pi9hzOfVbIVP9vFBcC5zuAswpA6?=\n\t=?iso-8859-1?q?m0iF6aMibW/PkG8WPtwFxQ8rf8s6vFP7asSZ2u9txCSZeI+JarbFhARHgiHO?=\n\t=?iso-8859-1?q?3HAgMiaLhedVRRsAzGYQPgrrFgvzbFctXOFkHodkBn6pRqaisj6j6w9nBFmu?=\n\t=?iso-8859-1?q?Opj8xLimSVpKmjyod6dmAPqBjHSFduIHUZDSQUA1V8wxe4RF+To80xjaxDAb?=\n\t=?iso-8859-1?q?fGeISvB8ojiW78PZ7y81DkUjNoGrP94+PeARUzGiOe0HrKWvsuUzJaPCNNI1?=\n\t=?iso-8859-1?q?QwKYgTq6xbV8FqwJ6RV5tKclpe9BELiPGvN3Zo2ZKrj+7ZBxL/8YG9usw8pd?=\n\t=?iso-8859-1?q?owuV4by5avYSq0LvCgLEDYRDjsdMVfa1F9eV3MZFBE3OkXxcOxpiwSpeGVvr?=\n\t=?iso-8859-1?q?hzFvN0b49iilyozylwhPYMZM1u954Jjg1D1WcSPMQnuWI75cxvwQCFA5Bivo?=\n\t=?iso-8859-1?q?e1Fwu4iWus4vcMcDnkRHoaUylyMptY3l1tsFue+zTVKrRmGIIaOSqQZ6NjHD?=\n\t=?iso-8859-1?q?pYS3Lhy3iPPXMkGUfV97s5eO6AuIFyPJmC+bkh6B4EW9IijLwDntmWsZc9oH?=\n\t=?iso-8859-1?q?S0GxUbITr1OfedKovuH5QLJq2kc9UHwZuKRL6PCrIRpatcoNGkcweuaMbJD8?=\n\t=?iso-8859-1?q?1NJMqAsD3l1tGj7QU74QghjYQdXpSYZFoxUlD5HBLnnkkThX+t/DiGk4qC9P?=\n\t=?iso-8859-1?q?q7G3PWav192/77F+YqdtSSmsHGoFD5KUKXKI6ugSg65pdy7Cx49j+L7z4kCd?=\n\t=?iso-8859-1?q?g7g+87tI4/EoJUQ1Wjhs0VKKoO6kffnAxFfqjMPxxkHti/LLzC4i3wgwfFO8?=\n\t=?iso-8859-1?q?44X3P23sHXP79dzXFpasXK85eTu6TCQBBtIs58MR93N4vR+1V5/QnAEHl7rn?=\n\t=?iso-8859-1?q?igssfRJvFW1EKmuADNgA6Fji5tsUGnjmu4MRP0SaXd88yAEidXQKi3s7JPfB?=\n\t=?iso-8859-1?q?s0Tda54x1LDaga044DC2sZCmPoj4OidZ15OvLlWQqdNqxHjI080sNxidpcRc?=\n\t=?iso-8859-1?q?lPwgLsmG5T/vOszrHz6M3sm1nzC1/AghONXWFm7iSM33S0ldhcK0OlW+u20H?=\n\t=?iso-8859-1?q?ehnWzgM6TJnrxtmdUC2lmDt3mgbbIArp9lkYvEJRJheO3mqushDz0l7Au7Rw?=\n\t=?iso-8859-1?q?KoFPW9NZCEcbM7FUc1S5ms5ffqtPrzHfU+JQFeEtddZZ0GQ=3D=3D?=", "Content-Type": "text/plain; charset=\"iso-8859-1\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-Exchange-RoutingPolicyChecked": "\n h+DZFKqHa05JXWS9ZUP/g5nlYwr+wKKJTq55GUev930S/q/UMdnYoL1rw6KwieRyyfoOrE/ErI5Ub0wBdi3sCoQZo+efneZM8zg1X4fV81z/Foo1iWBVQMszUHqHuwCNmP4PG92jEcdmKH+WdQTSbw3WswtWNDQxBXfKYgqp8tq4qdPfnT5/IXb+ariqKETbViTngCrLi4LgSLcE7vVp6lkQo3JoFeUEkdCUbp6CnKLE23SZNZFtzRoM0aO+S8lOYgXaN8FIKassM4OeF91s5tAhg69gerxYde3Q/bPQ29tYejIIbMt1/rINYEtDNDlahJyBMRkes+r3mg3VvyoWJg==", "X-OriginatorOrg": "aspeedtech.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-AuthSource": "TYPPR06MB8206.apcprd06.prod.outlook.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 9c46a31c-8e33-4714-5754-08dea1d83dfb", "X-MS-Exchange-CrossTenant-originalarrivaltime": "24 Apr 2026 08:05:25.7810 (UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "43d4aa98-e35b-4575-8939-080e90d5a249", "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED", "X-MS-Exchange-CrossTenant-userprincipalname": "\n XKMqiMIugiqyBuP3gpmbZWkid9ScsFoI2LI9cMylPDb1xh8ukdN/DCISDommxyUTDHfmTGFATxqaAqvHqqIXdOG/m2xIvs7mHb4NSHTu45c=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SEZPR06MB5856", "Received-SPF": "pass client-ip=2a01:111:f403:c405::7;\n envelope-from=jamin_lin@aspeedtech.com;\n helo=TYDPR03CU002.outbound.protection.outlook.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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 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": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "EHCI supports 64-bit addressing when the 64-bit Addressing Capability\nbit in HCCPARAMS is set. In that mode, the CTRLDSSEGMENT register\nprovides the upper 32 bits that are concatenated with 32-bit link\npointer values to form 64-bit control data structure addresses\n(EHCI 1.0, section 2.3.5 and Appendix B).\n\nqTD link pointers (current_qtd/next_qtd/altnext_qtd and qTD.next)\nare stored as 32-bit values in the data structures and must be\nexpanded to full 64-bit descriptor addresses when 64-bit mode is\nenabled. Update the qTD traversal paths to use ehci_get_desc_addr()\nwhen following link pointers.\n\nAppendix B also defines high dword fields for qTD buffer pointers.\nAdd bufptr_hi[5] to EHCIqtd and extend qTD fetch and QH overlay\nhandling to load and propagate the high buffer pointer fields.\n\nWhen 64-bit capability is disabled, descriptor and buffer addresses\nremain 32-bit and existing behaviour is unchanged.\n\nSigned-off-by: Jamin Lin <jamin_lin@aspeedtech.com>\nReviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>\n---\n hw/usb/hcd-ehci.h | 1 +\n hw/usb/hcd-ehci.c | 19 ++++++++++++-------\n 2 files changed, 13 insertions(+), 7 deletions(-)", "diff": "diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h\nindex 3428839ec6..fc66aacd9f 100644\n--- a/hw/usb/hcd-ehci.h\n+++ b/hw/usb/hcd-ehci.h\n@@ -139,6 +139,7 @@ typedef struct EHCIqtd {\n uint32_t bufptr[5]; /* Standard buffer pointer */\n #define QTD_BUFPTR_MASK 0xfffff000\n #define QTD_BUFPTR_SH 12\n+ uint32_t bufptr_hi[5];\n } EHCIqtd;\n \n /* QH overlay: altnext_qtd, token, bufptr[5], bufptr_hi[5] */\ndiff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c\nindex 5ffd4c9885..e82e0f625c 100644\n--- a/hw/usb/hcd-ehci.c\n+++ b/hw/usb/hcd-ehci.c\n@@ -472,7 +472,8 @@ static bool ehci_verify_qtd(EHCIPacket *p, EHCIqtd *qtd)\n (p->qtd.next != qtd->next)) ||\n (!NLPTR_TBIT(p->qtd.altnext) && (p->qtd.altnext != qtd->altnext)) ||\n p->qtd.token != qtd->token ||\n- p->qtd.bufptr[0] != qtd->bufptr[0]) {\n+ p->qtd.bufptr[0] != qtd->bufptr[0] ||\n+ p->qtd.bufptr_hi[0] != qtd->bufptr_hi[0]) {\n return false;\n } else {\n return true;\n@@ -1200,6 +1201,7 @@ static int ehci_qh_do_overlay(EHCIQueue *q)\n \n for (i = 0; i < 5; i++) {\n q->qh.bufptr[i] = p->qtd.bufptr[i];\n+ q->qh.bufptr_hi[i] = p->qtd.bufptr_hi[i];\n }\n \n if (!(q->qh.epchar & QH_EPCHAR_DTC)) {\n@@ -1233,7 +1235,8 @@ static int ehci_init_transfer(EHCIPacket *p)\n return -1;\n }\n \n- page = p->qtd.bufptr[cpage] & QTD_BUFPTR_MASK;\n+ page = ehci_get_buf_addr(p->queue->ehci, p->qtd.bufptr_hi[cpage],\n+ p->qtd.bufptr[cpage], QTD_BUFPTR_MASK);\n page += offset;\n plen = bytes;\n if (plen > 4096 - offset) {\n@@ -1727,7 +1730,7 @@ static EHCIQueue *ehci_state_fetchqh(EHCIState *ehci, int async)\n } else if ((q->qh.token & QTD_TOKEN_ACTIVE) &&\n (NLPTR_TBIT(q->qh.current_qtd) == 0) &&\n (q->qh.current_qtd != 0)) {\n- q->qtdaddr = q->qh.current_qtd;\n+ q->qtdaddr = ehci_get_desc_addr(ehci, q->qh.current_qtd);\n ehci_set_state(ehci, async, EST_FETCHQTD);\n \n } else {\n@@ -1805,14 +1808,14 @@ static int ehci_state_advqueue(EHCIQueue *q)\n */\n if (((q->qh.token & QTD_TOKEN_TBYTES_MASK) != 0) &&\n (NLPTR_TBIT(q->qh.altnext_qtd) == 0)) {\n- q->qtdaddr = q->qh.altnext_qtd;\n+ q->qtdaddr = ehci_get_desc_addr(q->ehci, q->qh.altnext_qtd);\n ehci_set_state(q->ehci, q->async, EST_FETCHQTD);\n \n /*\n * next qTD is valid\n */\n } else if (NLPTR_TBIT(q->qh.next_qtd) == 0) {\n- q->qtdaddr = q->qh.next_qtd;\n+ q->qtdaddr = ehci_get_desc_addr(q->ehci, q->qh.next_qtd);\n ehci_set_state(q->ehci, q->async, EST_FETCHQTD);\n \n /*\n@@ -1841,7 +1844,9 @@ static int ehci_state_fetchqtd(EHCIQueue *q)\n if (get_dwords(q->ehci, addr + 0, &qtd.next, 1) < 0 ||\n get_dwords(q->ehci, addr + 4, &qtd.altnext, 1) < 0 ||\n get_dwords(q->ehci, addr + 12, qtd.bufptr,\n- ARRAY_SIZE(qtd.bufptr)) < 0) {\n+ ARRAY_SIZE(qtd.bufptr)) < 0 ||\n+ get_dwords(q->ehci, addr + 32, qtd.bufptr_hi,\n+ ARRAY_SIZE(qtd.bufptr_hi)) < 0) {\n return 0;\n }\n ehci_trace_qtd(q, NLPTR_GET(q->qtdaddr), &qtd);\n@@ -1922,7 +1927,7 @@ static int ehci_fill_queue(EHCIPacket *p)\n if (NLPTR_TBIT(qtd.next) != 0) {\n break;\n }\n- qtdaddr = qtd.next;\n+ qtdaddr = ehci_get_desc_addr(q->ehci, qtd.next);\n /*\n * Detect circular td lists, Windows creates these, counting on the\n * active bit going low after execution to make the queue stop.\n", "prefixes": [ "v5", "12/18" ] }