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 A91EA740045 for ; Wed, 18 Oct 2023 10:32:35 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=57XiN4pdTUUO87FdeiJ8sWeLm0FMR9z7g/IIw4jWS1c=; 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=1697625154; v=1; b=BcnNklZoPGej+2N6FzWHr8sEf0oxeTxYcFriYZxUwwSx2Y1tnlbA4/cWQd3vKbqVcdinCTu7 7lsLxVAwqlCn1vy/7U5vX/xrVhnWhou+9A4FrNwuxohP/+CLl+uSECvWfKttVpA4KN/7epOHQN8 +vXOybQTI3FFCyrk76dk67zQ= X-Received: by 127.0.0.2 with SMTP id nD6aYY7687511xosqRTJ3OW0; Wed, 18 Oct 2023 03:32:34 -0700 X-Received: from NAM02-BN1-obe.outbound.protection.outlook.com (NAM02-BN1-obe.outbound.protection.outlook.com [40.107.212.113]) by mx.groups.io with SMTP id smtpd.web11.278113.1697625153307266442 for ; Wed, 18 Oct 2023 03:32:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fEQENOXOuw/pCJCuiPWv5iloikp/DCzSjgUc1yewvk7MKk81lmJpBJtpgJNoi7L0+Nj8qBi0mUlMjYh9phpYDyXSzA7A9JxCCo+41AjgsWB85qjr5dU32GPoQK8PV97gYDOoGLw5oO4jbQ5KozEp71x2kB+/siuJAUzPKo3qfa1iDfw3x8Sn/JbJLUqeSCflXtokXM3KqzckIdtNWbIQRUr1Trk42N+6NKW4YD8peDfHWsgozvUg6jCq/uHaCKTiBJ8H18kfDh0Mw7PpUGLMMOtgcNzp4bKI0EzvTcTm6fxURvmXo2wlenQtdvNbz23oQlGXvhOrmMaxX69bkewnAA== 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=bYI8bKtEcdTkN09m1fLWgm/BJOFqw19CEdzCcWODFA4=; b=YFQMnLapnCNdibM+ez40JOExNISS+C9FcG5RAkxKtYlovGf7TEuTK6Up63vIVgck10WpuhudXxqafFb9gCeYqXq0F5Vtx0zk7eDTVsOlk7DV9vaTQ5nZ4SpRi+4tSlIAO3i3HLqOLifTeWvb/gikudzKRlARkYasjcgoh9ILSWELe/kTQ2lVLp0rPLjzzhl+Jpm16iVlui/ZPxdCHuvYy/6L21oDXU18Bkput1HtGF2ysOlxn0jd8Lr2mo9Lae+Mb4j5tF3MhBUqkL7gSWhsnyx1SL8XqHMd7C5Ap/cNwRer8Nhj4n1IKf2cvRBBIgk44kHA4Asgm74SypRpYIK+kg== 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 MN0PR01MB7873.prod.exchangelabs.com (2603:10b6:208:380::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.23; Wed, 18 Oct 2023 10:32:29 +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 10:32:28 +0000 Message-ID: <75b23ede-8f50-4d44-a786-fb04cd4abd00@os.amperecomputing.com> Date: Wed, 18 Oct 2023 17:32:16 +0700 User-Agent: Mozilla Thunderbird Subject: Re: [edk2-devel] [PATCH edk2-platforms v4 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: <20231018-ehci-xhci-fix-v4-0-aa53138997a5@linaro.org> <20231018-ehci-xhci-fix-v4-4-aa53138997a5@linaro.org> From: "Nhi Pham via groups.io" In-Reply-To: <20231018-ehci-xhci-fix-v4-4-aa53138997a5@linaro.org> X-ClientProxiedBy: SGXP274CA0021.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b8::33) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|MN0PR01MB7873:EE_ X-MS-Office365-Filtering-Correlation-Id: bfb0e4c0-3cf5-42ab-2975-08dbcfc5870d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: n9zQYR9KIpYbI+l7Wz7biuE7yNkgNgqyvqfrHZCfywrPKuWhHzrxKzzAIHb+cuTL3g/TsX33HXHilvcBo6cJPFbuBZ1SWNzmJYd+FljJmGs4FDPjjFAeaNHBAp080Irsmk2tcnxu0/jNgyRBBqXi65LtswBOTkK1MbRt+HA3UvLxgkwJSsNIW61uWkSDTzGba44+J135v6AmlWQL6D/Wo/b7z1VFkNPhExy8KBsG9evf346kzMlxiuWqE120MbxOgtQUDQhs4RvTvv6OyZg9Pn4WVim2yZH5fSpGXbqgRKjECj2NtxMKSg3YsIQ1PV/eZRNGHdMLVADpL20wnjzsn+kxNJAa9bJHGuLqKN8y9Iixg8gHLFVNhclbC5STcUQdfUcVNQwjJsU2k7QJ1k8wQ+22dQeXxmQOFesbJ66t97uVPrMwhlJkhWVwfeFQAnjiRSQYvMhv0uNV7TN/ss/mxlwsAygQZwaRa3g+fLZgMpuBb88p6ZgnwLpXch74tMqjVk3J73gQ5hMYZuDHFfVEqFWpKPBK9Dk3t/bJiJVqfz2Jraj52GS2GIJNqtui62ZzduR7T4bNhEZ0pOSBDW205/wuM4iOY+38+meLp15lHCKMiceL5sgMvzFPRmeReX/D X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?blVSU1daMzBjZmUyZ0hqS1FnZXZVMVJyOXlLV3orQU95bFFVQm5va1NpZkN3?= =?utf-8?B?aUVVMC9QclBQUTBjMmZ4cDdiZGl0c0hmSGc2ZjhDRzBBOGZkczBCazZtQkpB?= =?utf-8?B?aGNKbm9XRlY0NzZXOVZVNHYyeS8wYWFTbzJLcDQwY1R4Nm9HVHRMK1RyS1E0?= =?utf-8?B?dXR2TllZdisrYVRITmdGWEVuMXU2K3dDdnorNisvWXFwVVF1S0dMOW5EK2xk?= =?utf-8?B?YWZCRUV2UHEvSFVOWko5b3ZMOG1IM1NoSkhPZ1RWZ3J5N0dtcGhLcENETlky?= =?utf-8?B?Z20yd21UTkJHajRmVGNxSDNncTZOcGV0NGdyTnJQUjhpSE5rVnhFYVpjd20y?= =?utf-8?B?T0JTZXNTL2ZDQ3VlVjJnTVpNelpvemxZSm5tR1hpd2NhOWVUZ1BIQWZMZ1c2?= =?utf-8?B?OHJsdkgxRFlHOEw5bEVqbmVWT3RzTkIvWDJpZ3JGRSs5UzRmLzNoNHhNekwy?= =?utf-8?B?V1BobUZaSUFacWNHaFNBU2FIeWlzc0NTSHBQMnFEYmdUUjE1ZEx3b3MxKzRr?= =?utf-8?B?bXJEYVh6SFIyR28vSzZnOTRXeTM5bk9RZ0pFSHBxYTJzMEVWbDJlNWZiYzBR?= =?utf-8?B?SzZyWldYMXU2bUd2KzBxSXFNSDQyN3FYN3kwdnoweEZJNVpVcmZjRUcwMFN3?= =?utf-8?B?UFB2UVg1ODJDL3BIQ3BXYkdsUzJ6aGxacENSdEk3Q1hTdmdMeUdlUHZWeVZj?= =?utf-8?B?M3V0ei8yOFZOODhXQUtZMkFkR2QwOVdvQVdneWduTXJWd3R4RHdpa2JMcG5Z?= =?utf-8?B?YTJYdnVYMG5VeEY0VXFTeU1sdld1ZWVaL2dMdUU2eUZ4R3BCdVRmOVV6RE5H?= =?utf-8?B?RFdOSTBvYVE0ODIxcmNyRzBPWXJBTzhwcFZJeUlKUEhwZk1LVGE4ZnkrZGQ5?= =?utf-8?B?UzE5cW11dTJZKzZuS0VORXhCTzJMYUV3ZTBPSkdXSzZvbkRaQ3VuQXMwaUFD?= =?utf-8?B?NEZTT29EVVdFYXR4VzhtMEdjNzRBREF5UGNmQU80aVo0TW5Pei9TM1BwQ3Ey?= =?utf-8?B?MDc2WWM3aStWUjNrNWNnaEVyTWVlNllJR011d1BjaXdHZUZQWGlZaklqSGM5?= =?utf-8?B?VmxLUVVXbTlDTTdOTWM2WmV2ZGtwb2dmK3lCS3V5SzR1cmNndSszd0xWczhq?= =?utf-8?B?YjdEUVcyTTJURVAybFdLbHpaRm45UTN0SGZVbzdIMlJQcTlYYWNQVXBqNVZQ?= =?utf-8?B?eDN3VkRobllaSEhEQkcyR3cxeEJhU3dydHFYa3doTXVhNW1mRmtIVGZsY0c5?= =?utf-8?B?bnk5Qmdhckl2TWZNN3VhcVRYd2ZGVmVCbUpqMmp2RWtFOFQ3UTRzdFVqWDZs?= =?utf-8?B?NWJJZVZjY2p6MVJUY1lBOG8rd3hFdUp6YnBjNUZUdWtOK3FPU09XV0p3Rkdv?= =?utf-8?B?RmNNMFJ2MG10YnAvc0RkaEliQW5DVjNvTXZOSlk5Vjd5c2RGQktibytINnZU?= =?utf-8?B?c0xtNUZmYXNreVpjcklqOVJJQjBYbWtrUG1EVlBUYURhenIrbzhDOGVMNm1S?= =?utf-8?B?YkNrYjdnMHVvNXgwcmdTKytmUVYrMzhHTU9iMjEzU1hiU3JwWXFnZFgwZjd1?= =?utf-8?B?cGhiWjdFWGlqc0pyVUJRMUl1NVBweFRJT1N3cTM0VERPNmNzdzRsYXJ2RllU?= =?utf-8?B?UkpqUHdmWU5JenBpc0M2bGtQbzNvMlhOWnVuREFZeXJuQkorUStMM0kwSHZ4?= =?utf-8?B?ZE5mdTRzZEprQjRJVDdMSEREQ205V3lnU2JCZG1NQ3h4cmFIMUVRVCtNM3Y3?= =?utf-8?B?RkdTYzFqVXpldUpXRk0zd0w3a0hYc0c4bGp6UTRDUnhvdW1tbm1NRksrWlVZ?= =?utf-8?B?OEcweXpJNjIwUEZvTFJKSFRjWW1KZ0c3YVhYMTlsa2cwMWtMdldYVlFKWkI4?= =?utf-8?B?Z1hRZzNNNmhEa081MCtRaVBrajlIay9WYzVJa1NsOW5ySXh4cWludVhycldN?= =?utf-8?B?d0NrZFQ5cnRvSXBSMkNYeUZ4ak5YaVUzN29pdkZORXA3bGNSMEU5YUFDcVN5?= =?utf-8?B?RHBvNnduelovOE1SUHQwWjVlMWpUbTgyWnM1RlV2djd5cFpYRTlWTzBtTUlQ?= =?utf-8?B?OG9jN2xQWEdneXBWRHdtSVZpWTJZM2xWMlRNN1h6cURRUHE0b0pkMi9jbUlw?= =?utf-8?B?ZzgxMWdiYUdMUThNQVgzNmFLVWJuSXVIOStYUjF4SGszaHh2cXN1VEN0eVNh?= =?utf-8?B?ZGc9PQ==?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfb0e4c0-3cf5-42ab-2975-08dbcfc5870d X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2023 10:32:28.5760 (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: rc7IOqsHAUdlmKfznGW/my6OqIE3K4+1TKC+H1iNnNKE+Q/e+jS7z+7F/K2lWOuNRjUYDD/XT84YY8UVUhOHhhg1F/3A+MDNw3zdBiKCZaI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR01MB7873 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: 4f4vuYsXUoNlk4Ptaa5YhRRbx7686176AA= 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=BcnNklZo; 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}") Acked-by: Nhi Pham Nit: I think you want to run uncrustify for Patch 3 as well :) Regards, Nhi On 10/18/2023 5:07 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 | 66 +++++++++++++= ++++++- > Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl | 3 +- > 3 files changed, 71 insertions(+), 2 deletions(-) >=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..4d8a57d5a8e4 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,69 @@ 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; > + } > + > + Status =3D AcpiAmlObjectUpdateInteger (AcpiSdtProtocol, TableHandle,= "\\_SB.USB0.XHCI", 0x0); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "Failed to disable XHCI!\n")); > + ASSERT_EFI_ERROR (Status); > + AcpiSdtProtocol->Close (TableHandle); > + return Status; > + } > + > + AcpiSdtProtocol->Close (TableHandle); > + AcpiUpdateChecksum ((UINT8 *)Table, Table->Length); > + } > + > + return Status; > +} > + > + > EFI_STATUS > EFIAPI > InitializeSbsaQemuAcpiDxe ( > @@ -738,5 +802,5 @@ InitializeSbsaQemuAcpiDxe ( > DEBUG ((DEBUG_ERROR, "Failed to add GTDT table\n")); > } > =20 > - return EFI_SUCCESS; > + return DisableXhciOnOlderPlatVer (); > } > 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 (#109726): https://edk2.groups.io/g/devel/message/109726 Mute This Topic: https://groups.io/mt/102035954/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-