[edk2-devel] [PATCH V5 1/1] EmbeddedPkg: DwMmcHcDxe: Add support for Designware SDMMC driver

Michael Brown mcb30 at ipxe.org
Tue Apr 27 21:40:09 UTC 2021


On 27/04/2021 18:31, Andrew Fish via groups.io wrote:
> One trick people have pulled in the past is to write a driver that 
> produces a “fake” PCI IO Protocol. The “fake” PCI IO driver abstracts 
> how the MMIO device shows up on the platform. This works well if the 
> MMIO device is really the same IP block as a PCI device. This usually 
> maps to the PCI BAR being the same thing as the magic MMIO range. The 
> “fake” PCI IO Protocol also abstracts platform specific DMA rules from 
> the generic driver.

Slightly off-topic, but I've always been curious about this: given that 
the entire purpose of PCI BARs is to allow for the use of 
straightforward MMIO operations, in which standard CPU read/write 
instructions can be used to access device registers with zero overhead 
and no possible error conditions, why do the 
EFI_PCI_IO_PROTOCOL.Mem.Read (and related) abstractions exist?  They 
seem to add a lot of complexity for negative benefit, and I'd be 
interested to know if there was some reason why the design was chosen.

Thanks,

Michael


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#74504): https://edk2.groups.io/g/devel/message/74504
Mute This Topic: https://groups.io/mt/81516685/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list