From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id B7D43740032 for ; Wed, 18 Oct 2023 03:28:45 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=B8u5QYhc/jPJ6I93N9x0pHuOsSvCE87Zhv7GcJukg00=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Message-ID:Date:User-Agent:Subject:To:Cc:References:From:In-Reply-To:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1697599724; v=1; b=LGJvBHhKfC+sIrUDZUZKroiOxZdQ/U98+TlNih0zSGNfOhoTLX3yW5WxAJYEMarYQQCDxqjp 0g6KOhwVVpBBTYdtvkfdPiFTGue/3BnHhR+jT0Vn/5ukSH1CEsGuLWAON1nlPOfQApi2E3qbmgm Q73HXKFY79Bw4VVcpYfnLGFE= X-Received: by 127.0.0.2 with SMTP id zlY7YY7687511xzaH9rWgCiF; Tue, 17 Oct 2023 20:28:44 -0700 X-Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.107.236.100]) by mx.groups.io with SMTP id smtpd.web10.274416.1697599723537288198 for ; Tue, 17 Oct 2023 20:28:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BZW8TeTU8bB6QSAQ0V49q0UnudtbCzF3KTxYz/fUC/WKbM3yiYXWkxdGHbo4h+y31m98rHjQJwV6TAnoxeeLHOqO4V0M70dIR8tNVMSHUETCx1SNf7A12EKwYSs3Ut+JJYcMqEE57YBDSKDEBTkSiYs1NgYWoQagHssxdh1bDEUoTlrC9+CLpMZ/HBMrofe8E3KLAD/36tb9SiZF4btI3euMaxdr5uR4kNqB4wKmzW1m6nJVzyIAVkjUc2Xr+QUR2OYHfQmg8w1SkUU5PovzHDy1sfgwM+xZeCbNrRWkjKB4TTV2+oWZcB7VV430T8I0zFzsrZiox4obCPu4Uog33A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=8aKQWnHuuuetnIBtzVEdtbKtd8wKMyp8f3ZBO9aQ5jg=; b=H8NLfOstj76S+hLC/gkoiqCAm6c09RNwASTWb+vw3bM3TqtvR9wNbXccdEZwzRY8YjLxZ0N28UpoDMd30cggb8YuEK5On9wPwvSXHP2Gi1GuRsFU/iGhLVI9k8xSI78SCvCI6bUU7jfq7elrroMA0nTOE1gxgPoa2lt4Jycd7sDGh2uUkJ/hoqQF7SkcmjosE3sd8aezjCs3pvd/HmRGyR/XELK6exsacmNFD1yFAvZT0XCs2K4ua+3Rxb9PuxtwP+lKyKKn4+eoR5d0oaHGveS6zL2ugLMx9JT3ekegtpdtj36teL0tsO78h6ThfNe21UU3Floap0CKAzRDVfEvWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by PH0PR01MB8166.prod.exchangelabs.com (2603:10b6:510:293::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6886.35; Wed, 18 Oct 2023 03:28:38 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::2237:1801:e15c:e8b7]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::2237:1801:e15c:e8b7%7]) with mapi id 15.20.6886.034; Wed, 18 Oct 2023 03:28:38 +0000 Message-ID: <57236818-8e59-4da0-af38-4809d08fba7f@os.amperecomputing.com> Date: Wed, 18 Oct 2023 10:28:27 +0700 User-Agent: Mozilla Thunderbird Subject: Re: [edk2-devel] [PATCH edk2-platforms v3 4/4] SbsaQemu: disable XHCI in DSDT if not present To: Marcin Juszkiewicz , devel@edk2.groups.io Cc: Leif Lindholm , Ard Biesheuvel , Jeremy Linton , Chuong Tran , Rebecca Cran References: <20231017-ehci-xhci-fix-v3-0-0b9ec9847947@linaro.org> <20231017-ehci-xhci-fix-v3-4-0b9ec9847947@linaro.org> From: "Nhi Pham via groups.io" In-Reply-To: <20231017-ehci-xhci-fix-v3-4-0b9ec9847947@linaro.org> X-ClientProxiedBy: SG3P274CA0017.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:be::29) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|PH0PR01MB8166:EE_ X-MS-Office365-Filtering-Correlation-Id: a00ed471-9caf-476c-af1c-08dbcf8a5168 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: KD2lIUxs3o0JR9Z/rtsv+Kk3uYwEtHy7baEHDnmX9Fd2xmIloSnYp710doT+RNOIiPHOw66i/tgcycCrF0AlrDCp97xuFAvsDciVGz94tVkyBt2ykm8geYuBLrHwKiJ34Ol14bQAxIOtBVxkx6BvAnwSDFRZS8nzQOO8UqVSAmm/Sq8/rTxbdAa9s4jlXJlOWidK6wh3gu8G9XyTIeKTTA5i1R6LjN+LEuAk6OqFkB0HAYvKhj4VrEp2J6BjJNtoqiiHBN+veLPqSy6q6ZaPUuk0w9vxny5PwfoROUGXh6tlHQDe/49TXfUAZvAdUyhKDQK5WMXQ6lcv/fFgKMDce1DcK5un1uc2bFNCAU7ho5nT8uarfjwo0ZCMTIykSc58t84zSN/SvkZHS/b+7x9FQg4U4PE+qx2i7DBpYnW+iBAi1Iud+xCJLW/4VuDCyl4k1MZoQf9rggFi350yyr2kAYgkcfI4+BJimfiGIVUXINaqf8mffVWbgQkTy1Idz083cnRpB0w1nEvZ/b34MCS7iDB9hiBP2rjU1GMFkikTWBYWQTbJYqGcOb95giagxacP9pmSETIU7YQXKXXvCUrBYbVedpCa2pzVJteL5U/6BsFPanLgET/8+nPFYiAYo717 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c1lEbWFHRHZobGh6OHBVWU9ocERtTWk5Mlpybm1hSUxTYUVxbDMrMGppVXJl?= =?utf-8?B?c3RDa1RWeXlBL1ZQU24yckY2OUVwMzU2YmFIb0FkRUxRWW9ZRXdGTGprQ25N?= =?utf-8?B?MzVaM3VWdVAvbGJwMXVjb0FIRmczbGNpMXRUcUZORE5ZZXhlTzI0S0d2ckJw?= =?utf-8?B?Q3B2ZkRjK3pCUHFYc0U5enE1YnJpcFZMTlprVm8wYm8vemJ5aDJOWGtNU2pV?= =?utf-8?B?VDh3cWtVRkwvdVRKSFpMczAvUXRyUFhOdERGaGMxSGN6d0hzSWI3Y1UwcFBN?= =?utf-8?B?L043aVA1NEVjdWRHUFNVeDVreTU5UWFHMnNhK0xoNElyTlZKTHhlUGhxNCsv?= =?utf-8?B?L3FqaEVFUnkrWWVlQWF2ZkxKck9YcUIxbVVZVGZ5Rno5RklVZUVXSjltaWVl?= =?utf-8?B?aFJmeVZnRWgrWk5IVStsSUtGbCtxcFlEU2lsSHVTcExZWlhqVXZtS0JZNlJ1?= =?utf-8?B?OU9JdUpYUXJlWFNxaXFLWHBWdjUrS0VvY0haemtuOUYyQ01EY09kZWZ6UGlz?= =?utf-8?B?aGFIbThzMlZEa3R2TEdBKzNyOEJ4QzlUWm1PYklrNnBnc1RmTVRLZ29Zb21B?= =?utf-8?B?MWlMdVpPRTFVcE8wLzJpZnR0VFhyM2s1SHNWTmx4VkVRUzlzSlA4WjFwTUlr?= =?utf-8?B?Y2Rqenp2S3UyNjM5TGo2eERiUXFTQlBzMzRoNXBXdmtxSnZWcWgxcHpjTTVU?= =?utf-8?B?MGRkaTczN0lvVGROQ3pIbS82MzFCNHhHbzB6a1ljNmhkYm5rL3V2aHROR05J?= =?utf-8?B?eGJleDRHS1JzTkgzZCt6L2Q5ck4vSHdYSXplQ0RjRkRtaVhRcytqU3ZtRUFD?= =?utf-8?B?dGp3ZnB5Mk9CUXlJb1BjT3E2N2xnVklmOUV1OEdMVFV3a21JUG5rb2dhQ2R3?= =?utf-8?B?MUxQeGZSSnYyYmJiNlAzdU9WbHJBZndSQUVVRkp1aDRzRkhjWnpRKzA4R1Ix?= =?utf-8?B?Ry8xbDhOZkRhMG16cGxGV0cyMzFWeVV0Vjh4VHhxdVFzenRFWW8xWlVMYXdF?= =?utf-8?B?cEdnUWE0WVgwb3ZZMjA4VHJtRjhRYzY5dzhyNGVrYjB5d1lBYjdOMFphNFh6?= =?utf-8?B?K2hvWUo1RDJRbDBjS3FIR2hHbXhxZ2psdGEvMkpLd3RvTDdYRHc3d2haLzJU?= =?utf-8?B?S2dhQmZjeXBvY3pKTVV3VGlDUlA2MldSUTFIczE3Y2RVNEJlWmY5d3FsTi9m?= =?utf-8?B?SnVjOWZhNURhczlVeWZpY2xjM1pqWGQ1aktaeEdxVmh4dUxLVGo2U1ZHcEcy?= =?utf-8?B?Y1RzNEdXbGV5SEN3Mi9BSDczTXRLbXdrbTlvdlIyNkNubFhoQ3llbmJEdVQw?= =?utf-8?B?UEhhTU9QTEdidm1mU0FDSkNBTHl2TjhjVjF4VHZjcGlOT0Zrb29XVkdIVlR2?= =?utf-8?B?OEMvdXY0WUFhcGJyMWlEYVVmL0p5Tjk5cVYvdysxbUUxQlhOVlZSVldVdUZS?= =?utf-8?B?cTM0aVFuTzdUL3ZjczlwdVo4TXlzeGcvYytPOFNpbnpIRWttREUzUVFXRmJt?= =?utf-8?B?RjhQcWg1cDZTWVZZYzFxeTZZYXpLdlFpdTd4aG9YRFlwWkdnTmllZ3JFNWta?= =?utf-8?B?S2U4LzdjK1RjN0h5anNPd3BhNzlMcExWSXhvbW9vaEtEeVc3ZUhFRGFwVFE0?= =?utf-8?B?b0ZiQ1hwODhpU09OV0JHQlFzNVlOdnZYTFRKVUk3OEErTUNTanVKcHZYTG5j?= =?utf-8?B?djU4OXBESGVjb043NE5BWTlXMUd0YVc5QVhldk0rRnBVdzdtM0xFVmFVY1Ri?= =?utf-8?B?ZTg2bGgyT0FlTzJOUmJKYkdNajlnb2FqMFFvU3pSZVhpbVJGRFNDdHBTUkNY?= =?utf-8?B?QW5DVGtPbW1qZU5qd1dzWnNaZ1I5aEMrL0R5UlJKaWw0dzF3MitnaysvZnUz?= =?utf-8?B?UWJTUkFuYmovUndqZW01UDJMVHlFVlJVY3ZnWTg0TmRMMTU4QU5aOWZnbTJH?= =?utf-8?B?OTJuOU1xdWcvNzE0dGRHeWhKSmFWMWM0aUpyK0NZOVZVd3M5UHA5RG9aNkVJ?= =?utf-8?B?Zko2MzZlcllqNExsSEtSTlplaDd4Ui9uYjROOWZ0NE5LQWtmS0RNb2w3ZjU3?= =?utf-8?B?NXJDeWRaVnIrZmlXcEo4OGNDVFArMzdwYXhBcHdjRUsrK3p6UU50bURjY0tt?= =?utf-8?B?dzdwbjNDS2c1K3dHWUtmaWtTSTZoQ2k4MXRWMkJkNTZpb2FUSW9wMk0wcEll?= =?utf-8?B?VVE9PQ==?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: a00ed471-9caf-476c-af1c-08dbcf8a5168 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2023 03:28:38.3819 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RlNiZeqjkY/Vk24S09Fv0WFp+Gazj6r42w64xmJSTElDXvX+6b1nPk46G5irbJsc39EztpOWLweyWGv0vwS+9QtX9POBIdOO/n8icNI8ObY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR01MB8166 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nhi@os.amperecomputing.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: a2wxZo4y4SGLZapYrNnm5qrkx7686176AA= Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=LGJvBHhK; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") Hi Marcin, There is a nitpicking below. Other than, it looks good to me. Acked-by: Nhi Pham Regards, Nhi On 10/17/2023 8:23 PM, Marcin Juszkiewicz wrote: > We need platform version to be at least 0.3 to have XHCI > in virtual hardware. On older platforms there is non-working > EHCI which we ignore. >=20 > Set DSDT node to be disabled so operating system will not try > to initialize not-existing hardware. >=20 > Signed-off-by: Marcin Juszkiewicz > --- > .../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf | 4 ++ > .../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c | 60 +++++++++++++= +++++++ > Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl | 3 +- > 3 files changed, 66 insertions(+), 1 deletion(-) >=20 > diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDx= e.inf b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf > index 7c7e08e0fd3a..d5ded892d6ea 100644 > --- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf > +++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf > @@ -29,6 +29,7 @@ [Packages] > Silicon/Qemu/SbsaQemu/SbsaQemu.dec > =20 > [LibraryClasses] > + AcpiLib > ArmLib > BaseMemoryLib > BaseLib > @@ -50,6 +51,8 @@ [Pcd] > gArmTokenSpaceGuid.PcdGicRedistributorsBase > gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdGicItsBase > gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdSmmuBase > + gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdPlatformVersionMajor > + gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdPlatformVersionMinor > =20 > [Depex] > gEfiAcpiTableProtocolGuid ## CONSUMES > @@ -59,6 +62,7 @@ [Guids] > =20 > [Protocols] > gEfiAcpiTableProtocolGuid ## CONSUMES > + gEfiAcpiSdtProtocolGuid > =20 > [FixedPcd] > gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId > diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDx= e.c b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c > index fd849ca1594b..cf6e534ca3a0 100644 > --- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c > +++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c > @@ -10,6 +10,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -682,6 +683,63 @@ AddGtdtTable ( > return Status; > } > =20 > +EFI_STATUS > +DisableXhciOnOlderPlatVer ( > + VOID > + ) > +{ > + EFI_STATUS Status; > + EFI_ACPI_SDT_PROTOCOL *AcpiSdtProtocol; > + EFI_ACPI_DESCRIPTION_HEADER *Table; > + UINTN TableKey; > + UINTN TableIndex; > + EFI_ACPI_HANDLE TableHandle; > + > + Status =3D EFI_SUCCESS; > + > + if ( PLATFORM_VERSION_LESS_THAN(0, 3) ) { > + DEBUG ((DEBUG_ERROR, "Platform Version < 0.3 - disabling XHCI\n")); > + Status =3D gBS->LocateProtocol ( > + &gEfiAcpiSdtProtocolGuid, > + NULL, > + (VOID **)&AcpiSdtProtocol > + ); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "Unable to locate ACPI table protocol\n")); > + return Status; > + } > + > + TableIndex =3D 0; > + Status =3D AcpiLocateTableBySignature ( > + AcpiSdtProtocol, > + EFI_ACPI_6_3_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGN= ATURE, > + &TableIndex, > + &Table, > + &TableKey > + ); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "ACPI DSDT table not found!\n")); > + ASSERT_EFI_ERROR (Status); > + return Status; > + } > + > + Status =3D AcpiSdtProtocol->OpenSdt (TableKey, &TableHandle); > + if (EFI_ERROR (Status)) { > + ASSERT_EFI_ERROR (Status); > + AcpiSdtProtocol->Close (TableHandle); > + return Status; > + } > + > + AcpiAmlObjectUpdateInteger (AcpiSdtProtocol, TableHandle, "\\_SB.USB= 0.XHCI", 0x0); > + > + AcpiSdtProtocol->Close (TableHandle); > + AcpiUpdateChecksum ((UINT8 *)Table, Table->Length); > + } > + > + return Status; > +} > + > + > EFI_STATUS > EFIAPI > InitializeSbsaQemuAcpiDxe ( > @@ -738,5 +796,7 @@ InitializeSbsaQemuAcpiDxe ( > DEBUG ((DEBUG_ERROR, "Failed to add GTDT table\n")); > } > =20 > + Status =3D DisableXhciOnOlderPlatVer(); Nit: EDK2 Coding Style says that you need a space before (. Is it=20 necessary to handle the result of Status? > + > return EFI_SUCCESS; > } > diff --git a/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl b/Silicon/Qemu/Sbs= aQemu/AcpiTables/Dsdt.asl > index 543b5782580a..ba3eefc975a5 100644 > --- a/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl > +++ b/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl > @@ -73,8 +73,9 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", > Name (_HID, "PNP0D10") // _HID: Hardware ID > Name (_UID, 0x00) // _UID: Unique ID > Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute > + Name (XHCI, 0xF) // will be set using AcpiLib > Method (_STA) { > - Return (0xF) > + Return (XHCI) > } > Method (_CRS, 0x0, Serialized) { > Name (RBUF, ResourceTemplate() { >=20 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109703): https://edk2.groups.io/g/devel/message/109703 Mute This Topic: https://groups.io/mt/102017316/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-