[edk2-devel] [PATCH] IntelSiliconPkg/VTd: Add DMAR SIDP Table dumpping

2022-08-16 Thread Sheng Wei
VT-d spec 4.0 has added a new structure called SIDP which is more
generic to describe special properties of integrated devices.

Cc: Ray Ni 
Cc: Rangasai V Chaganty 
Cc: Jenny Huang 
Cc: Robert Kowalewski 
Signed-off-by: Sheng Wei 
---
 .../Feature/VTd/IntelVTdDxe/DmarAcpiTable.c   | 72 +++
 1 file changed, 72 insertions(+)

diff --git 
a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c 
b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c
index 75fbd53ed..42e1b1449 100644
--- a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c
+++ b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c
@@ -93,6 +93,10 @@ DumpDmarDeviceScopeEntry (
 "  Length . 0x%02x\n",
 DmarDeviceScopeEntry->Length
 ));
+  DEBUG ((DEBUG_INFO,
+"  Flags .. 0x%02x\n",
+DmarDeviceScopeEntry->Flags
+));
   DEBUG ((DEBUG_INFO,
 "  Enumeration ID . 0x%02x\n",
 DmarDeviceScopeEntry->EnumerationId
@@ -122,6 +126,66 @@ DumpDmarDeviceScopeEntry (
   return;
 }
 
+/**
+  Dump DMAR SIDP table.
+
+  @param[in]  Sidp  DMAR SIDP table
+**/
+VOID
+DumpDmarSidp (
+  IN EFI_ACPI_DMAR_SIDP_HEADER *Sidp
+  )
+{
+  EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER   *DmarDeviceScopeEntry;
+  INTN  SidpLen;
+
+  if (Sidp == NULL) {
+return;
+  }
+
+  DEBUG ((DEBUG_INFO,
+"  
***\n"
+));
+  DEBUG ((DEBUG_INFO,
+"  *   SoC Integrated Device Property Reporting Structure  
  *\n"
+));
+  DEBUG ((DEBUG_INFO,
+"  
***\n"
+));
+  DEBUG ((DEBUG_INFO,
+(sizeof(UINTN) == sizeof(UINT64)) ?
+"  SIDP address ... 0x%016lx\n" :
+"  SIDP address ... 0x%08x\n",
+Sidp
+));
+  DEBUG ((DEBUG_INFO,
+"Type . 0x%04x\n",
+Sidp->Header.Type
+));
+  DEBUG ((DEBUG_INFO,
+"Length ... 0x%04x\n",
+Sidp->Header.Length
+));
+  DEBUG ((DEBUG_INFO,
+"Segment Number ... 0x%04x\n",
+Sidp->SegmentNumber
+));
+
+  SidpLen  = Sidp->Header.Length - sizeof(EFI_ACPI_DMAR_SIDP_HEADER);
+  DmarDeviceScopeEntry = (EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER *)(Sidp 
+ 1);
+  while (SidpLen > 0) {
+DumpDmarDeviceScopeEntry (DmarDeviceScopeEntry);
+SidpLen -= DmarDeviceScopeEntry->Length;
+DmarDeviceScopeEntry = (EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER 
*)((UINTN)DmarDeviceScopeEntry + DmarDeviceScopeEntry->Length);
+  }
+
+  DEBUG ((DEBUG_INFO,
+"  
***\n\n"
+));
+
+  return;
+}
+
 /**
   Dump DMAR SATC table.
 
@@ -472,6 +536,10 @@ DumpDmarDrhd (
 "Flags  0x%02x\n",
 Drhd->Flags
 ));
+  DEBUG ((DEBUG_INFO,
+"Size . 0x%02x\n",
+Drhd->Size
+));
   DEBUG ((DEBUG_INFO,
 "  INCLUDE_PCI_ALL  0x%02x\n",
 Drhd->Flags & EFI_ACPI_DMAR_DRHD_FLAGS_INCLUDE_PCI_ALL
@@ -583,7 +651,11 @@ DumpAcpiDMAR (
 case EFI_ACPI_DMAR_TYPE_SATC:
   DumpDmarSatc ((EFI_ACPI_DMAR_SATC_HEADER *)DmarHeader);
   break;
+case EFI_ACPI_DMAR_TYPE_SIDP:
+  DumpDmarSidp ((EFI_ACPI_DMAR_SIDP_HEADER *)DmarHeader);
+  break;
 default:
+  DEBUG ((DEBUG_INFO, "Unknown DMAR Table Type : %d\n", DmarHeader->Type));
   break;
 }
 DmarLen -= DmarHeader->Length;
-- 
2.26.2.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92501): https://edk2.groups.io/g/devel/message/92501
Mute This Topic: https://groups.io/mt/93075708/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




回复: [edk2-devel] 回复: [edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 table and Smbios 3.5.0 spec changes

2022-08-16 Thread gaoliming via groups.io
Sainadh:

 I don’t receive your mail. Can you create edk2 github pull request for your 
changes? Then, I can get them from pull request. 

 

Thanks

Liming

发件人: sainadhn via groups.io  
发送时间: 2022年8月17日 10:45
收件人: gaoliming ; devel@edk2.groups.io
主题: Re: [edk2-devel] 回复: [edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 
table and Smbios 3.5.0 spec changes

 

Hi Liming,

I have replied to your mail on 15th August itself with patch files, incase it's 
not delivered to you I have sent again now. Please help to check and include in 
stable tag.

Thanks,
Sainadh. 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92500): https://edk2.groups.io/g/devel/message/92500
Mute This Topic: https://groups.io/mt/93075461/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




Re: [edk2-devel] [PATCH 3/3] RedfishPkg: The functions for Redfish requests do not fully complied with specification

2022-08-16 Thread Chang, Abner via groups.io
[AMD Official Use Only - General]

Hi Igor,
One question in line.

> -Original Message-
> From: Igor Kulchytskyy 
> Sent: Tuesday, August 16, 2022 9:25 AM
> To: devel@edk2.groups.io
> Cc: Chang, Abner ; nickle.w...@hpe.com; Igor
> Kulchytskyy ; Chang, Abner 
> Subject: [PATCH 3/3] RedfishPkg: The functions for Redfish requests do not 
> fully
> complied with specification
> 
> [CAUTION: External Email]
> 
> There is no function to send POST request with the Content type which is
> different from "application/json".
> There is no function to send DELETE request with the body.
> 
> Cc: Abner Chang 
> Cc: Nickle Wang 
> Signed-off-by: Igor Kulchytskyy 
> ---
>  RedfishPkg/Include/Library/RedfishLib.h|  80 +
>  RedfishPkg/PrivateLibrary/RedfishLib/RedfishLib.c  | 189
> +
>  .../edk2libredfish/include/redfishService.h|   8 +
>  .../RedfishLib/edk2libredfish/src/service.c|  43 -
>  4 files changed, 317 insertions(+), 3 deletions(-)
> 
> diff --git a/RedfishPkg/Include/Library/RedfishLib.h
> b/RedfishPkg/Include/Library/RedfishLib.h
> index b2488ab..d4b3246 100644
> --- a/RedfishPkg/Include/Library/RedfishLib.h
> +++ b/RedfishPkg/Include/Library/RedfishLib.h
> @@ -380,6 +380,49 @@ RedfishPatchToPayload (
>OUTREDFISH_RESPONSE  *RedResponse
>);
> 
> +
> +/**
> +  Use HTTP POST to create new Redfish resource in the Resource Collection.
> +
> +  The POST request should be submitted to the Resource Collection in
> + which the new resource  is to belong. The Resource Collection is
> + addressed by URI. The Redfish may  ignore any service controlled
> + properties. The corresponding redfish response will returned,  including 
> HTTP
> StatusCode, Headers and Payload which record any HTTP response messages.
> +
> +  Callers are responsible for freeing the HTTP StatusCode, Headers and
> + Payload returned in  redfish response data.
> +
> +  @param[in]RedfishServiceThe Service to access the Redfish 
> resources.
> +  @param[in]Uri   Relative path to address the resource.
> +  @param[in]Content   JSON represented properties to be 
> update.
> +  @param[in]ContentSize   Size of the Content to be send to 
> Redfish
> service
> +  @param[in]ContentType   Type of the Content to be send to 
> Redfish
> service
> +  @param[out]   RedResponse   Pointer to the Redfish response data.
> +
> +  @retval EFI_SUCCESS The opeartion is successful, indicates the 
> HTTP
> StatusCode is not
> +  NULL and the value is 2XX. The Redfish 
> resource will be
> returned
> +  in Payload within RedResponse if server 
> send it back in the
> HTTP
> +  response message body.
> +  @retval EFI_INVALID_PARAMETER   RedfishService, Uri, Content, or
> RedResponse is NULL.
> +  @retval EFI_DEVICE_ERRORAn unexpected system or network error
> occurred. Callers can get
> +  more error info from returned HTTP 
> StatusCode, Headers
> and Payload
> +  within RedResponse:
> +  1. If the returned StatusCode is NULL, 
> indicates any error
> happen.
> +  2. If the returned StatusCode is not NULL 
> and the value is
> not 2XX,
> + indicates any error happen.
> +**/
> +EFI_STATUS
> +EFIAPI
> +RedfishPostToUriEx (
Why not just name this function RedfishPostToUri without "Ex". There is no 
PostToUri function currently provided by RedfishLib.c yet.
I also see some trailing spaces in this source file by the way.
Abner

> +  IN REDFISH_SERVICE   RedfishService,
> +  IN CONST CHAR8   *Uri,
> +  IN CONST CHAR8   *Content,
> +  IN UINTN ContentSize,
> +  IN CONST CHAR8   *ContentType,
> +  OUTREDFISH_RESPONSE  *RedResponse
> +  );
> +
> +
>  /**
>Use HTTP POST to create a new resource in target payload.
> 
> @@ -451,6 +494,43 @@ RedfishDeleteByUri (
>);
> 
>  /**
> +  Use HTTP DELETE to remove a resource.
> +
> +  This function uses the RedfishService to remove a Redfish resource
> + which is addressed  by input Uri (only the relative path is required).
> + The corresponding redfish response will  returned, including HTTP
> + StatusCode, Headers and Payload which record any HTTP response  messages.
> +
> +  Callers are responsible for freeing the HTTP StatusCode, Headers and
> + Payload returned in  redfish response data.
> +
> +  @param[in]RedfishServiceThe Service to access the Redfish 
> resources.
> +  @param[in]Uri   Relative path to address the resource.
> +  @param[in]Content   JSON represented properties to be 
> deleted.
> +  @param[out]   RedResponse   Pointer to the Redfish response data.
> +
> +  @retval EFI_SUCCESS   

Re: [edk2-devel] [PATCH 2/3] RedfishPkg: Redfish modules may need to use the functions which are private

2022-08-16 Thread Chang, Abner via groups.io
[AMD Official Use Only - General]

Reviewed-by: Abner Chang 

> -Original Message-
> From: Igor Kulchytskyy 
> Sent: Tuesday, August 16, 2022 9:25 AM
> To: devel@edk2.groups.io
> Cc: Chang, Abner ; nickle.w...@hpe.com; Igor
> Kulchytskyy ; Chang, Abner 
> Subject: [PATCH 2/3] RedfishPkg: Redfish modules may need to use the
> functions which are private
> 
> [CAUTION: External Email]
> 
> Definitions of the required functiuons to send requests to BMC
> are in the PrivateInclude folder.
> So they cannot be used by the other Redfish packages.
> 
> Cc: Abner Chang 
> Cc: Nickle Wang 
> Signed-off-by: Igor Kulchytskyy 
> ---
>  RedfishPkg/Include/Library/RedfishLib.h| 616
> +
>  RedfishPkg/PrivateInclude/Library/RedfishLib.h | 616 
> -
>  RedfishPkg/RedfishPkg.dec  |   2 +-
>  3 files changed, 617 insertions(+), 617 deletions(-)
>  create mode 100644 RedfishPkg/Include/Library/RedfishLib.h
>  delete mode 100644 RedfishPkg/PrivateInclude/Library/RedfishLib.h
> 
> diff --git a/RedfishPkg/Include/Library/RedfishLib.h
> b/RedfishPkg/Include/Library/RedfishLib.h
> new file mode 100644
> index 000..b2488ab
> --- /dev/null
> +++ b/RedfishPkg/Include/Library/RedfishLib.h
> @@ -0,0 +1,616 @@
> +/** @file
> +  This library provides a set of utility APIs that allow to
> create/read/update/delete
> +  (CRUD) Redfish resources and provide basic query abilities by using
> [URI/RedPath]
> +
> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.
> com%2FDMTF%2Flibredfish&data=05%7C01%7CAbner.Chang%40amd.com
> %7C27a61a2be1dd4f3cdc2f08da7f261486%7C3dd8961fe4884e608e11a82d994
> e183d%7C0%7C0%7C637962098786418514%7CUnknown%7CTWFpbGZsb3d8ey
> JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C
> 3000%7C%7C%7C&sdata=vnqFll%2BrBTzNqj3YUkS3pz89m31zRAc7KrPJRAH
> VWyU%3D&reserved=0).
> +
> +  The query language is based on XPath
> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.
> w3.org%2FTR%2F1999%2FREC-xpath-
> 19991116%2F&data=05%7C01%7CAbner.Chang%40amd.com%7C27a61a2
> be1dd4f3cdc2f08da7f261486%7C3dd8961fe4884e608e11a82d994e183d%7C0%
> 7C0%7C637962098786418514%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wL
> jAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C
> %7C&sdata=KWLZrCaev5TayOaU4zIcyKi6J0sX6Y1m%2F4uRjKBwvsA%3D&a
> mp;reserved=0).
> +  This library and query language essentially treat the entire Redfish 
> Service like
> it
> +  was a single JSON document. In other words whenever it encounters an
> odata.id in JSON
> +  document, it will retrieve the new JSON document (if needed). We name the
> path as
> +  RedPath:
> +
> +  Expression   Description
> +
> +  nodename Selects the JSON entity with the name "nodename".
> +   If the value of nodename is an object with "@odata.id",
> +   it will continue get the value from "@odata.id".
> +
> +  /Selects from the root node
> +
> +  [index]   Selects the index number JSON entity from an array or
> +   object. If the JSON entity is one collection (has
> +   Members & Members@odata.count), means to get the index
> +   member in "Members". Index number >=1, 1 means to return
> +   the first instance.
> +
> +  [XXX]Operation on JSON entity.
> +   If the JSON entity is one collection (has Members &
> +   Members@odata.count), means to get all elements in
> +   "Members". If the JSON entity is one array, means to
> +   get all elements in array. Others will match the nodename
> +   directly (e.g. JSON_OBJECT, JSON_STRING, JSON_TRUE,
> +   JSON_FALSE, JSON_INTEGER).
> +
> +  [nodename]   Selects all the elements from an JSON entity that
> +   contain a property named "nodename"
> +
> +  [name=value] Selects all the elements from an JSON entity where
> +   the property "name" is equal to "value"
> +
> +  [name~value] Selects all the elements from an JSON entity where
> +   the string property "name" is equal to "value" using
> +   case insensitive comparison.
> +
> +  [name +   the property "name" is less than "value"
> +
> +  [name<=value]Selects all the elements from an JSON entity where
> +   the property "name" is less than or equal to "value"
> +
> +  [name>value] Selects all the elements from an JSON entity where
> +   the property "name" is greater than "value"
> +
> +  [name>=value]Selects all the elements from an JSON entity where
> +   the property "name" is greater than or equal to "value"
> +
> +  Some examples:
> +
> +/v1/Chassis[1]- Will return the first Chassis instance.
> +/v1/Chassis[SKU=1234] - Will return all Chassis

Re: [edk2-devel] 回复: [edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 table and Smbios 3.5.0 spec changes

2022-08-16 Thread Sainadh Nagolu via groups.io
Hi Liming,

I have replied to your mail on 15th August itself with patch files, incase it's 
not delivered to you I have sent again now. Please help to check and include in 
stable tag.

Thanks,
Sainadh.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92497): https://edk2.groups.io/g/devel/message/92497
Mute This Topic: https://groups.io/mt/92829976/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] Event: TianoCore Bug Triage - APAC / NAMO - 08/16/2022 #cal-reminder

2022-08-16 Thread Group Notification
*Reminder: TianoCore Bug Triage - APAC / NAMO*

*When:*
08/16/2022
6:30pm to 7:30pm
(UTC-07:00) America/Los Angeles

*Where:*
https://teams.microsoft.com/l/meetup-join/19%3ameeting_OTk1YzJhN2UtOGQwNi00NjY4LWEwMTktY2JiODRlYTY1NmY0%40thread.v2/0?context=%7b%22Tid%22%3a%2246c98d88-e344-4ed4-8496-4ed7712e255d%22%2c%22Oid%22%3a%226e4ce4c4-1242-431b-9a51-92cd01a5df3c%22%7d

*Organizer:* Liming Gao gaolim...@byosoft.com.cn ( 
gaolim...@byosoft.com.cn?subject=Re:%20Event:%20TianoCore%20Bug%20Triage%20-%20APAC%20%2F%20NAMO
 )

View Event ( https://edk2.groups.io/g/devel/viewevent?eventid=1268263 )

*Description:*

TianoCore Bug Triage - APAC / NAMO

Hosted by Liming Gao



Microsoft Teams meeting

*Join on your computer or mobile app*

Click here to join the meeting ( 
https://teams.microsoft.com/l/meetup-join/19%3ameeting_OTUyZTg2NjgtNDhlNS00ODVlLTllYTUtYzg1OTNjNjdiZjFh%40thread.v2/0?context=%7b%22Tid%22%3a%2246c98d88-e344-4ed4-8496-4ed7712e255d%22%2c%22Oid%22%3a%22b286b53a-1218-4db3-bfc9-3d4c5aa7669e%22%7d
 )

*Join with a video conferencing device*

te...@conf.intel.com

Video Conference ID: 116 062 094 0

Alternate VTC dialing instructions ( 
https://conf.intel.com/teams/?conf=1160620940&ivr=teams&d=conf.intel.com&test=test_call
 )

*Or call in (audio only)*

+1 916-245-6934,,77463821# ( tel:+19162456934,,77463821# ) United States, 
Sacramento

Phone Conference ID: 774 638 21#

Find a local number ( 
https://dialin.teams.microsoft.com/d195d438-2daa-420e-b9ea-da26f9d1d6d5?id=77463821
 ) | Reset PIN ( https://mysettings.lync.com/pstnconferencing )

Learn More ( https://aka.ms/JoinTeamsMeeting ) | Meeting options ( 
https://teams.microsoft.com/meetingOptions/?organizerId=b286b53a-1218-4db3-bfc9-3d4c5aa7669e&tenantId=46c98d88-e344-4ed4-8496-4ed7712e255d&threadId=19_meeting_OTUyZTg2NjgtNDhlNS00ODVlLTllYTUtYzg1OTNjNjdiZjFh@thread.v2&messageId=0&language=en-US
 )


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92496): https://edk2.groups.io/g/devel/message/92496
Mute This Topic: https://groups.io/mt/93050761/21656
Mute #cal-reminder:https://edk2.groups.io/g/devel/mutehashtag/cal-reminder
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




Re: [edk2-devel] [PATCH v4 6/6] DynamicTablesPkg: AcpiSsdtPcieLibArm: Added case handling for PCI config

2022-08-16 Thread Kun Qin

Hi Pierre,

You are correct that if CM_ARM_PCI_ADDRESS_MAP_INFO.PCI_SS_CONFIG
is no longer being used, this patch is not needed. Thanks for catching this.

On the other hand, just for my learning purpose, could you please let me 
know
what the use case for "PCI_SS_CONFIG" is? It does not seem to be used at 
all.


Thanks again for testing these patches!

Regards,
Kun

On 8/16/2022 8:33 AM, Pierre Gondois wrote:

Hello Kun,

Is this patch still required ?
Cf: https://edk2.groups.io/g/devel/message/92204

The CM_ARM_PCI_CONFIG_SPACE_INFO struct should be enough to describe
the PCI ECAM, so CM_ARM_PCI_ADDRESS_MAP_INFO.SpaceCode being set to
PCI_SS_CONFIG should be an invalid case.
If not I don't think a v5 should be necessary.

Also I ran the patchset on KvmTool and everything was working.

Regards,
Pierre

On 8/11/22 00:28, Kun Qin wrote:

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3998

This change added a switch case handling for PCI_SS_CONFIG during SSDT
generation. This will allow PCI config case return EFI_SUCCESS 
instead of

EFI_INVALID_PARAMETER.

Cc: Sami Mujawar 
Cc: Alexei Fedorov 

Co-authored-by: Joe Lopez 
Signed-off-by: Kun Qin 
Reviewed-by: Pierre Gondois 
Reviewed-by: Sami Mujawar 
---

Notes:
 v2:
 - Added Reviewed-by tag [Pierre]
  v3:
 - No change
  v4:
 - Added Reviewed-by tag [Sami]

DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c 
| 5 +

  1 file changed, 5 insertions(+)

diff --git 
a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c 
b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c 


index dd75fc27e60e..c6fbd09c43f8 100644
--- 
a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
+++ 
b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c

@@ -606,6 +606,11 @@ GeneratePciCrs (
 );
  break;
  +  case PCI_SS_CONFIG:
+    // Do nothing
+    Status = EFI_SUCCESS;
+    break;
+
    default:
  Status = EFI_INVALID_PARAMETER;
  } // switch



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92495): https://edk2.groups.io/g/devel/message/92495
Mute This Topic: https://groups.io/mt/92947269/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] [PATCH 1/2] Mde Pkg: Support for MPAM ACPI Table

2022-08-16 Thread Name via groups.io
From: Swatisri Kantamsetti 

Added MPAM table header, MSC and Resource Node
info structures

Signed-off-by: Swatisri Kantamsetti 
---
 MdePkg/Include/IndustryStandard/Acpi64.h |  5 ++
 MdePkg/Include/IndustryStandard/Mpam.h   | 69 
 2 files changed, 74 insertions(+)
 create mode 100644 MdePkg/Include/IndustryStandard/Mpam.h

diff --git a/MdePkg/Include/IndustryStandard/Acpi64.h 
b/MdePkg/Include/IndustryStandard/Acpi64.h
index fe5ebfac2b..e54f631186 100644
--- a/MdePkg/Include/IndustryStandard/Acpi64.h
+++ b/MdePkg/Include/IndustryStandard/Acpi64.h
@@ -2952,6 +2952,11 @@ typedef struct {
 ///
 #define EFI_ACPI_6_4_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE  
SIGNATURE_32('P', 'P', 'T', 'T')
 
+///
+/// "MPAM" Memory System Resource Partitioning And Monitoring Table
+///
+#define 
EFI_ACPI_6_4_MEMORY_SYSTEM_RESOURCE_PARTITIONING_MONITORING_TABLE_STRUCTURE_SIGNATURE
  SIGNATURE_32('M', 'P', 'A', 'M')
+
 ///
 /// "PSDT" Persistent System Description Table
 ///
diff --git a/MdePkg/Include/IndustryStandard/Mpam.h 
b/MdePkg/Include/IndustryStandard/Mpam.h
new file mode 100644
index 00..e0f75f0114
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/Mpam.h
@@ -0,0 +1,69 @@
+/** @file
+  ACPI Memory System Resource Partitioning And Monitoring (MPAM)
+  as specified in ARM spec DEN0065
+
+  Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
+  Copyright (c) 2022, ARM Limited. All rights reserved.
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef _MPAM_H_
+#define _MPAM_H_
+
+#pragma pack(1)
+
+///
+/// Memory System Resource Partitioning and Monitoring Table (MPAM)
+///
+typedef struct {
+  EFI_ACPI_DESCRIPTION_HEADERHeader;
+  UINT32 NumNodes;
+  UINT32 NodeOffset;
+  UINT32 Reserved;
+} EFI_ACPI_6_4_MEMORY_SYSTEM_RESOURCE_PARTITIONING_MONITORING_TABLE_HEADER;
+
+///
+/// MPAM Revision (as defined in ACPI 6.4 spec.)
+///
+#define 
EFI_ACPI_6_4_MEMORY_SYSTEM_RESOURCE_PARTITIONING_MONITORING_TABLE_REVISION  0x01
+
+///
+/// Memory System Controller Node Structure
+///
+
+typedef struct {
+  UINT16Length;
+  UINT16Reserved;
+  UINT32Identifier;
+  UINT64BaseAddress;
+  UINT32MmioSize;
+  UINT32OverflowInterrupt;
+  UINT32OverflowInterruptFlags;
+  UINT32Reserved1;
+  UINT32OverflowInterruptAff;
+  UINT32ErrorInterrupt;
+  UINT32ErrorInterruptFlags;
+  UINT32Reserved2;
+  UINT32ErrorInterruptAff;
+  UINT32MaxNRdyUsec;
+  UINT64LinkedDeviceHwId;
+  UINT32LinkedDeviceInstanceHwId;
+  UINT32NumResourceNodes;
+} EFI_ACPI_6_4_MPAM_MSC_NODE;
+
+///
+/// Resource Node Structure
+///
+
+typedef struct {
+  UINT32Identifier;
+  UINT8 RisIndex;
+  UINT16Reserved1;
+  UINT8 LocatorType;
+  UINT64Locator;
+  UINT32NumFuncDep;
+} EFI_ACPI_6_4_MPAM_RESOURCE_NODE;
+
+#pragma pack()
+
+#endif
-- 
2.17.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92494): https://edk2.groups.io/g/devel/message/92494
Mute This Topic: https://groups.io/mt/93069490/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] [PATCH 2/2] Dynamic Tbl Mgr: MPAM: MPAM Generator and supporting files

2022-08-16 Thread Name via groups.io
From: Swatisri Kantamsetti 

ACPI header, MSC and Resource Nodes are populated
in the MPAM Table

Signed-off-by: Swatisri Kantamsetti 
---
 DynamicTablesPkg/DynamicTables.dsc.inc|   2 +
 DynamicTablesPkg/Include/AcpiTableGenerator.h |   1 +
 .../Include/ArmNameSpaceObjects.h |  68 ++
 .../Arm/AcpiMpamLibArm/AcpiMpamLibArm.inf |  30 +
 .../Acpi/Arm/AcpiMpamLibArm/MpamGenerator.c   | 649 ++
 .../Acpi/Arm/AcpiMpamLibArm/MpamGenerator.h   |  47 ++
 6 files changed, 797 insertions(+)
 create mode 100644 
DynamicTablesPkg/Library/Acpi/Arm/AcpiMpamLibArm/AcpiMpamLibArm.inf
 create mode 100644 
DynamicTablesPkg/Library/Acpi/Arm/AcpiMpamLibArm/MpamGenerator.c
 create mode 100644 
DynamicTablesPkg/Library/Acpi/Arm/AcpiMpamLibArm/MpamGenerator.h

diff --git a/DynamicTablesPkg/DynamicTables.dsc.inc 
b/DynamicTablesPkg/DynamicTables.dsc.inc
index 3d4fa0c4c4..745d5f0633 100644
--- a/DynamicTablesPkg/DynamicTables.dsc.inc
+++ b/DynamicTablesPkg/DynamicTables.dsc.inc
@@ -29,6 +29,7 @@
   DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/AcpiIortLibArm.inf
   DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/AcpiMadtLibArm.inf
   DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/AcpiMcfgLibArm.inf
+  DynamicTablesPkg/Library/Acpi/Arm/AcpiMpamLibArm/AcpiMpamLibArm.inf
   DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/AcpiPpttLibArm.inf
   DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/AcpiRawLibArm.inf
   DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/AcpiSpcrLibArm.inf
@@ -54,6 +55,7 @@
   NULL|DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/AcpiMadtLibArm.inf
   NULL|DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/AcpiMcfgLibArm.inf
   NULL|DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/AcpiPpttLibArm.inf
+  NULL|DynamicTablesPkg/Library/Acpi/Arm/AcpiMpamLibArm/AcpiMpamLibArm.inf
   NULL|DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/AcpiRawLibArm.inf
   NULL|DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/AcpiSpcrLibArm.inf
   NULL|DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/AcpiSratLibArm.inf
diff --git a/DynamicTablesPkg/Include/AcpiTableGenerator.h 
b/DynamicTablesPkg/Include/AcpiTableGenerator.h
index f962dbff57..56d7375b4a 100644
--- a/DynamicTablesPkg/Include/AcpiTableGenerator.h
+++ b/DynamicTablesPkg/Include/AcpiTableGenerator.h
@@ -94,6 +94,7 @@ typedef enum StdAcpiTableId {
   EStdAcpiTableIdIort,  ///< IORT Generator
   EStdAcpiTableIdPptt,  ///< PPTT Generator
   EStdAcpiTableIdSrat,  ///< SRAT Generator
+  EStdAcpiTableIdMpam,  ///< MPAM Generator
   EStdAcpiTableIdSsdtSerialPort,///< SSDT Serial-Port Generator
   EStdAcpiTableIdSsdtCmn600,///< SSDT Cmn-600 Generator
   EStdAcpiTableIdSsdtCpuTopology,   ///< SSDT Cpu Topology
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h 
b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 102e0f96be..39a14ed0b3 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -63,6 +63,8 @@ typedef enum ArmObjectID {
   EArmObjPciInterruptMapInfo,  ///< 39 - Pci Interrupt Map Info
   EArmObjRmr,  ///< 40 - Reserved Memory Range Node
   EArmObjMemoryRangeDescriptor,///< 41 - Memory Range Descriptor
+  EArmObjMscNodeInfo,  ///< 40 - Msc Memory System Controller 
Node Info
+  EArmObjResNodeInfo,  ///< 41 - Res Resource Node Info
   EArmObjMax
 } EARM_OBJECT_ID;
 
@@ -1070,6 +1072,72 @@ typedef struct CmArmRmrDescriptor {
   UINT64Length;
 } CM_ARM_MEMORY_RANGE_DESCRIPTOR;
 
+/** A structure that describes Memory System Controller Node.
+
+MPAM Memory System Component Nodes are described by
+this object.
+
+  ID: EArmObjMscNodeInfo
+*/
+typedef struct CmArmMscNodeInfo {
+  /// An unique token used to identify this object
+  CM_OBJECT_TOKEN  Token;
+
+  /// MPAM Base Address
+  UINT64   BaseAddress;
+  /// MMIO Size
+  UINT32   MmioSize;
+  /// Overflow Interrupt
+  UINT32   OverflowInterrupt;
+  /// Overflow Interrupt Flags
+  UINT32   OverflowInterruptFlags;
+  /// Overflow Interrupt Affinity
+  UINT32   OverflowInterruptAff;
+  /// Error Interrupt
+  UINT32   ErrorInterrupt;
+  /// Error Interrupt Flags
+  UINT32   ErrorInterruptFlags;
+  /// Error Interrupt Affinity
+  UINT32   ErrorInterruptAff;
+  /// Not Ready Signal time
+  UINT32   MaxNRdyUsec;
+  /// Linked Device HWID
+  UINT64   LinkedDeviceHwId;
+  /// Linked Device Instance ID
+  UINT32   LinkedDeviceInstanceHwId;
+  /// Number of Resource nodes
+  UINT32   NumResourceNodes;
+  /// Reference token for the list of resource nodes
+  //CM_OBJECT_TOKENResourceNodeListToken;
+
+} CM_ARM_MSC_NODE_INFO;

Re: [edk2-devel][edk2-platforms][PATCH V1 0/3] Update PlatformPayloadPkg to match feature conventions

2022-08-16 Thread Oram, Isaac W
Pushed as 6a847c32c0..1096b98314

Individual patches were
Reviewed-by: Sai Chaganty 
Reviewed-by: Guo Dong 

-Original Message-
From: devel@edk2.groups.io  On Behalf Of Oram, Isaac W
Sent: Wednesday, August 10, 2022 3:47 PM
To: devel@edk2.groups.io
Cc: Oram, Isaac W ; Chaganty, Rangasai V 
; Desimone, Nathaniel L 
; Gao, Liming ; Ni, 
Ray ; Dong, Guo 
Subject: [edk2-devel][edk2-platforms][PATCH V1 0/3] Update PlatformPayloadPkg 
to match feature conventions

The integration of the PlatformPayloadPkg breaks the AdvancedFeaturePkg build.
The first patch fixes the build issue with executing
  build -a IA32 -a X64 -p AdvancedFeaturePkg/AdvancedFeaturePkg.dsc

The PlatformPayloadPkg doesn't match advanced feature build and naming 
conventions.  The second patch simply renames the files and does exact search 
and replace on the changes.

The third patch fixes token space guid name, feature enable name, and the like 
to match the conventions of other features.

Cc: Sai Chaganty 
Cc: Nate DeSimone 
Cc: Liming Gao 
Cc: Ray Ni 
Cc: Guo Dong 
Signed-off-by: Isaac Oram 

Isaac Oram (3):
  PlatformPayloadPkg: Fix AdvancedFeaturePkg build issue
  PlatformPayloadPkg: Rename to match other feature conventions
  PlatformPayloadFeaturePkg: Update contents to match feature
conventions

 .../AdvancedFeaturePkg/AdvancedFeaturePkg.dsc |  2 +-
 .../Include/AdvancedFeatures.dsc  |  4 +-
 .../Include/AdvancedFeaturesPcd.dsc   |  4 +-
 .../AdvancedFeaturePkg/Include/PostMemory.fdf |  4 +-  
.../AdvancedFeaturePkg/Include/PreMemory.fdf  |  4 +-
 .../Fvb/FvbInfo.c |  0
 .../Fvb/FvbService.c  |  0
 .../Fvb/FvbService.h  |  0
 .../Fvb/FvbServiceSmm.c   |  0
 .../Fvb/FvbSmm.inf|  4 +-
 .../Fvb/FvbSmmCommon.h|  0
 .../Include/Guid/NvVariableInfoGuid.h |  0
 .../Include/Guid/SpiFlashInfoGuid.h   |  0
 .../Include/Library/FlashDeviceLib.h  |  0
 .../Include/Library/SpiFlashLib.h |  0
 .../Include/PlatformPayloadFeature.dsc| 50 +--
 .../Include/PostMemory.fdf|  4 +-
 .../Include/PreMemory.fdf |  0
 .../Library/FlashDeviceLib/FlashDeviceLib.c   |  0
 .../Library/FlashDeviceLib/FlashDeviceLib.inf |  3 +-
 .../Library/PcdInitLib/PcdInitLib.c   |  0
 .../Library/PcdInitLib/PcdInitLib.inf |  3 +-
 .../Library/SpiFlashLib/PchSpi.c  |  0
 .../Library/SpiFlashLib/RegsSpi.h |  0
 .../Library/SpiFlashLib/SpiCommon.h   |  0
 .../Library/SpiFlashLib/SpiFlashLib.c |  0
 .../Library/SpiFlashLib/SpiFlashLib.inf   |  2 +-
 .../PchSmiDispatchSmm/PchSmiDispatchSmm.c |  0
 .../PchSmiDispatchSmm/PchSmiDispatchSmm.h |  0
 .../PchSmiDispatchSmm/PchSmiDispatchSmm.inf   |  0
 .../PlatformPayloadFeaturePkg.dec}|  8 +-
 .../PlatformPayloadFeaturePkg.dsc}| 30 ++-
 .../PlatformPayloadFeaturePkg.fdf}|  0
 .../PlatformPayloadFeaturePkg.py} |  4 +-
 .../Readme.md | 82 ++-
 35 files changed, 117 insertions(+), 91 deletions(-)  rename 
