[edk2-devel] [PATCH V2 2/8] RedfishPkg/RedfishHostInterfaceDxe: Add Redfish HI readiness notification

Chang, Abner via groups.io posted 8 patches 2 years, 2 months ago
There is a newer version of this series
[edk2-devel] [PATCH V2 2/8] RedfishPkg/RedfishHostInterfaceDxe: Add Redfish HI readiness notification
Posted by Chang, Abner via groups.io 2 years, 2 months ago
From: Abner Chang <abner.chang@amd.com>

Introduce gEdkIIRedfishHostInterfaceReadyProtocolGuid
and produce it when Redfish Host Interface is installed
on system.

Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Cc: Mike Maslenkin <mike.maslenkin@gmail.com>
---
 RedfishPkg/RedfishPkg.dec                        |  3 +++
 .../RedfishHostInterfaceDxe.inf                  |  3 ++-
 .../RedfishHostInterfaceDxe.c                    | 16 ++++++++++++++++
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec
index 0f18865cea0..e40538247c2 100644
--- a/RedfishPkg/RedfishPkg.dec
+++ b/RedfishPkg/RedfishPkg.dec
@@ -90,6 +90,9 @@
   ## Include/Protocol/EdkIIRedfishPlatformConfig.h
   gEdkIIRedfishPlatformConfigProtocolGuid = { 0X4D94A7C7, 0X4CE4, 0X4A84, { 0X88, 0XC1, 0X33, 0X0C, 0XD4, 0XA3, 0X47, 0X67 } }
 
+  # Redfish Host Interface ready notification protocol
+  gEdkIIRedfishHostInterfaceReadyProtocolGuid = { 0xC3F6D062, 0x3D38, 0x4EA4, { 0x92, 0xB1, 0xE8, 0xF8, 0x02, 0x27, 0x63, 0xDF } }
+
 [Guids]
   gEfiRedfishPkgTokenSpaceGuid      = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}
 
diff --git a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
index 1cdae149aad..f969e75463f 100644
--- a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
+++ b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
@@ -43,7 +43,8 @@
   UefiLib
 
 [Protocols]
-  gEfiSmbiosProtocolGuid                ## TO_START
+  gEfiSmbiosProtocolGuid                       ## TO_START
+  gEdkIIRedfishHostInterfaceReadyProtocolGuid  ## PRODUCED
 
 [Depex]
   gEfiSmbiosProtocolGuid
