From nobody Sat Apr 11 21:30:24 2026 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; arc=pass (i=1 dmarc=pass fromdomain=aspeedtech.com); dmarc=pass(p=quarantine dis=none) header.from=aspeedtech.com ARC-Seal: i=2; a=rsa-sha256; t=1773214145; cv=pass; d=zohomail.com; s=zohoarc; b=adGZ9pHWsWRmDiKztGXtwMlLndmg8a9gwK936CgkPf+y6mvcbXSC74GHIHnfgcZ3ONNfmDEWqVr3muXxm4n6AAmwORlnrTDK5TD9uyWaLgAwWatxDQazXIEpJbuit77BMAFG7vMhyiyW9TEPHzGI56imHOu/3qhrtw+4+S/07GE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773214145; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=D44Uj+iFK++1h56DD7O5nhKoVQTojM2qNdFPYRPYfm4=; b=LIo3hgl4EAf/5vBk6gz4A+8QUBXm2j3Q8yy7+v2AMSwPIuG6gMUnOLIHn2sM6OUp/Dknxctdy7wlaaGtlM6ROLDGe63KuRITF8uPyjW9GKXDq8NCKZMMpyqFZeG0bB3TzxNe1cLcrP41FzYsr4mj7faqct5eRqoLpTgWv6JKqS8= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=aspeedtech.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773214145781348.0108045980038; Wed, 11 Mar 2026 00:29:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0DyX-0003Jt-Dz; Wed, 11 Mar 2026 03:27:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Dy1-00035v-59; Wed, 11 Mar 2026 03:26:54 -0400 Received: from mail-japaneastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c405::7] helo=TYDPR03CU002.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Dxz-00052E-9a; Wed, 11 Mar 2026 03:26:52 -0400 Received: from TYPPR06MB8206.apcprd06.prod.outlook.com (2603:1096:405:383::19) by SE2PPFD6A65AC07.apcprd06.prod.outlook.com (2603:1096:108:1::7ee) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.20; Wed, 11 Mar 2026 07:26:29 +0000 Received: from TYPPR06MB8206.apcprd06.prod.outlook.com ([fe80::e659:1ead:77cb:f6d3]) by TYPPR06MB8206.apcprd06.prod.outlook.com ([fe80::e659:1ead:77cb:f6d3%3]) with mapi id 15.20.9700.010; Wed, 11 Mar 2026 07:26:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y744Agrm5ByZxNYMXVgS16QHKLhRHLZyCEYfLN5NzgSNaqQmOPTf/SReZcOGsHWiwefWEad4xiqlVz4Vqd2onZnM/kvqupzXDO3Fy7Ua1duQLwmbLsVLOvpXWZlRpH7WIe/V9rN1xCugCKoBdzh5YtVcDXk6ARmnp92hP4pDLe7R6RuqRaG07ngexuXN4HAZCtUsdS4CFE6evn1olnF7UNOziXwhQmamjt6zCT0Duny+RHLS81ndO40Lmp2VkQhLrxB+535MUTPHh0H3V+Pn7pKLpAlDuVZTgBzWYtaDEL1z2gPOlXq9fS78rbzZwxHLF+EnCkqC9ftOOHL2wtCiWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=D44Uj+iFK++1h56DD7O5nhKoVQTojM2qNdFPYRPYfm4=; b=DMG9Df6Rp70OV08QMV3E8GHcpg68ST0vSKfeHlEQhwLtdCHIAHeRfSwl2bQrlGMhJiLTjSpquzAvqP10B/4JrMZLCjuO5s3wXjOZcLQTTq10sCbo+NMP9Iv13iX8kKz/yr/LDrm7ckD0ZXJWRbGaal9FMUXg55qS115NuhbIdRH50Camx2vvP0VhUljA2YQSMV9AKin9Sheh/PH5EIe8/rZgJ1EIj+OjzQYxZ2lFv2g0agtnDA4x8X/rHls18+uc9CoYOzGST16IblsNy+3dHLtHlIivvgrgDl4JGhpx9FKqjHPy1rla1LmnCaRr2pM/jWh8hZSmbxpqmCvmAxSw4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none 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; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D44Uj+iFK++1h56DD7O5nhKoVQTojM2qNdFPYRPYfm4=; b=g0wpp1NrrquhsOjtlTAJ7Jvchb2jobdKHCiKSa0nv+moQx/jhsjcWXG76jFXCr+HTbwZgagcJeDEFXg7SBd/10f+e+EJwqDXFJqGuir0RZLWCAYYsIvgDNv/RUTLfOOij+wXx9VcRQzumNgJTFlMMIj1x0FgzSswAlxxpmSpGREa82z3AS6KA47oJDXWjzlO7sjR6IQQvhWWnn1daeVcZ2FNAMK+uEtKfaIB5NYV7YQmZLfm0PpUWuaaYuOoD1JmEbvWvb1mtrHRO6oLralKONQwydZI0MjyHvR/Cd/vRPTZBUiZm1fMBxJnEd+nGvGfgkIwc6ods0iMfgsTlx+GYg== From: Jamin Lin To: =?iso-8859-1?Q?C=E9dric_Le_Goater?= , Peter Maydell , Steven Lee , Troy Lee , Andrew Jeffery , Joel Stanley , "open list:ASPEED BMCs" , "open list:All patches CC here" CC: Jamin Lin , Troy Lee , Kane Chen , "flwu@google.com" , "nabihestefan@google.com" Subject: [PATCH v1 11/13] hw/usb/hcd-ehci: Add descriptor address offset property Thread-Topic: [PATCH v1 11/13] hw/usb/hcd-ehci: Add descriptor address offset property Thread-Index: AQHcsShgVVvWfyMXxk6VQwvYNluV1g== Date: Wed, 11 Mar 2026 07:26:29 +0000 Message-ID: <20260311072614.1095587-12-jamin_lin@aspeedtech.com> References: <20260311072614.1095587-1-jamin_lin@aspeedtech.com> In-Reply-To: <20260311072614.1095587-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: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYPPR06MB8206:EE_|SE2PPFD6A65AC07:EE_ x-ms-office365-filtering-correlation-id: 51ffbb4d-e107-439e-c5df-08de7f3f8303 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700021|56012099003|22082099003|18002099003; x-microsoft-antispam-message-info: 4B3IQyfthbg2xotoRIOYwGW5CoP3UPWiTyMaZUEZnz0blXG8z00WeFR/Vt6Lzm+cSpaMriobZIjpsrAIxlBrVFHXwPiONrEcmRIDrnVi4TzDZ6hoZFF6ZN5gy2Co72SkG4LhLPqpGjam/yIkKxVnvDcUiKSm5u0tV10TLqX1Gb9hnmYd8/vMFtnVZS6R3QTgKNqnr3K/ks8ZKaVgOCRPFEdL3eI+y5hkaNG8AGhZminb2238/mtYqkfGRyLJCoDHmFzc7wGtZGWhwTSgscyDRDB8o+fXOfJMdD1QUrIxZmf3e4u8BerpdJiASOQ102HJvOtmdM+Gtu9bMCIKX1GjsED0iDT1ywU0BuJlKGOzDLqY7JjdJN7SEYuJcwSLUcr0ZMrO4Nry/n6pXpfczi6RvRY1ki8km6LrLSdRwWa0+jyGa3nzHvIz1nmva6KMLlE31Y8BOpv4mvQOJP1z3EhaX+HAVOrKak6knc0qsyTZsqfqF5eumrFUtYz7iZW4z+Du+aRJyK6+Nbzs99E6r8v90+kha1JhAplCwY+X90kmFrJwSwO82FiPCTecZ/Pzm7NfAOla1a07NXEKcBZZ39dB2OP79PZgbDzItZy8Lyx+916ws+gOITAv0gtfnHJcR6k2xOhAYevINMzhdJIfO7MVBBxa1kRDHDZ+nwxhheB6LdqIqE2Rna5UOwogPwZ1BrJPTAV/rLmz/i08QF+VXwX5c4PXzqFQfWuweyHjYrYMgjS+V3GQ8/nUwWKox/okYW1R x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYPPR06MB8206.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(56012099003)(22082099003)(18002099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?PccI92+KcbqZ8AZ4UowPFdMVrtD6A/IO2KGoUNuYllCupH5+FpfEa0X/PN?= =?iso-8859-1?Q?nOB/ytd7mWyb0z3rI3xvtcFR0dQnztGpVZO5NVT0a8LcTQnGKaeb5IKatf?= =?iso-8859-1?Q?CWD3EkxIt4yc0bpeQNVY+q4i1BDM1Z6wNx8nBmUZ/rE6ND46APEIw871p2?= =?iso-8859-1?Q?T2ek6FQunZTtNu1Tmewwc312X9eMCbmqcU2j5rDIknGi3PH7WovPbRcbBx?= =?iso-8859-1?Q?bFFduwQhxmCnZenPunY/P3jR+qWcYnLRLNaMzTn4piMWi5xObYXlHSY7Ou?= =?iso-8859-1?Q?w8K2J+XXKWWaY5BKTugSl8pGo4Ic/5rsLGsRb4duhGASi3X72QpZ2hXXAE?= =?iso-8859-1?Q?38TUXgAGtrSs22aVT+Ebn1fBLh0EkvXPkEY9r3LGt/7U7trcYWdQ46EbeO?= =?iso-8859-1?Q?vzWwmnbaIeIfEfyWS9CGxtE6XWn16fWKUnQ870wkfEaf1Py9wCbfZJIVHu?= =?iso-8859-1?Q?++oPCLXKac27jvfnghJMg3kCcfj5pDPPMugfdXEMsH5eL7646fjqkewvaY?= =?iso-8859-1?Q?GsyW+xLGuTpaLt8HJnoJO4782S9QUsfFMdwkOrSI7ZStbq/bQgiwdBwgJV?= =?iso-8859-1?Q?oq8vFOWG7N4C0z+j5lkVOZJscPyH4kAaPom2TIB68PZDv9I4NOhxKivNRj?= =?iso-8859-1?Q?L1cKiSKkGA9e3OCMNG7cnDyfbx4gWfQNBj5CKAEeYesVpOvDc1b/vNxvcA?= =?iso-8859-1?Q?3KX0ZB8VDmNlF1p2e5FGa9bBwdXeuh2nag845GdDjSdONebfus6U+pn8Jx?= =?iso-8859-1?Q?5W8ZiGtpbF/4VUqOfiXkjAEB7hxfQizKH50NRDVdRy6Dqw/EmB3F5awrTJ?= =?iso-8859-1?Q?X2U/ios72DoyBE5Ickwr1tXIsDsW8uwyiRv5pNXX1X97w1RYgYPt8nfW5u?= =?iso-8859-1?Q?vZEyCTuMSQKX+8KaZHomLlajatmBYFXPdxDvoxN00j0kvcWUS2Fqzp34RN?= =?iso-8859-1?Q?fS/OrIuj9XJ31NoIZW2zuQo2EzzEeL7Q1/S0HQdGDxksuEcUKZvh+014gH?= =?iso-8859-1?Q?SqaaBGw5AYWM4FwbrjWZ8SnkdP2YRqMLzf2DNpWCURuIr3QHzTmh74t51I?= =?iso-8859-1?Q?lWgSGpOZoYfeD2JE0/Oso5+cbqoqP5NgFlTStRZforbADP6fcsH0SFZrAf?= =?iso-8859-1?Q?jWqkUWKGgkeQZpcr3F4LvGdRrJQWZ0As9ZfKmlgQpYV6zdY9i1aTJS3R1p?= =?iso-8859-1?Q?LGkywI2B2m/4KiyfQuyKGNNaMlmo1G/Ab9KYZ0yVF7wgAGAzc3DGvPffvn?= =?iso-8859-1?Q?eHWzPnorvTJf8qvRUgkCO3XZrA9NWPhtLFfMrzC4WFAHhj7CiGiEF2z6Zn?= =?iso-8859-1?Q?oJiIH77pQyO2vNhgiVinaReCShtdqXzXEB/M24gPCKJQYPSXBUSstV7dIp?= =?iso-8859-1?Q?1S84sVYvE1tvCWE2vd+NYuM1Q/mmIWnJVp/YFsuePw/OapjxON4eTxlLWg?= =?iso-8859-1?Q?rNhX/ts53huU/7yMLPTkV1UrtV+EvwovyG77lZdy+YC5K1f1rjwK9HMO2Q?= =?iso-8859-1?Q?VTbWz9KJd+t3nzOd8IKhEFBLmllmNdcHQ4TphNuyKvQ/sAWL5WEZoL3QUP?= =?iso-8859-1?Q?FJiH+XorvTDN1fviHPsTMkB/g19DJO/Rec3MzGLYwtWfi3wojBJ9NW2A+s?= =?iso-8859-1?Q?xP7f9/YhfOL8vuMF7w31c+25bU0qDNbFUwiTYj2a/xy+QdhLnKXFe8VM/p?= =?iso-8859-1?Q?1+pABJ5sm9P2/y20Y0ZgIgDlZY+rDdRsxYYVLmNoVoQwbfgMERnMP3zBjq?= =?iso-8859-1?Q?WKJeIKefLBtGqwRk4fsYfFuXo45PUpiIh2NAD3bCQz1rD5n2pJMhei6Mbx?= =?iso-8859-1?Q?QXvigCxaOw=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: pfecHUYWTZF45CbKKZHYR0JwR5n6A/9ZjzEVcx9BUnjLDmQwBFTx91UDn0dMu3rrEx/lqpT1qap2D6YfU5zcFk4frewfqOn7iQVARH7cJRF8uKyl8fYZlcq01hIsX2+mwFwBG9A/ijtnGy6Nhm3tYVe/FN/jEJ92VC/YguYXFF5fb6wppJhNBS313F1APesI4vINxm0O03dVnYqJHZSVrZLTccpmNG0i1QrQ1lmmQq8iNHm0hyZygShCTQrknh3B/tw7yMmq9AGkR74CWnOEd2CkcXNyV1pLiSVVWxbfg3aorb9JWZuxWBwTrwaQccdnHS61kmhWHGWaAeHW4BMlEQ== 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: 51ffbb4d-e107-439e-c5df-08de7f3f8303 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 07:26:29.0555 (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: GCC5ivcqM+2RzFX0au/LSUvAWDta61BcamC+IggEMmTh6Xn6K2xHrFhl7j3l2AirWu5Migk+rW+NbXJ+dIrTEXoVuofoclGVzxXR9akESaI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SE2PPFD6A65AC07 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=2a01:111:f403:c405::7; envelope-from=jamin_lin@aspeedtech.com; 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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @aspeedtech.com) X-ZM-MESSAGEID: 1773214147329154100 Content-Type: text/plain; charset="utf-8" When 64-bit addressing is supported, the Linux EHCI driver programs the segment register to zero. See ehci_run function: https://github.com/torvalds/linux/blob/master/drivers/usb/host/ehci-hcd.c The driver comment also notes that descriptor structures allocated from the DMA pool use segment zero semantics. Descriptor memory is allocated using the DMA API. The platform driver configures a 64-bit DMA mask so memory can be allocated above 4GB. See ehci_platform_probe function: https://github.com/torvalds/linux/blob/master/drivers/usb/host/ehci-platfor= m.c On AST2700 platforms, system DRAM is mapped above 4GB at 0x400000000. As a result, descriptor addresses constructed directly from the guest EHCI registers do not match the actual system address used by the controller when fetching queue heads (QH) and queue element transfer descriptors (qTD). Introduce a descriptor-addr-offset property so platforms can provide an address offset applied when constructing descriptor addresses. This allows systems where DRAM resides above 4GB to correctly access EHCI descriptors while keeping the default behavior unchanged for existing machines. Signed-off-by: Jamin Lin --- hw/usb/hcd-ehci.h | 1 + hw/usb/hcd-ehci-pci.c | 2 ++ hw/usb/hcd-ehci-sysbus.c | 2 ++ hw/usb/hcd-ehci.c | 1 + 4 files changed, 6 insertions(+) diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h index a11d4179cd..6593480028 100644 --- a/hw/usb/hcd-ehci.h +++ b/hw/usb/hcd-ehci.h @@ -279,6 +279,7 @@ struct EHCIState { /* properties */ uint32_t maxframes; bool caps_64bit_addr; + uint64_t descriptor_addr_offset; =20 /* * EHCI spec version 1.0 Section 2.3 diff --git a/hw/usb/hcd-ehci-pci.c b/hw/usb/hcd-ehci-pci.c index 2ea8549db9..115d05ede0 100644 --- a/hw/usb/hcd-ehci-pci.c +++ b/hw/usb/hcd-ehci-pci.c @@ -139,6 +139,8 @@ static const Property ehci_pci_properties[] =3D { DEFINE_PROP_UINT32("maxframes", EHCIPCIState, ehci.maxframes, 128), DEFINE_PROP_BOOL("caps-64bit-addr", EHCIPCIState, ehci.caps_64bit_addr, false), + DEFINE_PROP_UINT64("descriptor-addr-offset", EHCIPCIState, + ehci.descriptor_addr_offset, 0), }; =20 static const VMStateDescription vmstate_ehci_pci =3D { diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c index 61215e9f3d..df138fb339 100644 --- a/hw/usb/hcd-ehci-sysbus.c +++ b/hw/usb/hcd-ehci-sysbus.c @@ -36,6 +36,8 @@ static const Property ehci_sysbus_properties[] =3D { false), DEFINE_PROP_BOOL("caps-64bit-addr", EHCISysBusState, ehci.caps_64bit_a= ddr, false), + DEFINE_PROP_UINT64("descriptor-addr-offset", EHCISysBusState, + ehci.descriptor_addr_offset, 0), }; =20 static void usb_ehci_sysbus_realize(DeviceState *dev, Error **errp) diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index d9d1ac2d28..cdb53be4ae 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -155,6 +155,7 @@ static uint64_t ehci_get_desc_addr(EHCIState *s, uint32= _t low) addr |=3D (uint64_t)s->ctrldssegment << 32; } =20 + addr +=3D s->descriptor_addr_offset; return addr; } =20 --=20 2.43.0