Thanks Laszlo!

Going through all these patches and code for reference, will get back to you in 
case of specific queries.

Thanks and Regards,
Shaveta

-----Original Message-----
From: Laszlo Ersek [mailto:ler...@redhat.com] 
Sent: Wednesday, May 13, 2015 7:05 PM
To: Leekha Shaveta-B20052
Cc: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] Query UEFI : PCIE Driver for Armv8 platform

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