diff --git a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
index 55a66decfc8..94c0f9b6a92 100644
--- a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
+++ b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
@@ -53,7 +53,9 @@ RedfishCreateSmbiosTable42 (
   SMBIOS_TABLE_TYPE42                *Type42Record;
   EFI_SMBIOS_PROTOCOL                *Smbios;
   EFI_SMBIOS_HANDLE                  MemArrayMappedAddrSmbiosHandle;
+  EFI_HANDLE                         Handle;
 
+  Handle = NULL;
   //
   // Get platform Redfish host interface device type descriptor data.
   //
@@ -228,6 +230,20 @@ RedfishCreateSmbiosTable42 (
 
   Status = EFI_SUCCESS;
 
+  //
+  // Install Redfish Host Interface ready protocol.
+  //
+  Status = gBS->InstallProtocolInterface (
+                  &Handle,
+                  &gEdkIIRedfishHostInterfaceReadyProtocolGuid,
+                  EFI_NATIVE_INTERFACE,
+                  (VOID *)NULL
+                  );
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "Failed to install gEdkIIRedfishHostInterfaceReadyProtocolGuid.\n"));
+    DEBUG ((DEBUG_ERROR, "PlatformConfigHandler driver may not be triggered to acquire Redfish service.\n"));
+  }
+
 ON_EXIT:
   if (DeviceDescriptor != NULL) {
     FreePool (DeviceDescriptor);
-- 
2.37.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111657): https://edk2.groups.io/g/devel/message/111657
Mute This Topic: https://groups.io/mt/102763119/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH V2 2/8] RedfishPkg/RedfishHostInterfaceDxe: Add Redfish HI readiness notification
Posted by Mike Maslenkin 2 years, 2 months ago
On Thu, Nov 23, 2023 at 9:48 AM <abner.chang@amd.com> wrote:
>
> From: Abner Chang <abner.chang@amd.com>
>
> Introduce gEdkIIRedfishHostInterfaceReadyProtocolGuid
> and produce it when Redfish Host Interface is installed
> on system.
>
> Signed-off-by: Abner Chang <abner.chang@amd.com>
> Cc: Nickle Wang <nicklew@nvidia.com>
> Cc: Igor Kulchytskyy <igork@ami.com>
> Cc: Mike Maslenkin <mike.maslenkin@gmail.com>
> ---
>  RedfishPkg/RedfishPkg.dec                        |  3 +++
>  .../RedfishHostInterfaceDxe.inf                  |  3 ++-
>  .../RedfishHostInterfaceDxe.c                    | 16 ++++++++++++++++
>  3 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec
> index 0f18865cea0..e40538247c2 100644
> --- a/RedfishPkg/RedfishPkg.dec
> +++ b/RedfishPkg/RedfishPkg.dec
> @@ -90,6 +90,9 @@
>    ## Include/Protocol/EdkIIRedfishPlatformConfig.h
>    gEdkIIRedfishPlatformConfigProtocolGuid = { 0X4D94A7C7, 0X4CE4, 0X4A84, { 0X88, 0XC1, 0X33, 0X0C, 0XD4, 0XA3, 0X47, 0X67 } }
>
> +  # Redfish Host Interface ready notification protocol
> +  gEdkIIRedfishHostInterfaceReadyProtocolGuid = { 0xC3F6D062, 0x3D38, 0x4EA4, { 0x92, 0xB1, 0xE8, 0xF8, 0x02, 0x27, 0x63, 0xDF } }
> +
>  [Guids]
>    gEfiRedfishPkgTokenSpaceGuid      = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}
>
> diff --git a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
> index 1cdae149aad..f969e75463f 100644
> --- a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
> +++ b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
> @@ -43,7 +43,8 @@
>    UefiLib
>
>  [Protocols]
> -  gEfiSmbiosProtocolGuid                ## TO_START
> +  gEfiSmbiosProtocolGuid                       ## TO_START
> +  gEdkIIRedfishHostInterfaceReadyProtocolGuid  ## PRODUCED
>
>  [Depex]
>    gEfiSmbiosProtocolGuid
> diff --git a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
> index 55a66decfc8..94c0f9b6a92 100644
> --- a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
> +++ b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
> @@ -53,7 +53,9 @@ RedfishCreateSmbiosTable42 (
>    SMBIOS_TABLE_TYPE42                *Type42Record;
>    EFI_SMBIOS_PROTOCOL                *Smbios;
>    EFI_SMBIOS_HANDLE                  MemArrayMappedAddrSmbiosHandle;
> +  EFI_HANDLE                         Handle;
>
> +  Handle = NULL;
>    //
>    // Get platform Redfish host interface device type descriptor data.
>    //
> @@ -228,6 +230,20 @@ RedfishCreateSmbiosTable42 (
>
>    Status = EFI_SUCCESS;
>
> +  //
> +  // Install Redfish Host Interface ready protocol.
> +  //
> +  Status = gBS->InstallProtocolInterface (
> +                  &Handle,
> +                  &gEdkIIRedfishHostInterfaceReadyProtocolGuid,
> +                  EFI_NATIVE_INTERFACE,
> +                  (VOID *)NULL
> +                  );
> +  if (EFI_ERROR (Status)) {
> +    DEBUG ((DEBUG_ERROR, "Failed to install gEdkIIRedfishHostInterfaceReadyProtocolGuid.\n"));
> +    DEBUG ((DEBUG_ERROR, "PlatformConfigHandler driver may not be triggered to acquire Redfish service.\n"));
> +  }
> +
>  ON_EXIT:
>    if (DeviceDescriptor != NULL) {
>      FreePool (DeviceDescriptor);
> --
> 2.37.1.windows.1
>

You have clobbered explicit Status = EFI_SUCCESS;
is it intended? Overall result of this function does not depend from
this InstallProtocolInterface() call, SMBIOS table has been installed
successfully.
Looks like InstallProtocolInterface() should be added before Status
return value set.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111705): https://edk2.groups.io/g/devel/message/111705
Mute This Topic: https://groups.io/mt/102763119/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH V2 2/8] RedfishPkg/RedfishHostInterfaceDxe: Add Redfish HI readiness notification
Posted by Chang, Abner via groups.io 2 years, 2 months ago
[AMD Official Use Only - General]

> -----Original Message-----
> From: Mike Maslenkin <mike.maslenkin@gmail.com>
> Sent: Monday, November 27, 2023 3:36 AM
> To: Chang, Abner <Abner.Chang@amd.com>
> Cc: devel@edk2.groups.io; Nickle Wang <nicklew@nvidia.com>; Igor
> Kulchytskyy <igork@ami.com>
> Subject: Re: [PATCH V2 2/8] RedfishPkg/RedfishHostInterfaceDxe: Add
> Redfish HI readiness notification
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> On Thu, Nov 23, 2023 at 9:48 AM <abner.chang@amd.com> wrote:
> >
> > From: Abner Chang <abner.chang@amd.com>
> >
> > Introduce gEdkIIRedfishHostInterfaceReadyProtocolGuid
> > and produce it when Redfish Host Interface is installed
> > on system.
> >
> > Signed-off-by: Abner Chang <abner.chang@amd.com>
> > Cc: Nickle Wang <nicklew@nvidia.com>
> > Cc: Igor Kulchytskyy <igork@ami.com>
> > Cc: Mike Maslenkin <mike.maslenkin@gmail.com>
> > ---
> >  RedfishPkg/RedfishPkg.dec                        |  3 +++
> >  .../RedfishHostInterfaceDxe.inf                  |  3 ++-
> >  .../RedfishHostInterfaceDxe.c                    | 16 ++++++++++++++++
> >  3 files changed, 21 insertions(+), 1 deletion(-)
> >
> > diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec
> > index 0f18865cea0..e40538247c2 100644
> > --- a/RedfishPkg/RedfishPkg.dec
> > +++ b/RedfishPkg/RedfishPkg.dec
> > @@ -90,6 +90,9 @@
> >    ## Include/Protocol/EdkIIRedfishPlatformConfig.h
> >    gEdkIIRedfishPlatformConfigProtocolGuid = { 0X4D94A7C7, 0X4CE4,
> 0X4A84, { 0X88, 0XC1, 0X33, 0X0C, 0XD4, 0XA3, 0X47, 0X67 } }
> >
> > +  # Redfish Host Interface ready notification protocol
> > +  gEdkIIRedfishHostInterfaceReadyProtocolGuid = { 0xC3F6D062, 0x3D38,
> 0x4EA4, { 0x92, 0xB1, 0xE8, 0xF8, 0x02, 0x27, 0x63, 0xDF } }
> > +
> >  [Guids]
> >    gEfiRedfishPkgTokenSpaceGuid      = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88,
> 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}
> >
> > diff --git a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
> b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
> > index 1cdae149aad..f969e75463f 100644
> > --- a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
> > +++ b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.inf
> > @@ -43,7 +43,8 @@
> >    UefiLib
> >
> >  [Protocols]
> > -  gEfiSmbiosProtocolGuid                ## TO_START
> > +  gEfiSmbiosProtocolGuid                       ## TO_START
> > +  gEdkIIRedfishHostInterfaceReadyProtocolGuid  ## PRODUCED
> >
> >  [Depex]
> >    gEfiSmbiosProtocolGuid
> > diff --git a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
> b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
> > index 55a66decfc8..94c0f9b6a92 100644
> > --- a/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
> > +++ b/RedfishPkg/RedfishHostInterfaceDxe/RedfishHostInterfaceDxe.c
> > @@ -53,7 +53,9 @@ RedfishCreateSmbiosTable42 (
> >    SMBIOS_TABLE_TYPE42                *Type42Record;
> >    EFI_SMBIOS_PROTOCOL                *Smbios;
> >    EFI_SMBIOS_HANDLE                  MemArrayMappedAddrSmbiosHandle;
> > +  EFI_HANDLE                         Handle;
> >
> > +  Handle = NULL;
> >    //
> >    // Get platform Redfish host interface device type descriptor data.
> >    //
> > @@ -228,6 +230,20 @@ RedfishCreateSmbiosTable42 (
> >
> >    Status = EFI_SUCCESS;
> >
> > +  //
> > +  // Install Redfish Host Interface ready protocol.
> > +  //
> > +  Status = gBS->InstallProtocolInterface (
> > +                  &Handle,
> > +                  &gEdkIIRedfishHostInterfaceReadyProtocolGuid,
> > +                  EFI_NATIVE_INTERFACE,
> > +                  (VOID *)NULL
> > +                  );
> > +  if (EFI_ERROR (Status)) {
> > +    DEBUG ((DEBUG_ERROR, "Failed to install
> gEdkIIRedfishHostInterfaceReadyProtocolGuid.\n"));
> > +    DEBUG ((DEBUG_ERROR, "PlatformConfigHandler driver may not be
> triggered to acquire Redfish service.\n"));
> > +  }
> > +
> >  ON_EXIT:
> >    if (DeviceDescriptor != NULL) {
> >      FreePool (DeviceDescriptor);
> > --
> > 2.37.1.windows.1
> >
>
> You have clobbered explicit Status = EFI_SUCCESS;
> is it intended? Overall result of this function does not depend from
> this InstallProtocolInterface() call, SMBIOS table has been installed
> successfully.
> Looks like InstallProtocolInterface() should be added before Status
> return value set.
No, I didn’t aware this 😊.  Move it to below the new change as SMBIOS 42 is installed successfully.

Thanks
Abner




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111714): https://edk2.groups.io/g/devel/message/111714
Mute This Topic: https://groups.io/mt/102763119/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-