Hi,
I was implementing "EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL" protocol for PCI 3.0 controlller, I have few more basic queries like: (1) In function: EFI_STATUS EFIAPI RootBridgeIoMemWrite ( IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, IN VOID *Buffer ); The description says: "Enables a PCI driver to access PCI controller registers in the PCI root bridge memory space. The Mem.Read(), and Mem.Write() functions enable a driver to access PCI controller registers in the PCI root bridge memory space." What does this mean? I thought that Mem.Read/Mem.Write means reading memory space that is kept/allocated to various memory devices. But this description seems to say different. (2) Similarly "Enables a PCI driver to access PCI controller registers in the PCI root bridge I/O space." For function: EFI_STATUS EFIAPI RootBridgeIoIoRead ( IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 UserAddress, IN UINTN Count, OUT VOID *UserBuffer ); What is this PCI root bridge I/O and Memory space? As I have seen that these Mem.Read/mem.Write and Io.Read/Io.Write functions have been used by PCI Bus driver for reading "BarIndex" at various stages. Aren't all BAR registers in PCI configuration space? Kindly help in clearing these doubts. Thanks and Regards, Shaveta
------------------------------------------------------------------------------
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel