On 05/13/15 14:08, Leekha Shaveta wrote:
> Hi,
> 
>  
> 
> I was looking for PCIE driver/Root Bridge implementation for ARMv8 kind
> of platforms and have referred some code in files:
> 
> ·        
> ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciRootBridgeIo.c
> 
> ·        
> ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciHostBridge.c
> 
>  
> 
> But I couldn’t see ATU programming code in this implementation, AFAIK
> ATU programming is required for any outbound and inbound transaction of PCI.
> 
> How the IO translation is being done in this?
> 
> Also what is the context of “aperture” used in this code?
> 
>  
> 
> Kindly help in clearing these doubts.

"ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe" is a port from
the x86-specific "PcAtChipsetPkg/PciHostBridgeDxe". It is not meant to
run on physical hardware -- it is meant to be run in QEMU/KVM virtual
machines, with ARM or AARCH64 guest architecture.

You can find out how the driver was gradually ported by browsing the
commit history of the directory. That history should answer your
questions about "aperture" and "IO translation". Alternatively, the
final version of the patchset is archived at

http://thread.gmane.org/gmane.comp.bios.tianocore.devel/12861

The purpose of the port was to provide the platform independent PCI bus
UEFI driver in MdeModulePkg/Bus/Pci/PciBusDxe/ to enumerate virtual
devices, producing PciIo protocol instances for them. This way various
(virtual and non-virtual) PCI device drivers could be stacked on top of
the corresponding virtual PCI devices, such as:
- OvmfPkg/QemuVideoDxe for VGA
- virtio drivers using the virtio-pci backend
- USB host and device drivers (UhciDxe, EhciDxe, XhciDxe, UsbBusDxe,
  UsbKbDxe)

If you are interested in a PCI host bridge driver that runs on physical
AARCH64 platforms, please talk to your vendor; hopefully they'll give
you access to their firmware code. Or, talk to Linaro perhaps.

Here's an example (not sure how fresh it is):

https://github.com/mlangsdorf/linaro-edk2/tree/acpi-share/ArmPlatformPkg/APMXGenePkg/Bus/Pci/PciHostBridgeDxe
https://github.com/mlangsdorf/linaro-edk2/tree/acpi-share/ArmPlatformPkg/APMXGenePkg/Modules/MdeModulePkg/Bus/Pci/PciBusDxe

Thanks
Laszlo

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to