* [edk2-devel] [PATCH edk2-platforms v5 1/4] SbsaQemu: introduce macro to compare platform version
2023-10-18 11:55 [edk2-devel] [PATCH edk2-platforms v5 0/4] Provide XHCI USB controller only for newer hardware Marcin Juszkiewicz
@ 2023-10-18 11:55 ` Marcin Juszkiewicz
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 2/4] SbsaQemu: add AcpiLib Marcin Juszkiewicz
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Marcin Juszkiewicz @ 2023-10-18 11:55 UTC (permalink / raw)
To: devel
Cc: Leif Lindholm, Ard Biesheuvel, Jeremy Linton, Nhi Pham,
Chuong Tran, Rebecca Cran, Marcin Juszkiewicz
We want to check "if platver < 0.3" in an easy way.
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
---
.../IndustryStandard/SbsaQemuPlatformVersion.h | 25 ++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/Silicon/Qemu/SbsaQemu/Include/IndustryStandard/SbsaQemuPlatformVersion.h b/Silicon/Qemu/SbsaQemu/Include/IndustryStandard/SbsaQemuPlatformVersion.h
new file mode 100644
index 000000000000..dd2483787002
--- /dev/null
+++ b/Silicon/Qemu/SbsaQemu/Include/IndustryStandard/SbsaQemuPlatformVersion.h
@@ -0,0 +1,25 @@
+/** @file
+*
+* Copyright (c) Linaro Limited. All rights reserved.
+*
+* SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef SBSAQEMUPLATFORM_VERSION_H
+#define SBSAQEMUPLATFORM_VERSION_H
+
+/*
+ * Compare PlatformVersion
+ *
+ */
+
+#define PLATFORM_VERSION_LESS_THAN(Major, Minor) ( \
+ ( \
+ ( PcdGet32 (PcdPlatformVersionMajor) < Major) || \
+ ( \
+ ( PcdGet32 (PcdPlatformVersionMajor) == Major) && \
+ ( PcdGet32 (PcdPlatformVersionMinor) < Minor) \
+ ) \
+ ) \
+)
+#endif
--
2.41.0
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109735): https://edk2.groups.io/g/devel/message/109735
Mute This Topic: https://groups.io/mt/102037241/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [edk2-devel] [PATCH edk2-platforms v5 2/4] SbsaQemu: add AcpiLib
2023-10-18 11:55 [edk2-devel] [PATCH edk2-platforms v5 0/4] Provide XHCI USB controller only for newer hardware Marcin Juszkiewicz
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 1/4] SbsaQemu: introduce macro to compare platform version Marcin Juszkiewicz
@ 2023-10-18 11:55 ` Marcin Juszkiewicz
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 3/4] SbsaQemu: initialize XHCI only if it exists Marcin Juszkiewicz
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 4/4] SbsaQemu: disable XHCI in DSDT if not present Marcin Juszkiewicz
3 siblings, 0 replies; 6+ messages in thread
From: Marcin Juszkiewicz @ 2023-10-18 11:55 UTC (permalink / raw)
To: devel
Cc: Leif Lindholm, Ard Biesheuvel, Jeremy Linton, Nhi Pham,
Chuong Tran, Rebecca Cran, Marcin Juszkiewicz
It will be needed for playing with disabling XHCI later.
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
---
Platform/Qemu/SbsaQemu/SbsaQemu.dsc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Platform/Qemu/SbsaQemu/SbsaQemu.dsc b/Platform/Qemu/SbsaQemu/SbsaQemu.dsc
index 36723e21d7b5..1e650350cb63 100644
--- a/Platform/Qemu/SbsaQemu/SbsaQemu.dsc
+++ b/Platform/Qemu/SbsaQemu/SbsaQemu.dsc
@@ -172,6 +172,8 @@ [LibraryClasses.common]
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
+ AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
+
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
--
2.41.0
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109736): https://edk2.groups.io/g/devel/message/109736
Mute This Topic: https://groups.io/mt/102037242/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [edk2-devel] [PATCH edk2-platforms v5 3/4] SbsaQemu: initialize XHCI only if it exists
2023-10-18 11:55 [edk2-devel] [PATCH edk2-platforms v5 0/4] Provide XHCI USB controller only for newer hardware Marcin Juszkiewicz
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 1/4] SbsaQemu: introduce macro to compare platform version Marcin Juszkiewicz
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 2/4] SbsaQemu: add AcpiLib Marcin Juszkiewicz
@ 2023-10-18 11:55 ` Marcin Juszkiewicz
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 4/4] SbsaQemu: disable XHCI in DSDT if not present Marcin Juszkiewicz
3 siblings, 0 replies; 6+ messages in thread
From: Marcin Juszkiewicz @ 2023-10-18 11:55 UTC (permalink / raw)
To: devel
Cc: Leif Lindholm, Ard Biesheuvel, Jeremy Linton, Nhi Pham,
Chuong Tran, Rebecca Cran, Marcin Juszkiewicz
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.
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
---
.../SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c | 49 +++++++++++---------
1 file changed, 27 insertions(+), 22 deletions(-)
diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c
index 36ada4270bbf..4ebbe7c93a19 100644
--- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c
+++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c
@@ -15,6 +15,7 @@
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiDriverEntryPoint.h>
#include <IndustryStandard/SbsaQemuSmc.h>
+#include <IndustryStandard/SbsaQemuPlatformVersion.h>
#include <Protocol/FdtClient.h>
@@ -57,28 +58,6 @@ InitializeSbsaQemuPlatformDxe (
return Status;
}
- Base = (VOID*)(UINTN)PcdGet64 (PcdPlatformXhciBase);
- ASSERT (Base != NULL);
- Size = (UINTN)PcdGet32 (PcdPlatformXhciSize);
- ASSERT (Size != 0);
-
- DEBUG ((DEBUG_INFO, "%a: Got platform XHCI %llx %u\n",
- __FUNCTION__, Base, Size));
-
- Status = RegisterNonDiscoverableMmioDevice (
- NonDiscoverableDeviceTypeXhci,
- NonDiscoverableDeviceDmaTypeCoherent,
- NULL,
- NULL,
- 1,
- Base, Size);
-
- if (EFI_ERROR(Status)) {
- DEBUG ((DEBUG_ERROR, "%a: NonDiscoverable: Cannot install XHCI device @%p (Staus == %r)\n",
- __FUNCTION__, Base, Status));
- return Status;
- }
-
SmcResult = ArmCallSmc0 (SIP_SVC_VERSION, &Arg0, &Arg1, NULL);
if (SmcResult == SMC_ARCH_CALL_SUCCESS) {
Result = PcdSet32S (PcdPlatformVersionMajor, Arg0);
@@ -118,5 +97,31 @@ InitializeSbsaQemuPlatformDxe (
DEBUG ((DEBUG_INFO, "GICI base: 0x%x\n", Arg0));
+ if (!PLATFORM_VERSION_LESS_THAN (0, 3)) {
+ Base = (VOID *)(UINTN)PcdGet64 (PcdPlatformXhciBase);
+ ASSERT (Base != NULL);
+ Size = (UINTN)PcdGet32 (PcdPlatformXhciSize);
+ ASSERT (Size != 0);
+
+ DEBUG ((DEBUG_INFO, "%a: Got platform XHCI %llx %u\n",
+ __FUNCTION__, Base, Size));
+
+ Status = RegisterNonDiscoverableMmioDevice (
+ NonDiscoverableDeviceTypeXhci,
+ NonDiscoverableDeviceDmaTypeCoherent,
+ NULL,
+ NULL,
+ 1,
+ Base,
+ Size
+ );
+
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a: NonDiscoverable: Cannot install XHCI device @%p (Status == %r)\n",
+ __FUNCTION__, Base, Status));
+ return Status;
+ }
+ }
+
return EFI_SUCCESS;
}
--
2.41.0
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109738): https://edk2.groups.io/g/devel/message/109738
Mute This Topic: https://groups.io/mt/102037245/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [edk2-devel] [PATCH edk2-platforms v5 4/4] SbsaQemu: disable XHCI in DSDT if not present
2023-10-18 11:55 [edk2-devel] [PATCH edk2-platforms v5 0/4] Provide XHCI USB controller only for newer hardware Marcin Juszkiewicz
` (2 preceding siblings ...)
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 3/4] SbsaQemu: initialize XHCI only if it exists Marcin Juszkiewicz
@ 2023-10-18 11:55 ` Marcin Juszkiewicz
2023-10-26 16:56 ` Leif Lindholm
3 siblings, 1 reply; 6+ messages in thread
From: Marcin Juszkiewicz @ 2023-10-18 11:55 UTC (permalink / raw)
To: devel
Cc: Leif Lindholm, Ard Biesheuvel, Jeremy Linton, Nhi Pham,
Chuong Tran, Rebecca Cran, Marcin Juszkiewicz
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.
Set DSDT node to be disabled so operating system will not try
to initialize not-existing hardware.
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
---
.../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf | 4 ++
.../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c | 68 +++++++++++++++++++-
Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl | 3 +-
3 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf
index 7c7e08e0fd3a..291743b19115 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
[LibraryClasses]
+ AcpiLib
ArmLib
BaseMemoryLib
BaseLib
@@ -49,6 +50,8 @@ [Pcd]
gArmTokenSpaceGuid.PcdGicDistributorBase
gArmTokenSpaceGuid.PcdGicRedistributorsBase
gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdGicItsBase
+ gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdPlatformVersionMajor
+ gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdPlatformVersionMinor
gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdSmmuBase
[Depex]
@@ -58,6 +61,7 @@ [Guids]
gEdkiiPlatformHasAcpiGuid
[Protocols]
+ gEfiAcpiSdtProtocolGuid
gEfiAcpiTableProtocolGuid ## CONSUMES
[FixedPcd]
diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c
index fd849ca1594b..464119de1457 100644
--- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c
+++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c
@@ -10,6 +10,7 @@
#include <IndustryStandard/AcpiAml.h>
#include <IndustryStandard/IoRemappingTable.h>
#include <IndustryStandard/SbsaQemuAcpi.h>
+#include <IndustryStandard/SbsaQemuPlatformVersion.h>
#include <Library/AcpiLib.h>
#include <Library/ArmLib.h>
#include <Library/BaseMemoryLib.h>
@@ -682,6 +683,71 @@ AddGtdtTable (
return Status;
}
+/*
+ * A function to disable XHCI node on Platform Version lower than 0.3
+ */
+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 = EFI_SUCCESS;
+
+ if ( PLATFORM_VERSION_LESS_THAN (0, 3)) {
+ DEBUG ((DEBUG_ERROR, "Platform Version < 0.3 - disabling XHCI\n"));
+ Status = gBS->LocateProtocol (
+ &gEfiAcpiSdtProtocolGuid,
+ NULL,
+ (VOID **)&AcpiSdtProtocol
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "Unable to locate ACPI table protocol\n"));
+ return Status;
+ }
+
+ Status = AcpiLocateTableBySignature (
+ AcpiSdtProtocol,
+ EFI_ACPI_6_3_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE,
+ &TableIndex,
+ &Table,
+ &TableKey
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "ACPI DSDT table not found!\n"));
+ ASSERT_EFI_ERROR (Status);
+ return Status;
+ }
+
+ Status = AcpiSdtProtocol->OpenSdt (TableKey, &TableHandle);
+ if (EFI_ERROR (Status)) {
+ ASSERT_EFI_ERROR (Status);
+ AcpiSdtProtocol->Close (TableHandle);
+ return Status;
+ }
+
+ Status = 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 +804,5 @@ InitializeSbsaQemuAcpiDxe (
DEBUG ((DEBUG_ERROR, "Failed to add GTDT table\n"));
}
- return EFI_SUCCESS;
+ return DisableXhciOnOlderPlatVer ();
}
diff --git a/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl b/Silicon/Qemu/SbsaQemu/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() {
--
2.41.0
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109739): https://edk2.groups.io/g/devel/message/109739
Mute This Topic: https://groups.io/mt/102037246/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [edk2-devel] [PATCH edk2-platforms v5 4/4] SbsaQemu: disable XHCI in DSDT if not present
2023-10-18 11:55 ` [edk2-devel] [PATCH edk2-platforms v5 4/4] SbsaQemu: disable XHCI in DSDT if not present Marcin Juszkiewicz
@ 2023-10-26 16:56 ` Leif Lindholm
0 siblings, 0 replies; 6+ messages in thread
From: Leif Lindholm @ 2023-10-26 16:56 UTC (permalink / raw)
To: Marcin Juszkiewicz
Cc: devel, Ard Biesheuvel, Jeremy Linton, Nhi Pham, Chuong Tran,
Rebecca Cran
Couple of minor comments on this patch, rest of set good to go:
On Wed, Oct 18, 2023 at 13:55:41 +0200, 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.
>
> Set DSDT node to be disabled so operating system will not try
> to initialize not-existing hardware.
>
> Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> ---
> .../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf | 4 ++
> .../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c | 68 +++++++++++++++++++-
> Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl | 3 +-
> 3 files changed, 73 insertions(+), 2 deletions(-)
>
> diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c
> index fd849ca1594b..464119de1457 100644
> --- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c
> +++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c
> @@ -10,6 +10,7 @@
> #include <IndustryStandard/AcpiAml.h>
> #include <IndustryStandard/IoRemappingTable.h>
> #include <IndustryStandard/SbsaQemuAcpi.h>
> +#include <IndustryStandard/SbsaQemuPlatformVersion.h>
> #include <Library/AcpiLib.h>
> #include <Library/ArmLib.h>
> #include <Library/BaseMemoryLib.h>
> @@ -682,6 +683,71 @@ AddGtdtTable (
> return Status;
> }
>
> +/*
> + * A function to disable XHCI node on Platform Version lower than 0.3
> + */
STATIC
> +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 = EFI_SUCCESS;
> +
> + if ( PLATFORM_VERSION_LESS_THAN (0, 3)) {
> + DEBUG ((DEBUG_ERROR, "Platform Version < 0.3 - disabling XHCI\n"));
> + Status = gBS->LocateProtocol (
> + &gEfiAcpiSdtProtocolGuid,
> + NULL,
> + (VOID **)&AcpiSdtProtocol
> + );
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "Unable to locate ACPI table protocol\n"));
> + return Status;
> + }
> +
> + Status = AcpiLocateTableBySignature (
> + AcpiSdtProtocol,
> + EFI_ACPI_6_3_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE,
> + &TableIndex,
> + &Table,
> + &TableKey
> + );
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "ACPI DSDT table not found!\n"));
> + ASSERT_EFI_ERROR (Status);
> + return Status;
> + }
> +
> + Status = AcpiSdtProtocol->OpenSdt (TableKey, &TableHandle);
> + if (EFI_ERROR (Status)) {
> + ASSERT_EFI_ERROR (Status);
> + AcpiSdtProtocol->Close (TableHandle);
> + return Status;
> + }
> +
> + Status = 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 +804,5 @@ InitializeSbsaQemuAcpiDxe (
> DEBUG ((DEBUG_ERROR, "Failed to add GTDT table\n"));
> }
>
> - return EFI_SUCCESS;
> + return DisableXhciOnOlderPlatVer ();
Replacing the normal exit path like this unnecessarily ties this call
to the end of the function.
Please add another boring "if (EFI_ERROR ..." stanza instead.
/
Leif
> }
> diff --git a/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl b/Silicon/Qemu/SbsaQemu/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() {
>
> --
> 2.41.0
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#110129): https://edk2.groups.io/g/devel/message/110129
Mute This Topic: https://groups.io/mt/102037246/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 6+ messages in thread