On Thu, Nov 14, 2013 at 08:42:39AM -0800, Andrew Fish wrote:
[...]> >
>
> >From a UEFI spec perspective you only need to produce
EFI_PCI_ROOT_BRIGE_IO_PROTOCOL and a EFI_PCI_IO_PROTOCOL per device. This is all
that is required to make generic UEFI code (all the PCI drivers, shell commands,
etc.) work.
>
> The
https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/
driver assumes you are following the PI Spec model and a full PCI enumeration is
requires and a set of chipset/platform specific protocols are provided to make
the PCI enumerate code generic.
>
> There are other examples in the edk2 where PCI enumeration is not required:
> 1) DUET, as the PCI enumeration has already been done. You can see in
https://svn.code.sf.net/p/edk2/code/trunk/edk2/DuetPkg/DuetPkgX64.dsc that the
UEFI required protocols for PCI are implemented in
DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf and
DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf
> 2) The BeagleBoard does not have PCI, but it produces a fake set of PCI
interfaces to reuse some of the EFI PCI drivers. See
https://svn.code.sf.net/p/edk2/code/trunk/edk2/Omap35xxPkg/PciEmulation/
>
> Hope this helps,
>
Thanks for the pointer, I will see what I can do. :-)
Wei.