[edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: Add server management features

Zhen Gong posted 4 patches 6 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
.../IpmiFeaturePkg/IpmiFeaturePkg.dec         |  10 +
.../IpmiFeaturePkg/Include/IpmiFeature.dsc    |  13 +-
.../IpmiFeaturePkg/Include/PostMemory.fdf     |  10 +-
.../IpmiFeaturePkg/Include/PreMemory.fdf      |   1 +
.../BmcAcpiState/BmcAcpiState.inf             |  40 +
.../BmcAcpiSwChild/BmcAcpiSwChild.inf         |  39 +
.../BmcElog/{BmcElog.inf => DxeBmcElog.inf}   |  25 +-
.../IpmiFeaturePkg/BmcElog/PeiBmcElog.inf     |  43 ++
.../IpmiFeaturePkg/BmcElog/SmmBmcElog.inf     |  44 ++
.../GenericElog/Dxe/GenericElog.inf           |  38 +
.../GenericElog/Smm/GenericElog.inf           |  38 +
.../IpmiFeaturePkg/GenericFru/GenericFru.inf  |  42 ++
.../IpmiFeaturePkg/IpmiFru/IpmiFru.inf        |  35 -
.../IpmiRedirFru/IpmiRedirFru.inf             |  51 ++
.../ServerManagementLib.inf                   |  35 +
.../ServerManagementLibNull.inf               |  38 +
.../BmcAcpiState/BmcAcpiState.h               |  26 +
.../BmcAcpiSwChild/BmcAcpiSwChild.h           |  82 +++
.../BmcElog/Common/BmcElogCommon.h            | 144 ++++
.../IpmiFeaturePkg/BmcElog/Dxe/BmcElog.h      |  42 ++
.../IpmiFeaturePkg/BmcElog/Pei/BmcElog.h      |  44 ++
.../IpmiFeaturePkg/BmcElog/Smm/BmcElog.h      |  43 ++
.../GenericElog/Dxe/GenericElog.h             | 194 +++++
.../GenericElog/Smm/GenericElog.h             | 216 ++++++
.../GenericFru/GenericFruDriver.h             | 178 +++++
.../Include/Library/ServerMgmtRtLib.h         | 147 ++++
.../IpmiFeaturePkg/Include/Ppi/GenericElog.h  |  84 +++
.../Include/Protocol/BmcAcpiSwChildPolicy.h   |  31 +
.../Include/Protocol/GenericElog.h            |  99 +++
.../Include/Protocol/GenericFru.h             | 103 +++
.../Include/Protocol/RedirFru.h               |  81 ++
.../IpmiRedirFru/IpmiRedirFru.h               | 149 ++++
.../BmcAcpiState/BmcAcpiState.c               |  93 +++
.../BmcAcpiSwChild/BmcAcpiSwChild.c           | 189 +++++
.../IpmiFeaturePkg/BmcElog/BmcElog.c          | 236 ------
.../BmcElog/Common/BmcElogCommon.c            | 465 ++++++++++++
.../IpmiFeaturePkg/BmcElog/Dxe/BmcElog.c      | 287 ++++++++
.../IpmiFeaturePkg/BmcElog/Pei/BmcElog.c      | 297 ++++++++
.../IpmiFeaturePkg/BmcElog/Smm/BmcElog.c      | 288 ++++++++
.../GenericElog/Dxe/GenericElog.c             | 576 +++++++++++++++
.../GenericElog/Smm/GenericElog.c             | 558 ++++++++++++++
.../IpmiFeaturePkg/GenericFru/GenericFru.c    |  68 ++
.../GenericFru/GenericFruDriver.c             | 513 +++++++++++++
.../IpmiFeaturePkg/IpmiFru/IpmiFru.c          |  67 --
.../IpmiFeaturePkg/IpmiRedirFru/FruSmbios.c   | 469 ++++++++++++
.../IpmiRedirFru/IpmiRedirFru.c               | 479 ++++++++++++
.../ServerManagementLib/ServerManagementLib.c | 696 ++++++++++++++++++
.../ServerManagementLibNull.c                 | 144 ++++
48 files changed, 7242 insertions(+), 348 deletions(-)
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/BmcAcpiState.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/BmcAcpiSwChild.inf
rename Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/{BmcElog.inf => DxeBmcElog.inf} (56%)
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/PeiBmcElog.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/SmmBmcElog.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/GenericElog.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/GenericElog.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/GenericFru.inf
delete mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiRedirFru.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerManagementLib/ServerManagementLib.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerManagementLibNull/ServerManagementLibNull.inf
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/BmcAcpiState.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/BmcAcpiSwChild.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Common/BmcElogCommon.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Dxe/BmcElog.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Pei/BmcElog.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/GenericElog.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/GenericElog.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/GenericFruDriver.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/ServerMgmtRtLib.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Ppi/GenericElog.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/BmcAcpiSwChildPolicy.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/GenericElog.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/GenericFru.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/RedirFru.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiRedirFru.h
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/BmcAcpiState.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/BmcAcpiSwChild.c
delete mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/BmcElog.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Common/BmcElogCommon.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Dxe/BmcElog.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Pei/BmcElog.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/GenericElog.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/GenericElog.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/GenericFru.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/GenericFruDriver.c
delete mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/FruSmbios.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiRedirFru.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerManagementLib/ServerManagementLib.c
create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerManagementLibNull/ServerManagementLibNull.c
[edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: Add server management features
Posted by Zhen Gong 6 months ago
This patch set adds serveral IPMI features to support server management:

BmcAcpiState: A DXE driver to notify BMC of S0 power state.
BmcAcpiSwChild: An SMM driver to notify BMC of ACPI power state changes and add
 SEL records.
BmcElog: PEI, DXE, and SMM drivers to support BMC event log functions.
GenericElog: DXE and SMM drivers to support generic event log functions.
GenericFru: A runtime driver to support generic FRU functions.
IpmiRedirFru: A DXE driver to support BMC FRU functions and generate data based
 on SMBIOS data.
ServerManagementLib: A library to provide essential functions for server
 management drivers.


Zhen Gong (4):
  IpmiFeaturePkg: Add Elog drivers
  IpmiFeaturePkg: Add ServerManagementLib
  IpmiFeaturePkg: Add ACPI power state drivers
  IpmiFeaturePkg: Add FRU drivers

 .../IpmiFeaturePkg/IpmiFeaturePkg.dec         |  10 +
 .../IpmiFeaturePkg/Include/IpmiFeature.dsc    |  13 +-
 .../IpmiFeaturePkg/Include/PostMemory.fdf     |  10 +-
 .../IpmiFeaturePkg/Include/PreMemory.fdf      |   1 +
 .../BmcAcpiState/BmcAcpiState.inf             |  40 +
 .../BmcAcpiSwChild/BmcAcpiSwChild.inf         |  39 +
 .../BmcElog/{BmcElog.inf => DxeBmcElog.inf}   |  25 +-
 .../IpmiFeaturePkg/BmcElog/PeiBmcElog.inf     |  43 ++
 .../IpmiFeaturePkg/BmcElog/SmmBmcElog.inf     |  44 ++
 .../GenericElog/Dxe/GenericElog.inf           |  38 +
 .../GenericElog/Smm/GenericElog.inf           |  38 +
 .../IpmiFeaturePkg/GenericFru/GenericFru.inf  |  42 ++
 .../IpmiFeaturePkg/IpmiFru/IpmiFru.inf        |  35 -
 .../IpmiRedirFru/IpmiRedirFru.inf             |  51 ++
 .../ServerManagementLib.inf                   |  35 +
 .../ServerManagementLibNull.inf               |  38 +
 .../BmcAcpiState/BmcAcpiState.h               |  26 +
 .../BmcAcpiSwChild/BmcAcpiSwChild.h           |  82 +++
 .../BmcElog/Common/BmcElogCommon.h            | 144 ++++
 .../IpmiFeaturePkg/BmcElog/Dxe/BmcElog.h      |  42 ++
 .../IpmiFeaturePkg/BmcElog/Pei/BmcElog.h      |  44 ++
 .../IpmiFeaturePkg/BmcElog/Smm/BmcElog.h      |  43 ++
 .../GenericElog/Dxe/GenericElog.h             | 194 +++++
 .../GenericElog/Smm/GenericElog.h             | 216 ++++++
 .../GenericFru/GenericFruDriver.h             | 178 +++++
 .../Include/Library/ServerMgmtRtLib.h         | 147 ++++
 .../IpmiFeaturePkg/Include/Ppi/GenericElog.h  |  84 +++
 .../Include/Protocol/BmcAcpiSwChildPolicy.h   |  31 +
 .../Include/Protocol/GenericElog.h            |  99 +++
 .../Include/Protocol/GenericFru.h             | 103 +++
 .../Include/Protocol/RedirFru.h               |  81 ++
 .../IpmiRedirFru/IpmiRedirFru.h               | 149 ++++
 .../BmcAcpiState/BmcAcpiState.c               |  93 +++
 .../BmcAcpiSwChild/BmcAcpiSwChild.c           | 189 +++++
 .../IpmiFeaturePkg/BmcElog/BmcElog.c          | 236 ------
 .../BmcElog/Common/BmcElogCommon.c            | 465 ++++++++++++
 .../IpmiFeaturePkg/BmcElog/Dxe/BmcElog.c      | 287 ++++++++
 .../IpmiFeaturePkg/BmcElog/Pei/BmcElog.c      | 297 ++++++++
 .../IpmiFeaturePkg/BmcElog/Smm/BmcElog.c      | 288 ++++++++
 .../GenericElog/Dxe/GenericElog.c             | 576 +++++++++++++++
 .../GenericElog/Smm/GenericElog.c             | 558 ++++++++++++++
 .../IpmiFeaturePkg/GenericFru/GenericFru.c    |  68 ++
 .../GenericFru/GenericFruDriver.c             | 513 +++++++++++++
 .../IpmiFeaturePkg/IpmiFru/IpmiFru.c          |  67 --
 .../IpmiFeaturePkg/IpmiRedirFru/FruSmbios.c   | 469 ++++++++++++
 .../IpmiRedirFru/IpmiRedirFru.c               | 479 ++++++++++++
 .../ServerManagementLib/ServerManagementLib.c | 696 ++++++++++++++++++
 .../ServerManagementLibNull.c                 | 144 ++++
 48 files changed, 7242 insertions(+), 348 deletions(-)
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/BmcAcpiState.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/BmcAcpiSwChild.inf
 rename Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/{BmcElog.inf => DxeBmcElog.inf} (56%)
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/PeiBmcElog.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/SmmBmcElog.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/GenericElog.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/GenericElog.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/GenericFru.inf
 delete mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiRedirFru.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerManagementLib/ServerManagementLib.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerManagementLibNull/ServerManagementLibNull.inf
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/BmcAcpiState.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/BmcAcpiSwChild.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Common/BmcElogCommon.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Dxe/BmcElog.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Pei/BmcElog.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/GenericElog.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/GenericElog.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/GenericFruDriver.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/ServerMgmtRtLib.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Ppi/GenericElog.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/BmcAcpiSwChildPolicy.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/GenericElog.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/GenericFru.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/RedirFru.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiRedirFru.h
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/BmcAcpiState.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/BmcAcpiSwChild.c
 delete mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/BmcElog.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Common/BmcElogCommon.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Dxe/BmcElog.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Pei/BmcElog.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/GenericElog.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/GenericElog.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/GenericFru.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/GenericFruDriver.c
 delete mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/FruSmbios.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiRedirFru.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerManagementLib/ServerManagementLib.c
 create mode 100644 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerManagementLibNull/ServerManagementLibNull.c

-- 
2.39.2.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#110228): https://edk2.groups.io/g/devel/message/110228
Mute This Topic: https://groups.io/mt/102231765/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: Add server management features
Posted by Chang, Abner via groups.io 6 months ago
[AMD Official Use Only - General]

Hi Gong,
Please note that your code may have conflict as IpmiCommandLib was removed (please check  https://edk2.groups.io/g/devel/message/109510), now we are using the one under MdeModulePKg.
Second, I had cleaned up those server management feature drivers and migrated those to under ManageabilityPkg with Issac RB, please check commit ID from b6a5124e to d6f18259. That would be not good if Intel keeps updating IpmiFeaturePkg. As those drivers are higher level applications on top of transport, It shouldn't have a problem to just update the changes against ManageabilityPkg. Is there any issues Intel met if uses IPMI feature drivers from Manageability? If yes, we can address the issue instead of making them diverging.


Thanks
Abner

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Zhen
> Gong via groups.io
> Sent: Saturday, October 28, 2023 4:11 AM
> To: devel@edk2.groups.io
> Cc: Zhen Gong <zhen.gong@intel.com>
> Subject: [edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: Add
> server management features
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> This patch set adds serveral IPMI features to support server management:
>
> BmcAcpiState: A DXE driver to notify BMC of S0 power state.
> BmcAcpiSwChild: An SMM driver to notify BMC of ACPI power state changes
> and add
>  SEL records.
> BmcElog: PEI, DXE, and SMM drivers to support BMC event log functions.
> GenericElog: DXE and SMM drivers to support generic event log functions.
> GenericFru: A runtime driver to support generic FRU functions.
> IpmiRedirFru: A DXE driver to support BMC FRU functions and generate data
> based
>  on SMBIOS data.
> ServerManagementLib: A library to provide essential functions for server
>  management drivers.
>
>
> Zhen Gong (4):
>   IpmiFeaturePkg: Add Elog drivers
>   IpmiFeaturePkg: Add ServerManagementLib
>   IpmiFeaturePkg: Add ACPI power state drivers
>   IpmiFeaturePkg: Add FRU drivers
>
>  .../IpmiFeaturePkg/IpmiFeaturePkg.dec         |  10 +
>  .../IpmiFeaturePkg/Include/IpmiFeature.dsc    |  13 +-
>  .../IpmiFeaturePkg/Include/PostMemory.fdf     |  10 +-
>  .../IpmiFeaturePkg/Include/PreMemory.fdf      |   1 +
>  .../BmcAcpiState/BmcAcpiState.inf             |  40 +
>  .../BmcAcpiSwChild/BmcAcpiSwChild.inf         |  39 +
>  .../BmcElog/{BmcElog.inf => DxeBmcElog.inf}   |  25 +-
>  .../IpmiFeaturePkg/BmcElog/PeiBmcElog.inf     |  43 ++
>  .../IpmiFeaturePkg/BmcElog/SmmBmcElog.inf     |  44 ++
>  .../GenericElog/Dxe/GenericElog.inf           |  38 +
>  .../GenericElog/Smm/GenericElog.inf           |  38 +
>  .../IpmiFeaturePkg/GenericFru/GenericFru.inf  |  42 ++
>  .../IpmiFeaturePkg/IpmiFru/IpmiFru.inf        |  35 -
>  .../IpmiRedirFru/IpmiRedirFru.inf             |  51 ++
>  .../ServerManagementLib.inf                   |  35 +
>  .../ServerManagementLibNull.inf               |  38 +
>  .../BmcAcpiState/BmcAcpiState.h               |  26 +
>  .../BmcAcpiSwChild/BmcAcpiSwChild.h           |  82 +++
>  .../BmcElog/Common/BmcElogCommon.h            | 144 ++++
>  .../IpmiFeaturePkg/BmcElog/Dxe/BmcElog.h      |  42 ++
>  .../IpmiFeaturePkg/BmcElog/Pei/BmcElog.h      |  44 ++
>  .../IpmiFeaturePkg/BmcElog/Smm/BmcElog.h      |  43 ++
>  .../GenericElog/Dxe/GenericElog.h             | 194 +++++
>  .../GenericElog/Smm/GenericElog.h             | 216 ++++++
>  .../GenericFru/GenericFruDriver.h             | 178 +++++
>  .../Include/Library/ServerMgmtRtLib.h         | 147 ++++
>  .../IpmiFeaturePkg/Include/Ppi/GenericElog.h  |  84 +++
>  .../Include/Protocol/BmcAcpiSwChildPolicy.h   |  31 +
>  .../Include/Protocol/GenericElog.h            |  99 +++
>  .../Include/Protocol/GenericFru.h             | 103 +++
>  .../Include/Protocol/RedirFru.h               |  81 ++
>  .../IpmiRedirFru/IpmiRedirFru.h               | 149 ++++
>  .../BmcAcpiState/BmcAcpiState.c               |  93 +++
>  .../BmcAcpiSwChild/BmcAcpiSwChild.c           | 189 +++++
>  .../IpmiFeaturePkg/BmcElog/BmcElog.c          | 236 ------
>  .../BmcElog/Common/BmcElogCommon.c            | 465 ++++++++++++
>  .../IpmiFeaturePkg/BmcElog/Dxe/BmcElog.c      | 287 ++++++++
>  .../IpmiFeaturePkg/BmcElog/Pei/BmcElog.c      | 297 ++++++++
>  .../IpmiFeaturePkg/BmcElog/Smm/BmcElog.c      | 288 ++++++++
>  .../GenericElog/Dxe/GenericElog.c             | 576 +++++++++++++++
>  .../GenericElog/Smm/GenericElog.c             | 558 ++++++++++++++
>  .../IpmiFeaturePkg/GenericFru/GenericFru.c    |  68 ++
>  .../GenericFru/GenericFruDriver.c             | 513 +++++++++++++
>  .../IpmiFeaturePkg/IpmiFru/IpmiFru.c          |  67 --
>  .../IpmiFeaturePkg/IpmiRedirFru/FruSmbios.c   | 469 ++++++++++++
>  .../IpmiRedirFru/IpmiRedirFru.c               | 479 ++++++++++++
>  .../ServerManagementLib/ServerManagementLib.c | 696
> ++++++++++++++++++
>  .../ServerManagementLibNull.c                 | 144 ++++
>  48 files changed, 7242 insertions(+), 348 deletions(-)
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/Bmc
> AcpiState.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/B
> mcAcpiSwChild.inf
>  rename
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/{BmcElog.i
> nf => DxeBmcElog.inf} (56%)
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/PeiBmcElo
> g.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/SmmBmc
> Elog.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/Ge
> nericElog.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/
> GenericElog.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/Generic
> Fru.inf
>  delete mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiR
> edirFru.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerMana
> gementLib/ServerManagementLib.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerMana
> gementLibNull/ServerManagementLibNull.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/Bmc
> AcpiState.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/B
> mcAcpiSwChild.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Common/
> BmcElogCommon.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Dxe/BmcE
> log.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Pei/BmcEl
> og.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/Bmc
> Elog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/Ge
> nericElog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/
> GenericElog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/Generic
> FruDriver.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/Ser
> verMgmtRtLib.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Ppi/Generic
> Elog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/B
> mcAcpiSwChildPolicy.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/G
> enericElog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/G
> enericFru.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/R
> edirFru.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiR
> edirFru.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/Bmc
> AcpiState.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/B
> mcAcpiSwChild.c
>  delete mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/BmcElog.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Common/
> BmcElogCommon.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Dxe/BmcE
> log.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Pei/BmcEl
> og.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/Bmc
> Elog.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/Ge
> nericElog.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/
> GenericElog.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/Generic
> Fru.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/Generic
> FruDriver.c
>  delete mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/FruS
> mbios.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiR
> edirFru.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerMana
> gementLib/ServerManagementLib.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerMana
> gementLibNull/ServerManagementLibNull.c
>
> --
> 2.39.2.windows.1
>
>
>
> 
>



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#110254): https://edk2.groups.io/g/devel/message/110254
Mute This Topic: https://groups.io/mt/102231765/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: Add server management features
Posted by Zhen Gong 6 months ago
Hi Abner,

Thanks for the heads-up.
I caught your commit right before submitting the patch. MdeModulePKg is already consumed by all libraries referencing the header.
However there's a merge conflict now and I just sent out a v2 version to address it.

Regarding to the migration to ManageabilityPkg, we have evaluated whether to adopt it directly.
Given the long time frame of silicon development, we are not going to make big changes for current platforms.
And we chose to keep using IpmiFeaturePkg and upstream drivers with minimum changes required for now.

The decision is more about lifecycle management, other than technical standpoint.
Going forward, we will re-evaluate the open and bring it to newer platforms.

Thanks,
Zhen

-----Original Message-----
From: Chang, Abner <Abner.Chang@amd.com> 
Sent: Saturday, October 28, 2023 6:59 PM
To: devel@edk2.groups.io; Gong, Zhen <zhen.gong@intel.com>
Subject: RE: [edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: Add server management features

[AMD Official Use Only - General]

Hi Gong,
Please note that your code may have conflict as IpmiCommandLib was removed (please check  https://edk2.groups.io/g/devel/message/109510), now we are using the one under MdeModulePKg.
Second, I had cleaned up those server management feature drivers and migrated those to under ManageabilityPkg with Issac RB, please check commit ID from b6a5124e to d6f18259. That would be not good if Intel keeps updating IpmiFeaturePkg. As those drivers are higher level applications on top of transport, It shouldn't have a problem to just update the changes against ManageabilityPkg. Is there any issues Intel met if uses IPMI feature drivers from Manageability? If yes, we can address the issue instead of making them diverging.


Thanks
Abner

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Zhen 
> Gong via groups.io
> Sent: Saturday, October 28, 2023 4:11 AM
> To: devel@edk2.groups.io
> Cc: Zhen Gong <zhen.gong@intel.com>
> Subject: [edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: Add 
> server management features
>
> Caution: This message originated from an External Source. Use proper 
> caution when opening attachments, clicking links, or responding.
>
>
> This patch set adds serveral IPMI features to support server management:
>
> BmcAcpiState: A DXE driver to notify BMC of S0 power state.
> BmcAcpiSwChild: An SMM driver to notify BMC of ACPI power state 
> changes and add  SEL records.
> BmcElog: PEI, DXE, and SMM drivers to support BMC event log functions.
> GenericElog: DXE and SMM drivers to support generic event log functions.
> GenericFru: A runtime driver to support generic FRU functions.
> IpmiRedirFru: A DXE driver to support BMC FRU functions and generate 
> data based  on SMBIOS data.
> ServerManagementLib: A library to provide essential functions for 
> server  management drivers.
>
>
> Zhen Gong (4):
>   IpmiFeaturePkg: Add Elog drivers
>   IpmiFeaturePkg: Add ServerManagementLib
>   IpmiFeaturePkg: Add ACPI power state drivers
>   IpmiFeaturePkg: Add FRU drivers
>
>  .../IpmiFeaturePkg/IpmiFeaturePkg.dec         |  10 +
>  .../IpmiFeaturePkg/Include/IpmiFeature.dsc    |  13 +-
>  .../IpmiFeaturePkg/Include/PostMemory.fdf     |  10 +-
>  .../IpmiFeaturePkg/Include/PreMemory.fdf      |   1 +
>  .../BmcAcpiState/BmcAcpiState.inf             |  40 +
>  .../BmcAcpiSwChild/BmcAcpiSwChild.inf         |  39 +
>  .../BmcElog/{BmcElog.inf => DxeBmcElog.inf}   |  25 +-
>  .../IpmiFeaturePkg/BmcElog/PeiBmcElog.inf     |  43 ++
>  .../IpmiFeaturePkg/BmcElog/SmmBmcElog.inf     |  44 ++
>  .../GenericElog/Dxe/GenericElog.inf           |  38 +
>  .../GenericElog/Smm/GenericElog.inf           |  38 +
>  .../IpmiFeaturePkg/GenericFru/GenericFru.inf  |  42 ++
>  .../IpmiFeaturePkg/IpmiFru/IpmiFru.inf        |  35 -
>  .../IpmiRedirFru/IpmiRedirFru.inf             |  51 ++
>  .../ServerManagementLib.inf                   |  35 +
>  .../ServerManagementLibNull.inf               |  38 +
>  .../BmcAcpiState/BmcAcpiState.h               |  26 +
>  .../BmcAcpiSwChild/BmcAcpiSwChild.h           |  82 +++
>  .../BmcElog/Common/BmcElogCommon.h            | 144 ++++
>  .../IpmiFeaturePkg/BmcElog/Dxe/BmcElog.h      |  42 ++
>  .../IpmiFeaturePkg/BmcElog/Pei/BmcElog.h      |  44 ++
>  .../IpmiFeaturePkg/BmcElog/Smm/BmcElog.h      |  43 ++
>  .../GenericElog/Dxe/GenericElog.h             | 194 +++++
>  .../GenericElog/Smm/GenericElog.h             | 216 ++++++
>  .../GenericFru/GenericFruDriver.h             | 178 +++++
>  .../Include/Library/ServerMgmtRtLib.h         | 147 ++++
>  .../IpmiFeaturePkg/Include/Ppi/GenericElog.h  |  84 +++
>  .../Include/Protocol/BmcAcpiSwChildPolicy.h   |  31 +
>  .../Include/Protocol/GenericElog.h            |  99 +++
>  .../Include/Protocol/GenericFru.h             | 103 +++
>  .../Include/Protocol/RedirFru.h               |  81 ++
>  .../IpmiRedirFru/IpmiRedirFru.h               | 149 ++++
>  .../BmcAcpiState/BmcAcpiState.c               |  93 +++
>  .../BmcAcpiSwChild/BmcAcpiSwChild.c           | 189 +++++
>  .../IpmiFeaturePkg/BmcElog/BmcElog.c          | 236 ------
>  .../BmcElog/Common/BmcElogCommon.c            | 465 ++++++++++++
>  .../IpmiFeaturePkg/BmcElog/Dxe/BmcElog.c      | 287 ++++++++
>  .../IpmiFeaturePkg/BmcElog/Pei/BmcElog.c      | 297 ++++++++
>  .../IpmiFeaturePkg/BmcElog/Smm/BmcElog.c      | 288 ++++++++
>  .../GenericElog/Dxe/GenericElog.c             | 576 +++++++++++++++
>  .../GenericElog/Smm/GenericElog.c             | 558 ++++++++++++++
>  .../IpmiFeaturePkg/GenericFru/GenericFru.c    |  68 ++
>  .../GenericFru/GenericFruDriver.c             | 513 +++++++++++++
>  .../IpmiFeaturePkg/IpmiFru/IpmiFru.c          |  67 --
>  .../IpmiFeaturePkg/IpmiRedirFru/FruSmbios.c   | 469 ++++++++++++
>  .../IpmiRedirFru/IpmiRedirFru.c               | 479 ++++++++++++
>  .../ServerManagementLib/ServerManagementLib.c | 696
> ++++++++++++++++++
>  .../ServerManagementLibNull.c                 | 144 ++++
>  48 files changed, 7242 insertions(+), 348 deletions(-)  create mode 
> 100644 
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/Bmc
> AcpiState.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/B
> mcAcpiSwChild.inf
>  rename
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/{BmcElog.i
> nf => DxeBmcElog.inf} (56%)
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/PeiBmcElo
> g.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/SmmBmc
> Elog.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/Ge
> nericElog.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/
> GenericElog.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/Generic
> Fru.inf
>  delete mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiR
> edirFru.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerMana
> gementLib/ServerManagementLib.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerMana
> gementLibNull/ServerManagementLibNull.inf
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/Bmc
> AcpiState.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/B
> mcAcpiSwChild.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Common/
> BmcElogCommon.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Dxe/BmcE
> log.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Pei/BmcEl
> og.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/Bmc
> Elog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/Ge
> nericElog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/
> GenericElog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/Generic
> FruDriver.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/Ser
> verMgmtRtLib.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Ppi/Generic
> Elog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/B
> mcAcpiSwChildPolicy.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/G
> enericElog.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/G
> enericFru.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Protocol/R
> edirFru.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiR
> edirFru.h
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiState/Bmc
> AcpiState.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcAcpiSwChild/B
> mcAcpiSwChild.c
>  delete mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/BmcElog.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Common/
> BmcElogCommon.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Dxe/BmcE
> log.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Pei/BmcEl
> og.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/Bmc
> Elog.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Dxe/Ge
> nericElog.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericElog/Smm/
> GenericElog.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/Generic
> Fru.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericFru/Generic
> FruDriver.c
>  delete mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFru/IpmiFru.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/FruS
> mbios.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiRedirFru/IpmiR
> edirFru.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerMana
> gementLib/ServerManagementLib.c
>  create mode 100644
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/ServerMana
> gementLibNull/ServerManagementLibNull.c
>
> --
> 2.39.2.windows.1
>
>
>
> 
>



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