Re: [PATCH v1 1/2] MdeModulePkg: Add EDKII_PCI_DEVICE_PPI definition


Wu, Hao A
 

From the device controllers perspective, current drive implementation needs the below information:
* AHCI: HC MMIO BAR & DevicePath
* NVMe: HC MMIO BAR & DevicePath
* UFS: HC MMIO BAR
* SD/MMC: HC MMIO BAR
* USB - XHCI: HC MMIO BAR & USB controller type (I think this can be identified by consuming the HC PCI configuration space)
* USB - EHCI: Same as XHCI
* USB - UHCI: Same as XHCI

I think the interface defined in EDKII_PCI_DEVICE_PPI is sufficient for above needs.
Acked-by: Hao A Wu <hao.a.wu@...>

Best Regards,
Hao Wu

-----Original Message-----
From: Czajkowski, Maciej <maciej.czajkowski@...>
Sent: Monday, June 6, 2022 8:45 PM
To: devel@edk2.groups.io
Cc: Wu, Hao A <hao.a.wu@...>; Ni, Ray <ray.ni@...>; Gao, Liming
<gaoliming@...>
Subject: [edk2-devel][PATCH v1 1/2] MdeModulePkg: Add
EDKII_PCI_DEVICE_PPI definition

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

This commit introduces EDKII_PCI_DEVICE_PPI. The purpose of this PPI is to
provide a way of accessing PCI devices to drvice drivers such as NvmExpressPei
or AhciPei.

Cc: Hao A Wu <hao.a.wu@...>
Cc: Ray Ni <ray.ni@...>
Cc: Liming Gao <gaoliming@...>
Signed-off-by: Maciej Czajkowski <maciej.czajkowski@...>
---
MdeModulePkg/Include/Ppi/PciDevice.h | 32 ++++++++++++++++++++
MdeModulePkg/MdeModulePkg.dec | 3 ++
2 files changed, 35 insertions(+)

diff --git a/MdeModulePkg/Include/Ppi/PciDevice.h
b/MdeModulePkg/Include/Ppi/PciDevice.h
new file mode 100644
index 000000000000..3e391c61f6d9
--- /dev/null
+++ b/MdeModulePkg/Include/Ppi/PciDevice.h
@@ -0,0 +1,32 @@
+/** @file++ Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>+
SPDX-License-Identifier: BSD-2-Clause-Patent++**/++#ifndef
_EDKII_PCI_DEVICE_PPI_H_+#define _EDKII_PCI_DEVICE_PPI_H_++#include
<Protocol/PciIo.h>+#include <Protocol/DevicePath.h>++///+/// Global ID for
the EDKII_PCI_DEVICE_PPI_GUID.+///+#define EDKII_PCI_DEVICE_PPI_GUID \+
{ \+ 0x1597ab4f, 0xd542, 0x4efe, { 0x9a, 0xf7, 0xb2, 0x44, 0xec, 0x54, 0x4c,
0x0b } \+ }++///+/// PCI Device PPI structure.+///+typedef struct {+
EFI_PCI_IO_PROTOCOL PciIo;+ EFI_DEVICE_PATH_PROTOCOL
*DevicePath;+} EDKII_PCI_DEVICE_PPI;++extern EFI_GUID
gEdkiiPeiPciDevicePpiGuid;++#endifdiff --git
a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
index 2bcb9f9453af..7d989108324a 100644
--- a/MdeModulePkg/MdeModulePkg.dec
+++ b/MdeModulePkg/MdeModulePkg.dec
@@ -509,6 +509,9 @@ [Ppis]
## Include/Ppi/NvmExpressPassThru.h gEdkiiPeiNvmExpressPassThruPpiGuid
= { 0x6af31b2c, 0x3be, 0x46c1, { 0xb1, 0x2d, 0xea, 0x4a, 0x36, 0xdf, 0xa7,
0x4c } } + ## Include/Ppi/PciDevice.h+ gEdkiiPeiPciDevicePpiGuid =
{ 0x1597ab4f, 0xd542, 0x4efe, { 0x9a, 0xf7, 0xb2, 0x44, 0xec, 0x54, 0x4c,
0x0b } }+ ## Include/Ppi/CapsuleOnDisk.h gEdkiiPeiCapsuleOnDiskPpiGuid
= { 0x71a9ea61, 0x5a35, 0x4a5d, { 0xac, 0xef, 0x9c, 0xf8, 0x6d, 0x6d, 0x67,
0xe0 } } gEdkiiPeiBootInCapsuleOnDiskModePpiGuid = { 0xb08a11e4, 0xe2b7,
0x4b75, { 0xb5, 0x15, 0xaf, 0x61, 0x6, 0x68, 0xbf, 0xd1 } }--
2.27.0.windows.1

Join {devel@edk2.groups.io to automatically receive all group messages.