[edk2-devel] [RFC edk2-platforms v1 1/3] Silicon/Hisilicon: Change updating dsdt in ready to boot event

Ming Huang posted 3 patches 5 years, 8 months ago
There is a newer version of this series
[edk2-devel] [RFC edk2-platforms v1 1/3] Silicon/Hisilicon: Change updating dsdt in ready to boot event
Posted by Ming Huang 5 years, 8 months ago
The better time for updating dsdt is in ready to boot event,
so change the updating time.

Signed-off-by: Ming Huang <huangming23@huawei.com>
---
 Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 60 ++++++++++++++++++--
 1 file changed, 56 insertions(+), 4 deletions(-)

diff --git a/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c b/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
index b888cb1..1ab55bc 100644
--- a/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
+++ b/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
@@ -1,8 +1,8 @@
 /** @file
 
-  Copyright (c) 2014, Applied Micro Curcuit Corporation. All rights reserved.<BR>
-  Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
-  Copyright (c) 2015, Linaro Limited. All rights reserved.<BR>
+  Copyright (c) 2014 - 2020, Applied Micro Curcuit Corporation. All rights reserved.<BR>
+  Copyright (c) 2015 - 2020, Hisilicon Limited. All rights reserved.<BR>
+  Copyright (c) 2015 - 2020, Linaro Limited. All rights reserved.<BR>
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
@@ -23,6 +23,38 @@
 #include <IndustryStandard/AcpiAml.h>
 #include "EthMac.h"
 
+EFI_EVENT       mUpdateAcpiDsdtTableEvent;
+
+VOID
+EFIAPI
+UpdateAcpiDsdt (
+  IN EFI_EVENT         Event,
+  IN VOID              *Context
+  )
+{
+  EFI_ACPI_TABLE_PROTOCOL *AcpiTableProtocol;
+  EFI_STATUS              Status;
+
+  Status = gBS->LocateProtocol (
+                  &gEfiAcpiTableProtocolGuid,
+                  NULL,
+                  (VOID**)&AcpiTableProtocol
+                  );
+
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, " Unable to locate ACPI table protocol\n"));
+    return;
+  }
+
+  Status = EthMacInit ();
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, " UpdateAcpiDsdtTable Failed, Status = %r\n", Status));
+  }
+
+  gBS->CloseEvent (Event);
+  return;
+}
+
 EFI_STATUS
 EFIAPI
 AcpiPlatformEntryPoint (
@@ -30,5 +62,25 @@ AcpiPlatformEntryPoint (
   IN EFI_SYSTEM_TABLE   *SystemTable
   )
 {
-  return EthMacInit();
+  EFI_STATUS Status;
+
+  //
+  // Register notify function
+  //
+  Status = gBS->CreateEventEx (
+                  EVT_NOTIFY_SIGNAL,
+                  TPL_CALLBACK,
+                  UpdateAcpiDsdt,
+                  NULL,
+                  &gEfiEventReadyToBootGuid,
+                  &mUpdateAcpiDsdtTableEvent
+                  );
+
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "Create ReadyToBoot event for UpdateAcpiDsdt failed.\n"));
+  } else {
+    DEBUG ((DEBUG_INFO, "Create ReadyToBoot event for UpdateAcpiDsdt success.\n"));
+  }
+
+  return Status;
 }
-- 
2.8.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#60035): https://edk2.groups.io/g/devel/message/60035
Mute This Topic: https://groups.io/mt/74377144/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [RFC edk2-platforms v1 1/3] Silicon/Hisilicon: Change updating dsdt in ready to boot event
Posted by Leif Lindholm 5 years, 8 months ago
Please call your patches PATCH. RFC is when a potential solution
is put up for discussion, not for changing platform code.

On Thu, May 21, 2020 at 22:43:02 +0800, Ming Huang wrote:
> The better time for updating dsdt is in ready to boot event,
> so change the updating time.

The commit message should explain *why* it is better.

> 
> Signed-off-by: Ming Huang <huangming23@huawei.com>
> ---
>  Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 60 ++++++++++++++++++--
>  1 file changed, 56 insertions(+), 4 deletions(-)
> 
> diff --git a/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c b/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
> index b888cb1..1ab55bc 100644
> --- a/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
> +++ b/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
> @@ -1,8 +1,8 @@
>  /** @file
>  
> -  Copyright (c) 2014, Applied Micro Curcuit Corporation. All rights reserved.<BR>
> -  Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
> -  Copyright (c) 2015, Linaro Limited. All rights reserved.<BR>
> +  Copyright (c) 2014 - 2020, Applied Micro Curcuit Corporation. All rights reserved.<BR>
> +  Copyright (c) 2015 - 2020, Hisilicon Limited. All rights reserved.<BR>
> +  Copyright (c) 2015 - 2020, Linaro Limited. All rights reserved.<BR>

Only the Hisilicon copyright should be updated (or a Huawei one added,
given that this is the address used for submitting).

/
    Leif

>    SPDX-License-Identifier: BSD-2-Clause-Patent
>  
>  **/
> @@ -23,6 +23,38 @@
>  #include <IndustryStandard/AcpiAml.h>
>  #include "EthMac.h"
>  
> +EFI_EVENT       mUpdateAcpiDsdtTableEvent;
> +
> +VOID
> +EFIAPI
> +UpdateAcpiDsdt (
> +  IN EFI_EVENT         Event,
> +  IN VOID              *Context
> +  )
> +{
> +  EFI_ACPI_TABLE_PROTOCOL *AcpiTableProtocol;
> +  EFI_STATUS              Status;
> +
> +  Status = gBS->LocateProtocol (
> +                  &gEfiAcpiTableProtocolGuid,
> +                  NULL,
> +                  (VOID**)&AcpiTableProtocol
> +                  );
> +
> +  if (EFI_ERROR (Status)) {
> +    DEBUG ((DEBUG_ERROR, " Unable to locate ACPI table protocol\n"));
> +    return;
> +  }
> +
> +  Status = EthMacInit ();
> +  if (EFI_ERROR (Status)) {
> +    DEBUG ((DEBUG_ERROR, " UpdateAcpiDsdtTable Failed, Status = %r\n", Status));
> +  }
> +
> +  gBS->CloseEvent (Event);
> +  return;
> +}
> +
>  EFI_STATUS
>  EFIAPI
>  AcpiPlatformEntryPoint (
> @@ -30,5 +62,25 @@ AcpiPlatformEntryPoint (
>    IN EFI_SYSTEM_TABLE   *SystemTable
>    )
>  {
> -  return EthMacInit();
> +  EFI_STATUS Status;
> +
> +  //
> +  // Register notify function
> +  //
> +  Status = gBS->CreateEventEx (
> +                  EVT_NOTIFY_SIGNAL,
> +                  TPL_CALLBACK,
> +                  UpdateAcpiDsdt,
> +                  NULL,
> +                  &gEfiEventReadyToBootGuid,
> +                  &mUpdateAcpiDsdtTableEvent
> +                  );
> +
> +  if (EFI_ERROR (Status)) {
> +    DEBUG ((DEBUG_ERROR, "Create ReadyToBoot event for UpdateAcpiDsdt failed.\n"));
> +  } else {
> +    DEBUG ((DEBUG_INFO, "Create ReadyToBoot event for UpdateAcpiDsdt success.\n"));
> +  }
> +
> +  return Status;
>  }
> -- 
> 2.8.1
> 

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#60293): https://edk2.groups.io/g/devel/message/60293
Mute This Topic: https://groups.io/mt/74377144/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [RFC edk2-platforms v1 1/3] Silicon/Hisilicon: Change updating dsdt in ready to boot event
Posted by Ming Huang 5 years, 8 months ago

在 2020/5/27 1:40, Leif Lindholm 写道:
> Please call your patches PATCH. RFC is when a potential solution
> is put up for discussion, not for changing platform code.

Modify it in v2.

> 
> On Thu, May 21, 2020 at 22:43:02 +0800, Ming Huang wrote:
>> The better time for updating dsdt is in ready to boot event,
>> so change the updating time.
> 
> The commit message should explain *why* it is better.

Modify it in v2.

> 
>>
>> Signed-off-by: Ming Huang <huangming23@huawei.com>
>> ---
>>  Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 60 ++++++++++++++++++--
>>  1 file changed, 56 insertions(+), 4 deletions(-)
>>
>> diff --git a/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c b/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
>> index b888cb1..1ab55bc 100644
>> --- a/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
>> +++ b/Silicon/Hisilicon/Drivers/AcpiPlatformDxe/AcpiPlatform.c
>> @@ -1,8 +1,8 @@
>>  /** @file
>>  
>> -  Copyright (c) 2014, Applied Micro Curcuit Corporation. All rights reserved.<BR>
>> -  Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
>> -  Copyright (c) 2015, Linaro Limited. All rights reserved.<BR>
>> +  Copyright (c) 2014 - 2020, Applied Micro Curcuit Corporation. All rights reserved.<BR>
>> +  Copyright (c) 2015 - 2020, Hisilicon Limited. All rights reserved.<BR>
>> +  Copyright (c) 2015 - 2020, Linaro Limited. All rights reserved.<BR>
> 
> Only the Hisilicon copyright should be updated (or a Huawei one added,
> given that this is the address used for submitting).

Ok, just modify Hisilicon copyright in v2.

Thanks,
Ming

> 
> /
>     Leif
> 
>>    SPDX-License-Identifier: BSD-2-Clause-Patent
>>  
>>  **/
>> @@ -23,6 +23,38 @@
>>  #include <IndustryStandard/AcpiAml.h>
>>  #include "EthMac.h"
>>  
>> +EFI_EVENT       mUpdateAcpiDsdtTableEvent;
>> +
>> +VOID
>> +EFIAPI
>> +UpdateAcpiDsdt (
>> +  IN EFI_EVENT         Event,
>> +  IN VOID              *Context
>> +  )
>> +{
>> +  EFI_ACPI_TABLE_PROTOCOL *AcpiTableProtocol;
>> +  EFI_STATUS              Status;
>> +
>> +  Status = gBS->LocateProtocol (
>> +                  &gEfiAcpiTableProtocolGuid,
>> +                  NULL,
>> +                  (VOID**)&AcpiTableProtocol
>> +                  );
>> +
>> +  if (EFI_ERROR (Status)) {
>> +    DEBUG ((DEBUG_ERROR, " Unable to locate ACPI table protocol\n"));
>> +    return;
>> +  }
>> +
>> +  Status = EthMacInit ();
>> +  if (EFI_ERROR (Status)) {
>> +    DEBUG ((DEBUG_ERROR, " UpdateAcpiDsdtTable Failed, Status = %r\n", Status));
>> +  }
>> +
>> +  gBS->CloseEvent (Event);
>> +  return;
>> +}
>> +
>>  EFI_STATUS
>>  EFIAPI
>>  AcpiPlatformEntryPoint (
>> @@ -30,5 +62,25 @@ AcpiPlatformEntryPoint (
>>    IN EFI_SYSTEM_TABLE   *SystemTable
>>    )
>>  {
>> -  return EthMacInit();
>> +  EFI_STATUS Status;
>> +
>> +  //
>> +  // Register notify function
>> +  //
>> +  Status = gBS->CreateEventEx (
>> +                  EVT_NOTIFY_SIGNAL,
>> +                  TPL_CALLBACK,
>> +                  UpdateAcpiDsdt,
>> +                  NULL,
>> +                  &gEfiEventReadyToBootGuid,
>> +                  &mUpdateAcpiDsdtTableEvent
>> +                  );
>> +
>> +  if (EFI_ERROR (Status)) {
>> +    DEBUG ((DEBUG_ERROR, "Create ReadyToBoot event for UpdateAcpiDsdt failed.\n"));
>> +  } else {
>> +    DEBUG ((DEBUG_INFO, "Create ReadyToBoot event for UpdateAcpiDsdt success.\n"));
>> +  }
>> +
>> +  return Status;
>>  }
>> -- 
>> 2.8.1
>>
> 
> .
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#60352): https://edk2.groups.io/g/devel/message/60352
Mute This Topic: https://groups.io/mt/74377144/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-