>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...@intel.com> Best Regards, Hao Wu > -----Original Message----- > From: Czajkowski, Maciej <maciej.czajkow...@intel.com> > Sent: Monday, June 6, 2022 8:45 PM > To: devel@edk2.groups.io > Cc: Wu, Hao A <hao.a...@intel.com>; Ni, Ray <ray...@intel.com>; Gao, Liming > <gaolim...@byosoft.com.cn> > 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...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Signed-off-by: Maciej Czajkowski <maciej.czajkow...@intel.com> > --- > 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 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#90345): https://edk2.groups.io/g/devel/message/90345 Mute This Topic: https://groups.io/mt/91575906/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-