On 08/05/17 23:38, Marvin H?user wrote:
> Dear developers,
> While browsing the KabylakeSiPkg code, I noticed that 64-bit registers are 
> read directly via MmioRead64() as there is no PciRead64() function.
> Is there a specific reason there are no PciRead64() and PciExpressRead64() 
> functions or were they simply not needed previously?

Validity of 64-bit accesses to PCI config space is platform dependent
[*] and I guess the PciLib designers didn't want to deviate from the
common interface pattern that PciReadXX() always succeeds (as long as
the input parameter is valid), regardless of XX.

[*] The UEFI spec repeats the following paragraph in several places:

    The I/O operations are carried out exactly as requested. The caller
    is responsible satisfying any alignment and I/O width restrictions
    that the PCI controller on a platform might require. For example on
    some platforms, width requests of EfiPciIoWidthUint64 do not work.

edk2-devel mailing list

Reply via email to