Features/Intel/{PlatformPayloadPkg => PlatformPayloadFeaturePkg}/Fvb/FvbInfo.c 
(100%)  rename Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Fvb/FvbService.c (100%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Fvb/FvbService.h (100%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Fvb/FvbServiceSmm.c (100%)  rename 
Features/Intel/{PlatformPayloadPkg => PlatformPayloadFeaturePkg}/Fvb/FvbSmm.inf 
(89%)  rename Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Fvb/FvbSmmCommon.h (100%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Include/Guid/NvVariableInfoGuid.h (100%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Include/Guid/SpiFlashInfoGuid.h (100%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Include/Library/FlashDeviceLib.h (100%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Include/Library/SpiFlashLib.h (100%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Include/PlatformPayloadFeature.dsc (72%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Include/PostMemory.fdf (77%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Include/PreMemory.fdf (100%)  rename 
Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Library/FlashDeviceLib/FlashDeviceLib.c (100%)  
rename Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Library/FlashDeviceLib/FlashDeviceLib.inf (90%)  
rename Features/Intel/{PlatformPayloadPkg => 
PlatformPayloadFeaturePkg}/Library/PcdInitLib/PcdInitLib.c (100%)  rename 
Features

Re: [edk2-devel][edk2-platforms][PATCH V1 3/3] PlatformPayloadFeaturePkg: Update contents to match feature conventions

2022-08-16 Thread Chaganty, Rangasai V
Reviewed-by: Sai Chaganty 

-Original Message-
From: Oram, Isaac W  
Sent: Wednesday, August 10, 2022 3:47 PM
To: devel@edk2.groups.io
Cc: Oram, Isaac W ; Chaganty, Rangasai V 
; Desimone, Nathaniel L 
; Gao, Liming ; Ni, 
Ray ; Dong, Guo 
Subject: [edk2-devel][edk2-platforms][PATCH V1 3/3] PlatformPayloadFeaturePkg: 
Update contents to match feature conventions

Rename gPlatformPayloadPkgTokenSpaceGuid to 
gPlatformPayloadFeaturePkgTokenSpaceGuid

Rename PcdPayloadPackageFeatureEnable to PcdPlatformPayloadFeatureEnable

Update Readme including format improvements

Cc: Sai Chaganty 
Cc: Nate DeSimone 
Cc: Liming Gao 
Cc: Ray Ni 
Cc: Guo Dong 
Signed-off-by: Isaac Oram 
---
 .../AdvancedFeaturePkg/AdvancedFeaturePkg.dsc |  2 +-
 .../Include/AdvancedFeatures.dsc  |  2 +-
 .../Include/AdvancedFeaturesPcd.dsc   |  2 +-
 .../AdvancedFeaturePkg/Include/PostMemory.fdf |  2 +-  
.../AdvancedFeaturePkg/Include/PreMemory.fdf  |  2 +-  
.../PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf  |  2 +-
 .../PlatformPayloadFeaturePkg.dec |  6 +-
 .../Intel/PlatformPayloadFeaturePkg/Readme.md | 73 ++-
 8 files changed, 48 insertions(+), 43 deletions(-)

diff --git a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc 
b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
index df8e678ae8..236c5570ca 100644
--- a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
@@ -84,7 +84,7 @@
   #
   # Individual features
   #
-  gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable  
|TRUE
+  
+ gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnab
+ le  |TRUE
 
 #
 # PCD that are required to be set by the build target should be configured 
here for test purposes diff --git 
a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc 
b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
index 6a80546592..804aab89bc 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeatures.dsc
@@ -79,6 +79,6 @@
 #
 # Individual features
 #
-!if gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable == TRUE
+!if 
+gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnabl
+e == TRUE
   !include PlatformPayloadFeaturePkg/Include/PlatformPayloadFeature.dsc
 !endif
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc 
b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
index 08f258a48c..0af5a8bfbc 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc
@@ -82,7 +82,7 @@
   gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable  
|FALSE
   gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboardFeatureEnable  
|FALSE
 
-  gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable  
|FALSE
+  
+ gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnab
+ le  |FALSE
 
 #
 # There seems to be some build parsing odd behavior that requires this PCD to 
be specified even though diff --git 
a/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf 
b/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
index 66032ba117..349bdcc491 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
+++ b/Features/Intel/AdvancedFeaturePkg/Include/PostMemory.fdf
@@ -80,6 +80,6 @@
 #
 # Individual features
 #
-!if gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable == TRUE
+!if 
+gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnabl
+e == TRUE
   !include PlatformPayloadFeaturePkg/Include/PostMemory.fdf
 !endif
diff --git a/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf 
b/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
index 9cd6de833b..b991a5aabf 100644
--- a/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
+++ b/Features/Intel/AdvancedFeaturePkg/Include/PreMemory.fdf
@@ -80,6 +80,6 @@
 #
 # Individual features
 #
-!if gPlatformPayloadPkgTokenSpaceGuid.PcdPayloadPackageFeatureEnable == TRUE
+!if 
+gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdPlatformPayloadFeatureEnabl
+e == TRUE
   !include PlatformPayloadFeaturePkg/Include/PreMemory.fdf
 !endif
diff --git a/Features/Intel/PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf 
b/Features/Intel/PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf
index f973465cba..a692d9bf41 100644
--- a/Features/Intel/PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf
+++ b/Features/Intel/PlatformPayloadFeaturePkg/Fvb/FvbSmm.inf
@@ -60,7 +60,7 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
-  gPlatformPayloadPkgTokenSpaceGuid.PcdNvsDataFile
+  gPlatformPayloadFeaturePkgTokenSpaceGuid.PcdNvsDataFile
 

Re: [edk2-devel] [PATCH v1 2/3] UserAuthFeaturePkg: Included DXE versions are mutually exclusive

2022-08-16 Thread Oram, Isaac W
I am not aware of any preference between the drivers.  Your plan makes sense to 
me.  I will defer to Sai or Chasel if they know more history and use.


Also, please make sure that "build -a IA32 -a X64 -p 
UserInterface\UserAuthFeaturePkg\UserAuthFeaturePkg.dsc" and "build -a IA32 -a 
X64 -p AdvancedFeaturePkg\AdvancedFeaturePkg.dsc" complete successfully.



Adding the following to UserAuthFeaturePkg.dsc seemed to work for me.



[Packages]

  UserAuthFeaturePkg/UserAuthFeaturePkg.dec



[PcdsFeatureFlag]

  gUserAuthFeaturePkgTokenSpaceGuid.PcdUseVersion1|FALSE



Regards,
Isaac


From: Benjamin Doron 
Sent: Tuesday, August 9, 2022 10:09 AM
To: Oram, Isaac W 
Cc: devel@edk2.groups.io; Chaganty, Rangasai V ; 
Desimone, Nathaniel L ; Sinha, Ankit 
; Gao, Liming ; Bi, Dandan 

Subject: Re: [PATCH v1 2/3] UserAuthFeaturePkg: Included DXE versions are 
mutually exclusive

Hi Isaac,

From memory, the primary difference between the versions of this module is that 
v2 uses helper libraries to perform some of the functions in 
UserAuthenticationDxePassword.c and the HII helpers in UserAuthenticationDxe.c. 
There are other differences, at least including the handler to challenge for 
the admin password that should be ported or implemented for v2, but I think 
only one DXE module version is necessary to be in the tree.

We can drop this commit and I can work on improving v2 and deprecating v1 - as 
was my plan, because v2 needs to challenge for the password - but not at the 
moment. Unless v1's implementation is preferred?

Sorry about the subject prefix. I see that patch 1/3 is in. I think I'll work 
on 2/3 later and 3/3 separately.

Best regards,
Benjamin


On Mon, 8 Aug 2022 at 18:51, Oram, Isaac W 
mailto:isaac.w.o...@intel.com>> wrote:
Benjamin,

Can you update the readme with descriptions of the modules and their 
functionality?
Can you comment the PcdUseVersion1 declaration in the DEC file?
If you can think of a more descriptive name than "version 1", that would be 
better.

Note that convention (maybe requirement) is to preface non-edk2 repo changes 
with the mailing list and repo info [edk2-devel][edk2-platforms] so that rules 
can filter more easily.  And multi-commit reviews should have a cover-letter 
enabled as well so you can provide an overview of the patch series.
Here is the command I use: git format-patch -M --thread origin/master 
--cover-letter --subject-prefix="edk2-devel][edk2-platforms][PATCH V1"

Regards,
Isaac

-Original Message-
From: Benjamin Doron 
mailto:benjamin.doro...@gmail.com>>
Sent: Monday, July 25, 2022 10:12 AM
To: devel@edk2.groups.io
Cc: Chaganty, Rangasai V 
mailto:rangasai.v.chaga...@intel.com>>; Oram, 
Isaac W mailto:isaac.w.o...@intel.com>>; Desimone, 
Nathaniel L 
mailto:nathaniel.l.desim...@intel.com>>; Sinha, 
Ankit mailto:ankit.si...@intel.com>>; Gao, Liming 
mailto:gaolim...@byosoft.com.cn>>; Bi, Dandan 
mailto:dandan...@intel.com>>
Subject: [PATCH v1 2/3] UserAuthFeaturePkg: Included DXE versions are mutually 
exclusive

Versions of the DXE module perform nearly identical functions, and are 
therefore mutually exclusive. Including both modules results in at least a 
duplicate HII package and an "already started" assert.

Therefore, add a new PCD to determine which module will be included.
However, now a second bug can be seen: version 2 does not challenge for the 
password. An RSC handler to hook UiApp entry is probably needed, as in version 
1.

Cc: Sai Chaganty 
mailto:rangasai.v.chaga...@intel.com>>
Cc: Isaac Oram mailto:isaac.w.o...@intel.com>>
Cc: Nate DeSimone 
mailto:nathaniel.l.desim...@intel.com>>
Cc: Ankit Sinha mailto:ankit.si...@intel.com>>
Cc: Liming Gao mailto:gaolim...@byosoft.com.cn>>
Cc: Dandan Bi mailto:dandan...@intel.com>>
Signed-off-by: Benjamin Doron 
mailto:benjamin.doro...@gmail.com>>
---
 Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc| 
1 +
 Features/Intel/AdvancedFeaturePkg/Include/AdvancedFeaturesPcd.dsc   | 
1 +
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/PostMemory.fdf  | 
9 ++---
 Features/Intel/UserInterface/UserAuthFeaturePkg/Include/UserAuthFeature.dsc | 
3 +++
 Features/Intel/UserInterface/UserAuthFeaturePkg/UserAuthFeaturePkg.dec  | 
3 ++-
 5 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc 
b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
index 908fe4d1f7a9..8924dadcaa18 100644
--- a/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
+++ b/Features/Intel/AdvancedFeaturePkg/AdvancedFeaturePkg.dsc
@@ -79,6 +79,7 @@
   #   gLogoFeaturePkgTokenSpaceGuid.PcdLogoFeatureEnable   
 |TRUE   gUserAuthFeaturePkgTokenSpaceGuid.PcdUserAuthenticationFeatureEnable   
   |TRUE+  gUserAuthFeaturePkgTokenSpaceGuid.PcdUseVersion1 
 |FALSE   
gVirtualKeyboardFeaturePkgTokenSpaceGuid.PcdVirtualKeyboard

Re: [edk2-devel] [PATCH 1/2] OvmfPkg: Introduce NULL class library to inhibit driver load

2022-08-16 Thread Brian J. Johnson

On 8/16/22 07:30, Laszlo Ersek wrote:

On 08/15/22 11:40, Ard Biesheuvel wrote:

Add a new library that can be incorporated into any driver built from
source, and which permits loading of the driver to be inhibited based on
the value of a QEMU fw_cfg boolean variable. This will be used in a
subsequent patch to allow dispatch of the IPv6 and IPv6 network protocol


(1) typo? (should be "IPv4 and IPv6" I think)


driver to be controlled from the QEMU command line.

Signed-off-by: Ard Biesheuvel 
---
  OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c   | 30 

  OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.inf | 28 
++
  OvmfPkg/OvmfPkg.dec   |  4 +++
  3 files changed, 62 insertions(+)

diff --git a/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c 
b/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c
new file mode 100644
index ..dc8544bc38be
--- /dev/null
+++ b/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c
@@ -0,0 +1,30 @@
+// @file
+// Copyright (c) 2022, Google LLC. All rights reserved.
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+
+#include 
+
+#include 
+#include 
+
+STATIC CHAR16 mExitData[] = L"Driver dispatch inhibited by QEMU fw_cfg 
variable.";
+
+EFI_STATUS
+EFIAPI
+DriverLoadInhibitorLibConstructor (
+  IN  EFI_HANDLEHandle,
+  IN  EFI_SYSTEM_TABLE  *SystemTable
+  )
+{
+  RETURN_STATUS Status;
+  BOOLEAN   Enabled;
+
+  Status = QemuFwCfgParseBool (FixedPcdGetPtr (PcdDriverInhibitorFwCfgVarName),
+ &Enabled);
+  if (!RETURN_ERROR (Status) && !Enabled) {
+return gBS->Exit (Handle, EFI_REQUEST_UNLOAD_IMAGE, sizeof mExitData,
+  mExitData);


(2) Per UEFI spec, ExitData should be allocated with
gBS->AllocatePool().

(3) EFI_REQUEST_UNLOAD_IMAGE is from the PI spec; while not wrong, I
think it's strange to use here. EFI_ABORTED or something similar from
the UEFI spec would be a better fit IMO.

(4) And then, the big problem:

I agree that returning an error from the constructor would not be
beneficial, as it would cause an assertion to fail in the
ProcessLibraryConstructorList() function, in the generated "AutoGen.c"
file.

However, calling gBS->Exit() from a constructor seems unsafe to me, with
regard to library destructors.

Now, in the current case (considering patch#2), this unsafety is not
visible. That's because:

(quoting ProcessLibraryConstructorList() and
ProcessLibraryDestructorList() from
"Build/OvmfX64/NOOPT_GCC5/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/DEBUG/AutoGen.c",
from an earlier build on my machine anyway):


VOID
EFIAPI
ProcessLibraryConstructorList (
   IN EFI_HANDLEImageHandle,
   IN EFI_SYSTEM_TABLE  *SystemTable
   )
{
   EFI_STATUS  Status;

   Status = PlatformDebugLibIoPortConstructor ();
   ASSERT_RETURN_ERROR (Status);

   Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);
   ASSERT_EFI_ERROR (Status);

   Status = DevicePathLibConstructor (ImageHandle, SystemTable);
   ASSERT_EFI_ERROR (Status);

   Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable);
   ASSERT_EFI_ERROR (Status);

   Status = UefiLibConstructor (ImageHandle, SystemTable);
   ASSERT_EFI_ERROR (Status);

   Status = UefiHiiServicesLibConstructor (ImageHandle, SystemTable);
   ASSERT_EFI_ERROR (Status);

   Status = DpcLibConstructor (ImageHandle, SystemTable);
   ASSERT_EFI_ERROR (Status);

}



VOID
EFIAPI
ProcessLibraryDestructorList (
   IN EFI_HANDLEImageHandle,
   IN EFI_SYSTEM_TABLE  *SystemTable
   )
{

}


there is no library destruction to speak of -- none of the used library
instances have resources they need to release at destruction time.

However, the general case looks problematic. The new library constructor
call would be inserted *somewhere* in ProcessLibraryConstructorList() --
the insertion point is likely "mostly unspecified", as no library
instance depends on DriverLoadInhibitorLib, and DriverLoadInhibitorLib
seems to depend on relatively few lib classes too. Therefore, in theory
anyway, the new lib constructor could call gBS->Exit() somewhere in the
middle of ProcessLibraryConstructorList(), with only some of the library
constructors having been executed.

Then the questions are

- does gBS->Exit() call ProcessLibraryDestructorList() or not?

   - if it does not, that could lead to memory leaks.

   - If it does though, is ProcessLibraryDestructorList() smart enough to
 call only those destructors whose constructors have previously run?

 - If not, it could call destructors on never-constructed data.

Unfortunately, this looks really tough to figure out; testing it (with
some actual library destructors) could be easier.


FWIW, there are two call sites for ProcessLibraryDestructorList() (for
UEFI/DXE drivers anyway); both in
"MdePkg/Library/UefiDriverEntryPoint/DriverEntryPoint.c":

- One is inside th

Re: [edk2-devel] [edk2-platforms][PATCH v1 1/1] MinPlatformPkg: Add FspNvsBuffer compression option

2022-08-16 Thread Oram, Isaac W
Michael, 

I have not been able to apply this patch.  Can you rebase and resend a V2?

Thanks,
Isaac

-Original Message-
From: mikub...@linux.microsoft.com  
Sent: Friday, August 5, 2022 12:44 PM
To: devel@edk2.groups.io
Cc: Chiu, Chasel ; Desimone, Nathaniel L 
; Oram, Isaac W ; Gao, 
Liming ; Dong, Eric 
Subject: [edk2-platforms][PATCH v1 1/1] MinPlatformPkg: Add FspNvsBuffer 
compression option

From: Michael Kubacki 

Adds a PCD called "PcdEnableCompressedFspNvsBuffer" that allows the 
"FspNvsBuffer" UEFI variable data to be saved as compressed data.

Especially due to the nature of the data saved in this variable, it compresses 
well. For example, it has been found to reduce ~63KB of data to ~13KB. Boot 
time impact has been found to be negligible.

The default value is FALSE to keep default behavior consistent.

Decompression can be performed on the variable data using the standard 
UefiDecompressLib.

Cc: Chasel Chiu 
Cc: Nate DeSimone 
Cc: Isaac Oram 
Cc: Liming Gao 
Cc: Eric Dong 
Signed-off-by: Michael Kubacki 
---
 Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig.c   
| 62 
 Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig.inf 
|  4 ++
 Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec   
|  6 ++
 Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc   
|  1 +
 4 files changed, 60 insertions(+), 13 deletions(-)

diff --git 
a/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig.c 
b/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig.c
index 0215e8eeddfb..95b8cef8b32b 100644
--- 
a/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig.c
+++ b/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemo
+++ ryConfig.c
@@ -3,6 +3,7 @@
   exists, and saves the data to nvRAM.
 
 Copyright (c) 2017 - 2022, Intel Corporation. All rights reserved.
+Copyright (c) Microsoft Corporation.
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
@@ -10,6 +11,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #include 
  #include   #include 
+#include 
 #include 
 #include 
 #include 
@@ -19,6 +21,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #include 
  #include   #include 

+#include 
 #include 
 #include 
 
@@ -38,20 +41,26 @@ SaveMemoryConfigEntryPoint (
   IN EFI_SYSTEM_TABLE   *SystemTable
   )
 {
-  EFI_STATUSStatus;
-  EFI_HOB_GUID_TYPE *GuidHob;
-  VOID  *HobData;
-  VOID  *VariableData;
-  UINTN DataSize;
-  UINTN BufferSize;
-  BOOLEAN   DataIsIdentical;
+  EFI_STATUS Status;
+  EFI_HOB_GUID_TYPE  *GuidHob;
+  VOID   *HobData;
+  VOID   *VariableData;
+  UINTN  DataSize;
+  UINTN  BufferSize;
+  BOOLEANDataIsIdentical;
+  VOID   *CompressedData;
+  UINT64 CompressedSize;
+  UINTN  CompressedAllocationPages;
 
-  DataSize= 0;
-  BufferSize  = 0;
-  VariableData= NULL;
-  GuidHob = NULL;
-  HobData = NULL;
-  DataIsIdentical = FALSE;
+  DataSize  = 0;
+  BufferSize= 0;
+  VariableData  = NULL;
+  GuidHob   = NULL;
+  HobData   = NULL;
+  DataIsIdentical   = FALSE;
+  CompressedData= NULL;
+  CompressedSize= 0;
+  CompressedAllocationPages = 0;
 
   //
   // Search for the Memory Configuration GUID HOB.  If it is not present, then 
@@ -73,6 +82,29 @@ SaveMemoryConfigEntryPoint (
 }
   }
 
+  if (PcdGetBool (PcdEnableCompressedFspNvsBuffer)) {
+if (DataSize > 0) {
+  CompressedAllocationPages = EFI_SIZE_TO_PAGES (DataSize);
+  CompressedData= AllocatePages (CompressedAllocationPages);
+  if (CompressedData == NULL) {
+DEBUG ((DEBUG_ERROR, "[%a] - Failed to allocate compressed data 
buffer.\n", __FUNCTION__));
+ASSERT_EFI_ERROR (EFI_OUT_OF_RESOURCES);
+return EFI_OUT_OF_RESOURCES;
+  }
+
+  CompressedSize = EFI_PAGES_TO_SIZE (CompressedAllocationPages);
+  Status = Compress (HobData, DataSize, CompressedData, 
&CompressedSize);
+  if (EFI_ERROR (Status)) {
+DEBUG ((DEBUG_ERROR, "[%a] - failed to compress data. Status = %r\n", 
__FUNCTION__, Status));
+ASSERT_EFI_ERROR (Status);
+return Status;
+  }
+}
+
+HobData  = CompressedData;
+DataSize = (UINTN)CompressedSize;
+  }
+
   if (HobData != NULL) {
 DEBUG ((DEBUG_INFO, "FspNvsHob.NvsDataLength:%d\n", DataSize));
 DEBUG ((DEBUG_INFO, "FspNvsHob.NvsDataPtr   : 0x%x\n", HobData));
@@ -136,6 +168,10 @@ SaveMemoryConfigEntryPoint (
 DEBUG((DEBUG_ERROR, "Memory S3 Data HOB was not found\n"));
   }
 
+  if (CompressedData != NULL) {
+FreePages (CompressedData, CompressedAllocationPages);  }
+
   //
   // This driver does not 

[edk2-devel] [PATCH] DynamicTablesPkg: Correct cluster index

2022-08-16 Thread Jeff Brasen via groups.io
Current code will generate duplicate UID if there are nested clusters

in the topology.



Signed-off-by: Jeff Brasen 

---

 .../SsdtCpuTopologyGenerator.c| 22 ---

 1 file changed, 14 insertions(+), 8 deletions(-)



diff --git 
a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
 
b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c

index 3266d8dd98..9295117f1f 100644

--- 
a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c

+++ 
b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c

@@ -706,6 +706,8 @@ CreateAmlCluster (

  Cannot be CM_NULL_TOKEN.

   @param [in] ParentNode Parent node to attach the created

  node to.

+  @param [in,out] ClusterIndex   Pointer to the current cluster index

+ to be used as UID.

 

   @retval EFI_SUCCESS Success.

   @retval EFI_INVALID_PARAMETER   Invalid parameter.

@@ -718,13 +720,13 @@ CreateAmlCpuTopologyTree (

   INACPI_CPU_TOPOLOGY_GENERATOR   *Generator,

   IN  CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL  *CONST  CfgMgrProtocol,

   INCM_OBJECT_TOKEN   NodeToken,

-  INAML_NODE_HANDLE   ParentNode

+  INAML_NODE_HANDLE   ParentNode,

+  IN OUTUINT32*ClusterIndex

   )

 {

   EFI_STATUS  Status;

   UINT32  Index;

   UINT32  CpuIndex;

-  UINT32  ClusterIndex;

   AML_OBJECT_NODE_HANDLE  ClusterNode;

 

   ASSERT (Generator != NULL);

@@ -733,9 +735,9 @@ CreateAmlCpuTopologyTree (

   ASSERT (CfgMgrProtocol != NULL);

   ASSERT (NodeToken != CM_NULL_TOKEN);

   ASSERT (ParentNode != NULL);

+  ASSERT (ClusterIndex != NULL);

 

-  CpuIndex = 0;

-  ClusterIndex = 0;

+  CpuIndex = 0;

 

   for (Index = 0; Index < Generator->ProcNodeCount; Index++) {

 // Find the children of the CM_ARM_PROC_HIERARCHY_INFO

@@ -790,7 +792,7 @@ CreateAmlCpuTopologyTree (

CfgMgrProtocol,

ParentNode,

&Generator->ProcNodeList[Index],

-   ClusterIndex,

+   *ClusterIndex,

&ClusterNode

);

 if (EFI_ERROR (Status)) {

@@ -800,7 +802,7 @@ CreateAmlCpuTopologyTree (

 

 // Nodes must have a unique name in the ASL namespace.

 // Reset the Cpu index whenever we create a new Cluster.

-ClusterIndex++;

+(*ClusterIndex)++;

 CpuIndex = 0;

 

 // Recursively continue creating an AML tree.

@@ -808,7 +810,8 @@ CreateAmlCpuTopologyTree (

Generator,

CfgMgrProtocol,

Generator->ProcNodeList[Index].Token,

-   ClusterNode

+   ClusterNode,

+   ClusterIndex

);

 if (EFI_ERROR (Status)) {

   ASSERT (0);

@@ -845,6 +848,7 @@ CreateTopologyFromProcHierarchy (

   EFI_STATUS  Status;

   UINT32  Index;

   UINT32  TopLevelProcNodeIndex;

+  UINT32  ClusterIndex;

 

   ASSERT (Generator != NULL);

   ASSERT (Generator->ProcNodeCount != 0);

@@ -853,6 +857,7 @@ CreateTopologyFromProcHierarchy (

   ASSERT (ScopeNode != NULL);

 

   TopLevelProcNodeIndex = MAX_UINT32;

+  ClusterIndex  = 0;

 

   Status = TokenTableInitialize (Generator, Generator->ProcNodeCount);

   if (EFI_ERROR (Status)) {

@@ -887,7 +892,8 @@ CreateTopologyFromProcHierarchy (

  Generator,

  CfgMgrProtocol,

  Generator->ProcNodeList[TopLevelProcNodeIndex].Token,

- ScopeNode

+ ScopeNode,

+ &ClusterIndex

  );

   if (EFI_ERROR (Status)) {

 ASSERT (0);

-- 

2.25.1





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92487): https://edk2.groups.io/g/devel/message/92487
Mute This Topic: https://groups.io/mt/93067950/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] [PATCH v3 2/3] OvmfPkg/VirtioGpuDxe: Check QueryMode arguments

2022-08-16 Thread Dimitrije Pavlov
The current implementation does not check if Info or SizeInfo
pointers are NULL. This causes the SCT test suite to crash.

Add a check to return EFI_INVALID_PARAMETER if any of these
pointers are NULL.

Cc: Ard Biesheuvel 
Cc: Jiewen Yao 
Cc: Liming Gao 
Cc: Sunny Wang 
Cc: Jeff Booher-Kaeding 
Cc: Samer El-Haj-Mahmoud 

Signed-off-by: Dimitrije Pavlov 
Reviewed-by: Sunny Wang 
---
 OvmfPkg/VirtioGpuDxe/Gop.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/OvmfPkg/VirtioGpuDxe/Gop.c b/OvmfPkg/VirtioGpuDxe/Gop.c
index 401db47672ec..16e92830d411 100644
--- a/OvmfPkg/VirtioGpuDxe/Gop.c
+++ b/OvmfPkg/VirtioGpuDxe/Gop.c
@@ -308,7 +308,10 @@ GopQueryMode (
 {
   EFI_GRAPHICS_OUTPUT_MODE_INFORMATION  *GopModeInfo;
 
-  if (ModeNumber >= This->Mode->MaxMode) {
+  if ((Info == NULL) ||
+  (SizeOfInfo == NULL) ||
+  (ModeNumber >= This->Mode->MaxMode))
+  {
 return EFI_INVALID_PARAMETER;
   }
 
-- 
2.37.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92483): https://edk2.groups.io/g/devel/message/92483
Mute This Topic: https://groups.io/mt/93067594/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] [PATCH v3 0/3] OvmfPkg: Check arguments for validity

2022-08-16 Thread Dimitrije Pavlov
Some functions across OVMF don't check pointer arguments for
validity, which causes null pointer dereferences and crashes
in the SCT test suite.

This series adds checks to return EFI_INVALID_PARAMETER if a
pointer argument is NULL.

v3:
- Fix coding standard issues to pass CI checks [Ard]

v2: https://edk2.groups.io/g/devel/message/92443

Cc: Ard Biesheuvel 
Cc: Jiewen Yao 
Cc: Liming Gao 
Cc: Sunny Wang 
Cc: Jeff Booher-Kaeding 
Cc: Samer El-Haj-Mahmoud 

Reviewed-by: Sunny Wang 

Dimitrije Pavlov (3):
  OvmfPkg/PlatformDxe: Check ExtractConfig and RouteConfig arguments
  OvmfPkg/VirtioGpuDxe: Check QueryMode arguments
  OvmfPkg/VirtioFsDxe: Check GetDriverName arguments

 OvmfPkg/PlatformDxe/Platform.c  | 8 
 OvmfPkg/VirtioFsDxe/DriverBinding.c | 4 
 OvmfPkg/VirtioGpuDxe/Gop.c  | 5 -
 3 files changed, 16 insertions(+), 1 deletion(-)

-- 
2.37.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92484): https://edk2.groups.io/g/devel/message/92484
Mute This Topic: https://groups.io/mt/93067595/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] [PATCH v3 1/3] OvmfPkg/PlatformDxe: Check ExtractConfig and RouteConfig arguments

2022-08-16 Thread Dimitrije Pavlov
The current implementation does not check if Progress or Results
pointers in ExtractConfig are NULL, or if Progress pointer in
RouteConfig is NULL. This causes the SCT test suite to crash.

Add a check to return EFI_INVALID_PARAMETER if any of these pointers
are NULL.

Cc: Ard Biesheuvel 
Cc: Jiewen Yao 
Cc: Liming Gao 
Cc: Sunny Wang 
Cc: Jeff Booher-Kaeding 
Cc: Samer El-Haj-Mahmoud 

Signed-off-by: Dimitrije Pavlov 
Reviewed-by: Sunny Wang 
---
 OvmfPkg/PlatformDxe/Platform.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/OvmfPkg/PlatformDxe/Platform.c b/OvmfPkg/PlatformDxe/Platform.c
index 4bf22712c78f..a6d459f3dfd7 100644
--- a/OvmfPkg/PlatformDxe/Platform.c
+++ b/OvmfPkg/PlatformDxe/Platform.c
@@ -232,6 +232,10 @@ ExtractConfig (
 
   DEBUG ((DEBUG_VERBOSE, "%a: Request=\"%s\"\n", __FUNCTION__, Request));
 
+  if ((Progress == NULL) || (Results == NULL)) {
+return EFI_INVALID_PARAMETER;
+  }
+
   Status = PlatformConfigToFormState (&MainFormState);
   if (EFI_ERROR (Status)) {
 *Progress = Request;
@@ -340,6 +344,10 @@ RouteConfig (
 Configuration
 ));
 
+  if (Progress == NULL) {
+return EFI_INVALID_PARAMETER;
+  }
+
   //
   // the "read" step in RMW
   //
-- 
2.37.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92486): https://edk2.groups.io/g/devel/message/92486
Mute This Topic: https://groups.io/mt/93067597/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] [PATCH v3 3/3] OvmfPkg/VirtioFsDxe: Check GetDriverName arguments

2022-08-16 Thread Dimitrije Pavlov
The current implementation does not check if Language or DriverName
are NULL. This causes the SCT test suite to crash.

Add a check to return EFI_INVALID_PARAMETER if any of these pointers
are NULL.

Cc: Ard Biesheuvel 
Cc: Jiewen Yao 
Cc: Liming Gao 
Cc: Sunny Wang 
Cc: Jeff Booher-Kaeding 
Cc: Samer El-Haj-Mahmoud 

Signed-off-by: Dimitrije Pavlov 
Reviewed-by: Sunny Wang 
---
 OvmfPkg/VirtioFsDxe/DriverBinding.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/OvmfPkg/VirtioFsDxe/DriverBinding.c 
b/OvmfPkg/VirtioFsDxe/DriverBinding.c
index 86eb9cf0ba51..69d2bb777089 100644
--- a/OvmfPkg/VirtioFsDxe/DriverBinding.c
+++ b/OvmfPkg/VirtioFsDxe/DriverBinding.c
@@ -218,6 +218,10 @@ VirtioFsGetDriverName (
   OUT CHAR16**DriverName
   )
 {
+  if ((Language == NULL) || (DriverName == NULL)) {
+return EFI_INVALID_PARAMETER;
+  }
+
   if (AsciiStrCmp (Language, "en") != 0) {
 return EFI_UNSUPPORTED;
   }
-- 
2.37.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92485): https://edk2.groups.io/g/devel/message/92485
Mute This Topic: https://groups.io/mt/93067596/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




Re: [edk2-devel] [PATCH v2 0/3] OvmfPkg: Check arguments for validity

2022-08-16 Thread Ard Biesheuvel
On Tue, 16 Aug 2022 at 13:39, Sunny Wang  wrote:
>
> The series looks good to me.
> Reviewed-by: Sunny Wang 
>
> -Original Message-
> From: Dimitrije Pavlov 
> Sent: 15 August 2022 17:31
> To: devel@edk2.groups.io
> Cc: Ard Biesheuvel ; Jiewen Yao 
> ; Liming Gao ; Sunny Wang 
> ; Jeff Booher-Kaeding ; 
> Samer El-Haj-Mahmoud 
> Subject: [PATCH v2 0/3] OvmfPkg: Check arguments for validity
>
> Some functions across OVMF don't check pointer arguments for
> validity, which causes null pointer dereferences and crashes
> in the SCT test suite.
>
> This series adds checks to return EFI_INVALID_PARAMETER if a
> pointer argument is NULL.
>
> v2:
> - Add Liming Gao to Cc [Ard]
> - Turn individual patches into a series [Ard]
> - Fix issue with corrupted patches [Ard]
>
> Cc: Ard Biesheuvel 
> Cc: Jiewen Yao 
> Cc: Liming Gao 
> Cc: Sunny Wang 
> Cc: Jeff Booher-Kaeding 
> Cc: Samer El-Haj-Mahmoud 
>
> Dimitrije Pavlov (3):
>   OvmfPkg/PlatformDxe: Check ExtractConfig and RouteConfig arguments
>   OvmfPkg/VirtioGpuDxe: Check QueryMode arguments
>   OvmfPkg/VirtioFsDxe: Check GetDriverName arguments
>

I tried to push these but they failed in CI.

Could you please have a look and respin with the reported issues
addressed? Thanks.

https://github.com/tianocore/edk2/pull/3211


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92482): https://edk2.groups.io/g/devel/message/92482
Mute This Topic: https://groups.io/mt/93040550/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] [PATCH v2] DynamicTablesPkg: Add support to build _DSD

2022-08-16 Thread Jeff Brasen via groups.io
Add APIs needed to build _DSD with different UUIDs.

This is per ACPI specification 6.4 s6.2.5.



Adds support for building data packages with format

Package {"Name", Integer}



Signed-off-by: Jeff Brasen 

---

 .../Include/Library/AmlLib/AmlLib.h   |  55 

 .../Common/AmlLib/CodeGen/AmlCodeGen.c| 249 ++

 2 files changed, 304 insertions(+)



diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h 
b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h

index 6f214c0dfa..86a0e802f4 100644

--- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h

+++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h

@@ -1280,6 +1280,61 @@ AmlAddLpiState (

   IN  AML_OBJECT_NODE_HANDLE  LpiNode

   );

 

+/** AML code generation for a _DSD device data object.

+

+  AmlAddDeviceDataDescriptorPackage (Uuid, DsdNode, PackageNode) is

+  equivalent of the following ASL code:

+ToUUID(Uuid),

+Package () {}

+

+  Cf ACPI 6.4 specification, s6.2.5 "_DSD (Device Specific Data)".

+

+  @ingroup CodeGenApis

+

+  @param [in]  Uuid   The Uuid of the descriptor to be created

+  @param [in]  DsdNodeNode of the DSD Package.

+  @param [out] PackageNodeIf success, contains the created package node.

+

+  @retval EFI_SUCCESS Success.

+  @retval EFI_INVALID_PARAMETER   Invalid parameter.

+  @retval EFI_OUT_OF_RESOURCESFailed to allocate memory.

+**/

+EFI_STATUS

+EFIAPI

+AmlAddDeviceDataDescriptorPackage (

+  IN  CONST EFI_GUID*Uuid,

+  INAML_OBJECT_NODE_HANDLE  DsdNode,

+  OUT   AML_OBJECT_NODE_HANDLE  *PackageNode

+  );

+

+/** AML code generation to add a package with a name and value,

+to a parent package.

+This is useful for build the _DSD package but can be used in other cases.

+

+  AmlAddNameValuePackage ("Name", Value, ParentNode) is

+  equivalent of the following ASL code:

+Package (2) {"Name", Value}

+

+  Cf ACPI 6.4 specification, s6.2.5 "_DSD (Device Specific Data)".

+

+  @ingroup CodeGenApis

+

+  @param [in]  Name   String to place in first entry of package

+  @param [in]  Value  Integer to place in second entry of package

+  @param [in]  PackageNodePackage to add new sub package to.

+

+  @retval EFI_SUCCESS Success.

+  @retval EFI_INVALID_PARAMETER   Invalid parameter.

+  @retval EFI_OUT_OF_RESOURCESFailed to allocate memory.

+**/

+EFI_STATUS

+EFIAPI

+AmlAddNameIntegerPackage (

+  IN CHAR8   *Name,

+  IN UINT64  Value,

+  IN AML_OBJECT_NODE_HANDLE  PackageNode

+  );

+

 // DEPRECATED APIS

 #ifndef DISABLE_NEW_DEPRECATED_INTERFACES

 

diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c 
b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c

index e51d2dd7f0..6f96e5952b 100644

--- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c

+++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c

@@ -2600,3 +2600,252 @@ error_handler:

 

   return Status;

 }

+

+/** AML code generation for a _DSD device data object.

+

+  AmlAddDeviceDataDescriptorPackage (Uuid, DsdNode, PackageNode) is

+  equivalent of the following ASL code:

+ToUUID(Uuid),

+Package () {}

+

+  Cf ACPI 6.4 specification, s6.2.5 "_DSD (Device Specific Data)".

+

+  @ingroup CodeGenApis

+

+  @param [in]  Uuid   The Uuid of the descriptor to be created

+  @param [in]  DsdNodeNode of the DSD Package.

+  @param [out] PackageNodeIf success, contains the created package node.

+

+  @retval EFI_SUCCESS Success.

+  @retval EFI_INVALID_PARAMETER   Invalid parameter.

+  @retval EFI_OUT_OF_RESOURCESFailed to allocate memory.

+**/

+EFI_STATUS

+EFIAPI

+AmlAddDeviceDataDescriptorPackage (

+  IN  CONST EFI_GUID*Uuid,

+  INAML_OBJECT_NODE_HANDLE  DsdNode,

+  OUT   AML_OBJECT_NODE_HANDLE  *PackageNode

+  )

+{

+  EFI_STATUS  Status;

+  AML_OBJECT_NODE *UuidNode;

+  AML_DATA_NODE   *UuidDataNode;

+  AML_OBJECT_NODE_HANDLE  DsdEntryList;

+

+  if ((Uuid == NULL) ||

+  (PackageNode == NULL) ||

+  (AmlGetNodeType ((AML_NODE_HANDLE)DsdNode) != EAmlNodeObject) ||

+  (!AmlNodeHasOpCode (DsdNode, AML_NAME_OP, 0)) ||

+  !AmlNameOpCompareName (DsdNode, "_DSD"))

+  {

+ASSERT_EFI_ERROR (EFI_INVALID_PARAMETER);

+return EFI_INVALID_PARAMETER;

+  }

+

+  // Get the Package object node of the _DSD node,

+  // which is the 2nd fixed argument (i.e. index 1).

+  DsdEntryList = (AML_OBJECT_NODE_HANDLE)AmlGetFixedArgument (

+   DsdNode,

+   EAmlParseIndexTerm1

+   );

+  if ((DsdEntryList == NULL)  ||

+  (AmlGetNodeType ((AML_NODE_HANDLE)DsdEntryList) != 

Re: [edk2-devel] [edk2-platforms][PATCH v5 0/4] Resolving SecureBootVariableLib dependency

2022-08-16 Thread Kun Qin

Thank you so much for the help!

On 8/16/2022 10:54 AM, Ard Biesheuvel wrote:

On Mon, 15 Aug 2022 at 19:42, Kun Qin  wrote:

This v5 series is a follow up of previously submitted patches:
https://edk2.groups.io/g/devel/message/92128

The v5 patches include a new `Reviewed-by` tag collected during the v4
round and skipped 2 patches merged during the last review cycle.

Patch v5 branch:https://github.com/kuqin12/edk2-platforms/tree/fix_sb_dep_v5

Cc: Ard Biesheuvel
Cc: Leif Lindholm
Cc: Graeme Gregory
Cc: Radoslaw Biernacki
Cc: Masami Hiramatsu
Cc: Nhi Pham
Cc: Vu Nguyen
Cc: Thang Nguyen
Cc: Chuong Tran
Cc: Thomas Abraham
Cc: Sami Mujawar
Cc: Abner Chang
Cc: Gilbert Chen
Cc: Daniel Schaefer
Cc: Jeremy Linton
Cc: Peng Xie
Cc: Ling Jia
Cc: Yiqi Shu

Kun Qin (4):
   RaspberryPi: Platform Build: Resolving newly introduced dependency
   U5SeriesPkg: Platform Build: Resolving newly introduced dependency
   AmpereAltraPkg: Platform Build: Resolving newly introduced dependency
   PhytiumCommonPkg: Platform Build: Resolving newly introduced
 dependency


Series pushed as d56523d0c1fa..6a847c32c0bb

Thanks,



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92480): https://edk2.groups.io/g/devel/message/92480
Mute This Topic: https://groups.io/mt/93041955/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




Re: [edk2-devel] [edk2-platforms][PATCH v5 0/4] Resolving SecureBootVariableLib dependency

2022-08-16 Thread Ard Biesheuvel
On Mon, 15 Aug 2022 at 19:42, Kun Qin  wrote:
>
> This v5 series is a follow up of previously submitted patches:
> https://edk2.groups.io/g/devel/message/92128
>
> The v5 patches include a new `Reviewed-by` tag collected during the v4
> round and skipped 2 patches merged during the last review cycle.
>
> Patch v5 branch:https://github.com/kuqin12/edk2-platforms/tree/fix_sb_dep_v5
>
> Cc: Ard Biesheuvel
> Cc: Leif Lindholm
> Cc: Graeme Gregory
> Cc: Radoslaw Biernacki
> Cc: Masami Hiramatsu
> Cc: Nhi Pham
> Cc: Vu Nguyen
> Cc: Thang Nguyen
> Cc: Chuong Tran
> Cc: Thomas Abraham
> Cc: Sami Mujawar
> Cc: Abner Chang
> Cc: Gilbert Chen
> Cc: Daniel Schaefer
> Cc: Jeremy Linton
> Cc: Peng Xie
> Cc: Ling Jia
> Cc: Yiqi Shu
>
> Kun Qin (4):
>   RaspberryPi: Platform Build: Resolving newly introduced dependency
>   U5SeriesPkg: Platform Build: Resolving newly introduced dependency
>   AmpereAltraPkg: Platform Build: Resolving newly introduced dependency
>   PhytiumCommonPkg: Platform Build: Resolving newly introduced
> dependency
>

Series pushed as d56523d0c1fa..6a847c32c0bb

Thanks,


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92479): https://edk2.groups.io/g/devel/message/92479
Mute This Topic: https://groups.io/mt/93041955/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




Re: [edk2-devel] [PATCH v4 6/6] DynamicTablesPkg: AcpiSsdtPcieLibArm: Added case handling for PCI config

2022-08-16 Thread PierreGondois

Hello Kun,

Is this patch still required ?
Cf: https://edk2.groups.io/g/devel/message/92204

The CM_ARM_PCI_CONFIG_SPACE_INFO struct should be enough to describe
the PCI ECAM, so CM_ARM_PCI_ADDRESS_MAP_INFO.SpaceCode being set to
PCI_SS_CONFIG should be an invalid case.
If not I don't think a v5 should be necessary.

Also I ran the patchset on KvmTool and everything was working.

Regards,
Pierre

On 8/11/22 00:28, Kun Qin wrote:

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3998

This change added a switch case handling for PCI_SS_CONFIG during SSDT
generation. This will allow PCI config case return EFI_SUCCESS instead of
EFI_INVALID_PARAMETER.

Cc: Sami Mujawar 
Cc: Alexei Fedorov 

Co-authored-by: Joe Lopez 
Signed-off-by: Kun Qin 
Reviewed-by: Pierre Gondois 
Reviewed-by: Sami Mujawar 
---

Notes:
 v2:
 - Added Reviewed-by tag [Pierre]
 
 v3:

 - No change
 
 v4:

 - Added Reviewed-by tag [Sami]

  DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c | 5 
+
  1 file changed, 5 insertions(+)

diff --git 
a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c 
b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
index dd75fc27e60e..c6fbd09c43f8 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
@@ -606,6 +606,11 @@ GeneratePciCrs (
 );
  break;
  
+  case PCI_SS_CONFIG:

+// Do nothing
+Status = EFI_SUCCESS;
+break;
+
default:
  Status = EFI_INVALID_PARAMETER;
  } // switch



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92478): https://edk2.groups.io/g/devel/message/92478
Mute This Topic: https://groups.io/mt/92947269/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




Re: [edk2-devel] [edk2-platforms PATCH v1 1/1] RISC-V/RiscVExceptionLib: Follow new CpuExceptionHandlerLib APIs

2022-08-16 Thread Sunil V L
On Thu, Aug 11, 2022 at 02:40:57PM +0800, Daniel Schaefer wrote:
> CpuExceptionHandlerLib (in EDK2) has been refactored with following changes
> 1. Removed InitializeCpuInterruptHandlers in 2a09527ebcb459b40
> 2. Removed InitializeCpuExceptionHandlersEx and
>added InitializeSeparateExceptionStacks in e7abb94d1fb8a0e7
> 
> The patch updates RISC-V version of CpuExceptionHandlerLib to follow
> the API changes, based on the ARM changes in e2ae0bed29ca0900bd35.
> 
> The functionality to RISC-V platforms should be none.
> 
> Signed-off-by: Daniel Schaefer 
> Cc: Sunil V L 
> ---
>  
> Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.c
>  | 82 ++--
>  1 file changed, 24 insertions(+), 58 deletions(-)
> 
> diff --git 
> a/Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.c
>  
> b/Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.c
> index 93fbde619f..c3ced4a4c2 100644
> --- 
> a/Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.c
> +++ 
> b/Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.c
> @@ -44,31 +44,6 @@ InitializeCpuExceptionHandlers (
>return EFI_SUCCESS;
>  }
>  
> -/**
> -  Initializes all CPU interrupt/exceptions entries and provides the default 
> interrupt/exception handlers.
> -
> -  Caller should try to get an array of interrupt and/or exception vectors 
> that are in use and need to
> -  persist by EFI_VECTOR_HANDOFF_INFO defined in PI 1.3 specification.
> -  If caller cannot get reserved vector list or it does not exists, set 
> VectorInfo to NULL.
> -  If VectorInfo is not NULL, the exception vectors will be initialized per 
> vector attribute accordingly.
> -
> -  @param[in]  VectorInfoPointer to reserved vector list.
> -
> -  @retval EFI_SUCCESS   All CPU interrupt/exception entries have 
> been successfully initialized
> -with default interrupt/exception handlers.
> -  @retval EFI_INVALID_PARAMETER VectorInfo includes the invalid content if 
> VectorInfo is not NULL.
> -  @retval EFI_UNSUPPORTED   This function is not supported.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -InitializeCpuInterruptHandlers (
> -  IN EFI_VECTOR_HANDOFF_INFO  *VectorInfo OPTIONAL
> -  )
> -{
> -  return EFI_SUCCESS;
> -}
> -
>  /**
>Registers a function to be called from the processor interrupt handler.
>  
> @@ -134,39 +109,6 @@ RiscVSupervisorModeTrapHandler (
>}
>  }
>  
> -/**
> -  Initializes all CPU exceptions entries with optional extra initializations.
> -
> -  By default, this method should include all functionalities implemented by
> -  InitializeCpuExceptionHandlers(), plus extra initialization works, if any.
> -  This could be done by calling InitializeCpuExceptionHandlers() directly
> -  in this method besides the extra works.
> -
> -  InitData is optional and its use and content are processor arch dependent.
> -  The typical usage of it is to convey resources which have to be reserved
> -  elsewhere and are necessary for the extra initializations of exception.
> -
> -  @param[in]  VectorInfoPointer to reserved vector list.
> -  @param[in]  InitData  Pointer to data optional for extra 
> initializations
> -of exception.
> -
> -  @retval EFI_SUCCESS The exceptions have been successfully
> -  initialized.
> -  @retval EFI_INVALID_PARAMETER   VectorInfo or InitData contains invalid
> -  content.
> -  @retval EFI_UNSUPPORTED This function is not supported.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -InitializeCpuExceptionHandlersEx (
> -  IN EFI_VECTOR_HANDOFF_INFO  *VectorInfo OPTIONAL,
> -  IN CPU_EXCEPTION_INIT_DATA  *InitData OPTIONAL
> -  )
> -{
> -  return InitializeCpuExceptionHandlers (VectorInfo);
> -}
> -
>  /**
>The constructor function to initial interrupt handlers in
>RISCV_MACHINE_MODE_CONTEXT.
> @@ -192,3 +134,27 @@ CpuExceptionHandlerLibConstructor (
>  
>return EFI_SUCCESS;
>  }
> +
> +/**
> +  Setup separate stacks for certain exception handlers.
> +  If the input Buffer and BufferSize are both NULL, use global variable if 
> possible.
> +
> +  @param[in]   BufferPoint to buffer used to separate exception 
> stack.
> +  @param[in, out]  BufferSizeOn input, it indicates the byte size of 
> Buffer.
> + If the size is not enough, the return 
> status will
> + be EFI_BUFFER_TOO_SMALL, and output 
> BufferSize
> + will be the size it needs.
> +
> +  @retval EFI_SUCCESS The stacks are assigned successfully.
> +  @retval EFI_UNSUPPORTED This function is not supported.
> +  @retval EFI_BUFFER_TOO_SMALLThis BufferSize is too small.
> +**/
> +EFI_STATUS
> +EFIAPI
> +InitializeSeparateExceptionStacks (
> +  IN VOID   *Buffer,
> +

Re: [edk2-devel] [PATCH 1/2] OvmfPkg: Introduce NULL class library to inhibit driver load

2022-08-16 Thread Laszlo Ersek
On 08/15/22 11:40, Ard Biesheuvel wrote:
> Add a new library that can be incorporated into any driver built from
> source, and which permits loading of the driver to be inhibited based on
> the value of a QEMU fw_cfg boolean variable. This will be used in a
> subsequent patch to allow dispatch of the IPv6 and IPv6 network protocol

(1) typo? (should be "IPv4 and IPv6" I think)

> driver to be controlled from the QEMU command line.
>
> Signed-off-by: Ard Biesheuvel 
> ---
>  OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c   | 30 
> 
>  OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.inf | 28 
> ++
>  OvmfPkg/OvmfPkg.dec   |  4 +++
>  3 files changed, 62 insertions(+)
>
> diff --git a/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c 
> b/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c
> new file mode 100644
> index ..dc8544bc38be
> --- /dev/null
> +++ b/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c
> @@ -0,0 +1,30 @@
> +// @file
> +// Copyright (c) 2022, Google LLC. All rights reserved.
> +// SPDX-License-Identifier: BSD-2-Clause-Patent
> +//
> +
> +#include 
> +
> +#include 
> +#include 
> +
> +STATIC CHAR16 mExitData[] = L"Driver dispatch inhibited by QEMU fw_cfg 
> variable.";
> +
> +EFI_STATUS
> +EFIAPI
> +DriverLoadInhibitorLibConstructor (
> +  IN  EFI_HANDLEHandle,
> +  IN  EFI_SYSTEM_TABLE  *SystemTable
> +  )
> +{
> +  RETURN_STATUS Status;
> +  BOOLEAN   Enabled;
> +
> +  Status = QemuFwCfgParseBool (FixedPcdGetPtr 
> (PcdDriverInhibitorFwCfgVarName),
> + &Enabled);
> +  if (!RETURN_ERROR (Status) && !Enabled) {
> +return gBS->Exit (Handle, EFI_REQUEST_UNLOAD_IMAGE, sizeof mExitData,
> +  mExitData);

(2) Per UEFI spec, ExitData should be allocated with
gBS->AllocatePool().

(3) EFI_REQUEST_UNLOAD_IMAGE is from the PI spec; while not wrong, I
think it's strange to use here. EFI_ABORTED or something similar from
the UEFI spec would be a better fit IMO.

(4) And then, the big problem:

I agree that returning an error from the constructor would not be
beneficial, as it would cause an assertion to fail in the
ProcessLibraryConstructorList() function, in the generated "AutoGen.c"
file.

However, calling gBS->Exit() from a constructor seems unsafe to me, with
regard to library destructors.

Now, in the current case (considering patch#2), this unsafety is not
visible. That's because:

(quoting ProcessLibraryConstructorList() and
ProcessLibraryDestructorList() from
"Build/OvmfX64/NOOPT_GCC5/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/DEBUG/AutoGen.c",
from an earlier build on my machine anyway):

> VOID
> EFIAPI
> ProcessLibraryConstructorList (
>   IN EFI_HANDLEImageHandle,
>   IN EFI_SYSTEM_TABLE  *SystemTable
>   )
> {
>   EFI_STATUS  Status;
>
>   Status = PlatformDebugLibIoPortConstructor ();
>   ASSERT_RETURN_ERROR (Status);
>
>   Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);
>   ASSERT_EFI_ERROR (Status);
>
>   Status = DevicePathLibConstructor (ImageHandle, SystemTable);
>   ASSERT_EFI_ERROR (Status);
>
>   Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable);
>   ASSERT_EFI_ERROR (Status);
>
>   Status = UefiLibConstructor (ImageHandle, SystemTable);
>   ASSERT_EFI_ERROR (Status);
>
>   Status = UefiHiiServicesLibConstructor (ImageHandle, SystemTable);
>   ASSERT_EFI_ERROR (Status);
>
>   Status = DpcLibConstructor (ImageHandle, SystemTable);
>   ASSERT_EFI_ERROR (Status);
>
> }
>
>
>
> VOID
> EFIAPI
> ProcessLibraryDestructorList (
>   IN EFI_HANDLEImageHandle,
>   IN EFI_SYSTEM_TABLE  *SystemTable
>   )
> {
>
> }

there is no library destruction to speak of -- none of the used library
instances have resources they need to release at destruction time.

However, the general case looks problematic. The new library constructor
call would be inserted *somewhere* in ProcessLibraryConstructorList() --
the insertion point is likely "mostly unspecified", as no library
instance depends on DriverLoadInhibitorLib, and DriverLoadInhibitorLib
seems to depend on relatively few lib classes too. Therefore, in theory
anyway, the new lib constructor could call gBS->Exit() somewhere in the
middle of ProcessLibraryConstructorList(), with only some of the library
constructors having been executed.

Then the questions are

- does gBS->Exit() call ProcessLibraryDestructorList() or not?

  - if it does not, that could lead to memory leaks.

  - If it does though, is ProcessLibraryDestructorList() smart enough to
call only those destructors whose constructors have previously run?

- If not, it could call destructors on never-constructed data.

Unfortunately, this looks really tough to figure out; testing it (with
some actual library destructors) could be easier.


FWIW, there are two call sites for ProcessLibraryDestructorList() (for
UEFI/DXE dr

Re: [edk2-devel] [PATCH v2 0/3] OvmfPkg: Check arguments for validity

2022-08-16 Thread Sunny Wang
The series looks good to me.
Reviewed-by: Sunny Wang 

-Original Message-
From: Dimitrije Pavlov 
Sent: 15 August 2022 17:31
To: devel@edk2.groups.io
Cc: Ard Biesheuvel ; Jiewen Yao 
; Liming Gao ; Sunny Wang 
; Jeff Booher-Kaeding ; Samer 
El-Haj-Mahmoud 
Subject: [PATCH v2 0/3] OvmfPkg: Check arguments for validity

Some functions across OVMF don't check pointer arguments for
validity, which causes null pointer dereferences and crashes
in the SCT test suite.

This series adds checks to return EFI_INVALID_PARAMETER if a
pointer argument is NULL.

v2:
- Add Liming Gao to Cc [Ard]
- Turn individual patches into a series [Ard]
- Fix issue with corrupted patches [Ard]

Cc: Ard Biesheuvel 
Cc: Jiewen Yao 
Cc: Liming Gao 
Cc: Sunny Wang 
Cc: Jeff Booher-Kaeding 
Cc: Samer El-Haj-Mahmoud 

Dimitrije Pavlov (3):
  OvmfPkg/PlatformDxe: Check ExtractConfig and RouteConfig arguments
  OvmfPkg/VirtioGpuDxe: Check QueryMode arguments
  OvmfPkg/VirtioFsDxe: Check GetDriverName arguments

 OvmfPkg/PlatformDxe/Platform.c  | 8 
 OvmfPkg/VirtioFsDxe/DriverBinding.c | 4 
 OvmfPkg/VirtioGpuDxe/Gop.c  | 4 +++-
 3 files changed, 15 insertions(+), 1 deletion(-)

--
2.37.2

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92475): https://edk2.groups.io/g/devel/message/92475
Mute This Topic: https://groups.io/mt/93040550/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




Re: [edk2-devel] [PATCH] UefiCpuPkg: Use Top of each AP's stack to save CpuMpData

2022-08-16 Thread Ni, Ray
> -  MpBuffer= AllocatePages (EFI_SIZE_TO_PAGES (BufferSize));
> +  //
> +  // Allocate extra ApStackSize to let stack align on ApStackSize bounday
> +  //
> +  MpBuffer = AllocatePages (EFI_SIZE_TO_PAGES (BufferSize));

1. Above comments are not necessary. Can you please remove them?

>ASSERT (
> -(CpuMpData->CpuInfoInHob + sizeof (CPU_INFO_IN_HOB) *
> MaxLogicalProcessorNumber) ==
> -Buffer + BufferSize
> +(CpuMpData->CpuInfoInHob + sizeof (CPU_INFO_IN_HOB) *
> MaxLogicalProcessorNumber) <=
> +(UINTN)MpBuffer + BufferSize
>  );

2. Can you try changing "<=" back to "=="? I agree that "Buffer" should
be changed to "MpBuffer" in above check.


> -  For AP, the structure is just after IDT.
> +  For AP, the structure is stored in the top of each AP's stack.

3. Can you change it to "For AP, the pointer of CPU_MP_DATA is
stored in top of each AP's stack."?

> +;
> +; Reserve 8 bytes for storing CpuMpData.
> +; Using sub rsp instead of push rbp to avoid overwriting existed
> CpuMpData

4. Can you explain a bit more in which case the overwritten may happen?
I guess the overwritten may happen when the PcdCpuApLoopMode is
ApInHltLoop but pointer of CpuMpData is only stored in top of AP stack
in first time INIT-SIPI-SIPI.
 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92474): https://edk2.groups.io/g/devel/message/92474
Mute This Topic: https://groups.io/mt/93054601/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-




[edk2-devel] [PATCH] UefiCpuPkg: Use Top of each AP's stack to save CpuMpData

2022-08-16 Thread Yuanhao Xie
To remove the dependency of CPU register, 4/8 byte at the top of the stack
is occupied for CpuMpData. BIST information is also taken care here.
This modification is only for PEI phase, since in DXE phase CpuMpData is
accessed via global variable.

Signed-off-by: Yuanhao 
Cc: Eric Dong 
Cc: Ray Ni 
Cc: Rahul Kumar 
---
 .../Library/MpInitLib/Ia32/MpFuncs.nasm   |  5 +++
 UefiCpuPkg/Library/MpInitLib/MpLib.c  | 41 ++-
 UefiCpuPkg/Library/MpInitLib/MpLib.h  |  8 
 UefiCpuPkg/Library/MpInitLib/PeiMpLib.c   | 10 +++--
 UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm |  6 +++
 5 files changed, 56 insertions(+), 14 deletions(-)

diff --git a/UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm 
b/UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm
index 28301bb8f0..4714f2d527 100644
--- a/UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm
+++ b/UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm
@@ -179,6 +179,11 @@ ProgramStack:
 mov esp, dword [edi + CPU_INFO_IN_HOB.ApTopOfStack]
 
 CProcedureInvoke:
+;
+; Reserve 4 bytes for storing CpuMpData.
+; Using sub esp instead of push ebp to avoid overwriting the existed 
CpuMpData
+;
+subesp, 4
 push   ebp   ; push BIST data at top of AP stack
 xorebp, ebp  ; clear ebp for call stack trace
 push   ebp
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c 
b/UefiCpuPkg/Library/MpInitLib/MpLib.c
index 8d1f24370a..a9188eb59f 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
@@ -571,6 +571,7 @@ InitializeApData (
 {
   CPU_INFO_IN_HOB*CpuInfoInHob;
   MSR_IA32_PLATFORM_ID_REGISTER  PlatformIdMsr;
+  AP_STACK_DATA  *ApStackData;
 
   CpuInfoInHob= (CPU_INFO_IN_HOB 
*)(UINTN)CpuMpData->CpuInfoInHob;
   CpuInfoInHob[ProcessorNumber].InitialApicId = GetInitialApicId ();
@@ -578,6 +579,12 @@ InitializeApData (
   CpuInfoInHob[ProcessorNumber].Health= BistData;
   CpuInfoInHob[ProcessorNumber].ApTopOfStack  = ApTopOfStack;
 
+  //
+  // AP_STACK_DATA is stored at the top of AP Stack
+  //
+  ApStackData = (AP_STACK_DATA *)((UINTN)ApTopOfStack - sizeof 
(AP_STACK_DATA));
+  ApStackData->MpData = CpuMpData;
+
   CpuMpData->CpuData[ProcessorNumber].Waiting= FALSE;
   CpuMpData->CpuData[ProcessorNumber].CpuHealthy = (BistData == 0) ? TRUE : 
FALSE;
 
@@ -623,6 +630,7 @@ ApWakeupFunction (
   CPU_INFO_IN_HOB   *CpuInfoInHob;
   UINT64ApTopOfStack;
   UINTN CurrentApicMode;
+  AP_STACK_DATA *ApStackData;
 
   //
   // AP finished assembly code and begin to execute C code
@@ -648,7 +656,9 @@ ApWakeupFunction (
   // This is first time AP wakeup, get BIST information from AP stack
   //
   ApTopOfStack = CpuMpData->Buffer + (ProcessorNumber + 1) * 
CpuMpData->CpuApStackSize;
-  BistData = *(UINT32 *)((UINTN)ApTopOfStack - sizeof (UINTN));
+  ApStackData  = (AP_STACK_DATA *)((UINTN)ApTopOfStack - sizeof 
(AP_STACK_DATA));
+  BistData = (UINT32)ApStackData->Bist;
+
   //
   // CpuMpData->CpuData[0].VolatileRegisters is initialized based on BSP 
environment,
   //   to initialize AP in InitConfig path.
@@ -1796,30 +1806,41 @@ MpInitLibInitialize (
   AsmGetAddressMap (&AddressMap);
   GetApResetVectorSize (&AddressMap, &ApResetVectorSizeBelow1Mb, 
&ApResetVectorSizeAbove1Mb);
   ApStackSize = PcdGet32 (PcdCpuApStackSize);
-  ApLoopMode  = GetApLoopMode (&MonitorFilterSize);
+  //
+  // ApStackSize must be power of 2
+  //
+  ASSERT ((ApStackSize & (ApStackSize - 1)) == 0);
+  ApLoopMode = GetApLoopMode (&MonitorFilterSize);
 
   //
   // Save BSP's Control registers for APs.
   //
   SaveVolatileRegisters (&VolatileRegisters);
 
+  //
+  // Allocate extra ApStackSize to let AP stack align on ApStackSize bounday
+  //
   BufferSize  = ApStackSize * MaxLogicalProcessorNumber;
+  BufferSize += ApStackSize;
   BufferSize += MonitorFilterSize * MaxLogicalProcessorNumber;
   BufferSize += ApResetVectorSizeBelow1Mb;
   BufferSize  = ALIGN_VALUE (BufferSize, 8);
   BufferSize += VolatileRegisters.Idtr.Limit + 1;
   BufferSize += sizeof (CPU_MP_DATA);
   BufferSize += (sizeof (CPU_AP_DATA) + sizeof (CPU_INFO_IN_HOB))* 
MaxLogicalProcessorNumber;
-  MpBuffer= AllocatePages (EFI_SIZE_TO_PAGES (BufferSize));
+  //
+  // Allocate extra ApStackSize to let stack align on ApStackSize bounday
+  //
+  MpBuffer = AllocatePages (EFI_SIZE_TO_PAGES (BufferSize));
   ASSERT (MpBuffer != NULL);
   ZeroMem (MpBuffer, BufferSize);
-  Buffer = (UINTN)MpBuffer;
+  Buffer = ALIGN_VALUE ((UINTN)MpBuffer, ApStackSize);
 
   //
-  //  The layout of the Buffer is as below:
+  //  The layout of the Buffer is as below (lower address on top):
   //
-  //++ <-- Buffer
-  //AP Stacks (N)
+  //++ <-- Buffer (Pointer of CpuMpData is stored in 
the top of each AP's stac

[edk2-devel] TianoCore edk2-test Bug Triage Meeting

2022-08-16 Thread G Edhaya Chandran
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:India Standard Time
BEGIN:STANDARD
DTSTART:16010101T00
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T00
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;CN=G Edhaya Chandran:mailto:edhaya.chand...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Samer El-H
 aj-Mahmoud:mailto:samer.el-haj-mahm...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Barton Gao
 :mailto:gao...@byosoft.com.cn
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Heinrich S
 chuchardt:mailto:xypron.g...@gmx.de
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Venkatesh,
  Supreeth":mailto:supreeth.venkat...@amd.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Gjertsen, 
 Carolyn":mailto:carolyn.gjert...@amd.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Sunny Wang
 :mailto:sunny.w...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Mark Woods
 :mailto:mark.wo...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Grant Like
 ly:mailto:grant.lik...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Joseph Hem
 ann:mailto:joseph.hem...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Stuart Yod
 er:mailto:stuart.yo...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Jeremy Lin
 ton:mailto:jeremy.lin...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Paul Yang:
 mailto:paul.y...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Vincent St
 ehle:mailto:vincent.ste...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Rob Herrin
 g:mailto:rob.herr...@arm.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=devel@edk2
 .groups.io:mailto:devel@edk2.groups.io
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=gaoliming:
 mailto:gaolim...@byosoft.com.cn
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="'Hsiung, H
 arry L'":mailto:harry.l.hsi...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="'Guptha, S
 oumya K'":mailto:soumya.k.gup...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="'Kinney, M
 ichael D'":mailto:michael.d.kin...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=heinrich.s
 chucha...@canonical.com:mailto:heinrich.schucha...@canonical.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Dong Wei:m
 ailto:dong@arm.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Wang, Nick
 le (HPS SW)":mailto:nickle.w...@hpe.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Michael Ch
 iu:mailto:michael_c...@outlook.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Venu Busir
 eddy:mailto:venu.busire...@oracle.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Karl Heuba
 um:mailto:karl.heub...@oracle.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Doran, Mar
 k":mailto:mark.do...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Bret Barke
 lew:mailto:bret.barke...@microsoft.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Bodke, Kis
 hore K":mailto:kishore.k.bo...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Fang, Pete
 r":mailto:peter.f...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Spottswood
 , Jason":mailto:jason.spottsw...@hpe.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Tsao, Etha
 n":mailto:ethan.t...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Roger Pau 
 Monne:mailto:roger@citrix.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Velusamy, 
 Sudhakar":mailto:sudhakar.velus...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Jeff Raguc
 ci:mailto:jeff.ragu...@outlook.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Lohr, Paul
  A":mailto:paul.a.l...@intel.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Jared McNe
 ill:mailto:jared.mcne...@live.ca
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Jonathan C
 ameron:mailto:jonathan.came...@huawei.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Eugene Kho
 ruzhenko:mailto:ekhoruzhe...@absolute.com
ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Ajay Iyeng
 ar:mailto:IMCEAEX-_o=ExchangeLabs_ou=Exchange+20Administrative+20Group+20+
 28FYDIBOHF23SPDLT+29_cn=Recipients_cn=a6b457563c504748ab65e46f77d61899-aiy
 en...@eurprd08.prod.outlook.com
ATTENDEE;ROLE=OPT-PARTICIPANT

[edk2-devel] Updated Event: TianoCore edk2-test Bug Triage Meeting #cal-invite

2022-08-16 Thread Group Notification
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Groups.io Inc//Groups.io Calendar//EN
METHOD:PUBLISH
REFRESH-INTERVAL;VALUE=DURATION:PT1H
X-PUBLISHED-TTL:PT1H
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Asia/Shanghai
LAST-MODIFIED:20220317T223602Z
TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Shanghai
X-LIC-LOCATION:Asia/Shanghai
BEGIN:STANDARD
TZNAME:CST
TZOFFSETFROM:+0800
TZOFFSETTO:+0800
DTSTART:19700101T00
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
X-GIOIDS:Repeat:39460
UID:uhga.1631071627369023388.p...@groups.io
DTSTAMP:20220816T074138Z
ORGANIZER;CN=Edhaya Chandran:mailto:edhaya.chand...@arm.com
DTSTART;TZID=Asia/Shanghai:20220901T22
DTEND;TZID=Asia/Shanghai:20220901T23
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1TH
SUMMARY:TianoCore edk2-test Bug Triage Meeting
LOCATION:https://armltd.zoom.us/j/93809865843?pwd=dU1hSzk4NHM2RGhaRDRyWWZ
 xUzY5dz09&from=addon
SEQUENCE:3888
END:VEVENT
END:VCALENDAR


invite.ics
Description: application/ics


回复: [edk2-devel] Event: TianoCore Bug Triage - APAC / NAMO - 08/16/2022 #cal-reminder

2022-08-16 Thread gaoliming via groups.io
Few issues are submitted this week. Let’s cancel the meeting. 

 

Thanks

Liming

发件人: devel@edk2.groups.io  代表 Group Notification
发送时间: 2022年8月16日 9:30
收件人: devel@edk2.groups.io
主题: [edk2-devel] Event: TianoCore Bug Triage - APAC / NAMO - 08/16/2022 
#cal-reminder

 

Reminder: TianoCore Bug Triage - APAC / NAMO 

When:
08/16/2022
6:30pm to 7:30pm
(UTC-07:00) America/Los Angeles 

Where:
https://teams.microsoft.com/l/meetup-join/19%3ameeting_OTk1YzJhN2UtOGQwNi00NjY4LWEwMTktY2JiODRlYTY1NmY0%40thread.v2/0?context=%7b%22Tid%22%3a%2246c98d88-e344-4ed4-8496-4ed7712e255d%22%2c%22Oid%22%3a%226e4ce4c4-1242-431b-9a51-92cd01a5df3c%22%7d
 

Organizer: Liming Gao gaolim...@byosoft.com.cn 

  

View Event  

Description:

TianoCore Bug Triage - APAC / NAMO

Hosted by Liming Gao

 


 

Microsoft Teams meeting 

Join on your computer or mobile app 

 

 Click here to join the meeting 

Join with a video conferencing device 

te...@conf.intel.com   

Video Conference ID: 116 062 094 0 

 

 Alternate VTC dialing instructions 

Or call in (audio only) 

  +1 916-245-6934,,77463821#   United States, 
Sacramento 

Phone Conference ID: 774 638 21# 

 

 Find a local number |   Reset 
PIN 

  Learn More |  

 Meeting options 





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92470): https://edk2.groups.io/g/devel/message/92470
Mute This Topic: https://groups.io/mt/93054453/21656
Mute #cal-reminder:https://edk2.groups.io/g/devel/mutehashtag/cal-reminder
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-