Hi,
I am writing a PCI driver(Host Bridge) code for ARM platform with real devices
like e1000 NIC card on PCI bus.
I have written a part of PCI Root Complex Initialization code, but have few
doubts :
(1) Is all of the following functions have platform specific code, or they
can be re-used from any of the PCI code like ARmJunoPkg etc? Are all these
functions definitions mendatory?
* PciHbRaNotifyPhase, // ResAlloc.NotifyPhase
* PciHbRaGetNextRootBridge, // ResAlloc.GetNextRootBridge
* PciHbRaGetAllocAttributes, // ResAlloc.GetAllocAttributes
* PciHbRaStartBusEnumeration, // ResAlloc.StartBusEnumeration
* PciHbRaSetBusNumbers, // ResAlloc.SetBusNumbers
* PciHbRaSubmitResources, // ResAlloc.SubmitResources
* PciHbRaGetProposedResources, // ResAlloc.GetProposedResources
* PciHbRaPreprocessController
(2) Should "PCI bus scan for devices" kind of code be written as part of PCI
Root Bridge code or it should be re-used from
MdeModulePkg/Bus/Pci/ code as it is?
(3) As I want to write e1000 PCI NIC card driver over it, is there any
existing code for the same?
Thanks and Regards,
Shaveta
From: Sharma Bhupesh-B45370
Sent: Wednesday, May 13, 2015 8:20 PM
To: [email protected]
Cc: Leekha Shaveta-B20052
Subject: RE: Query UEFI : PCIE Driver for Armv8 platform
Thanks for the pointers, Olivier.
Regards,
Bhupesh
From: Olivier Martin [mailto:[email protected]]
Sent: Wednesday, May 13, 2015 8:10 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: [edk2] Query UEFI : PCIE Driver for Armv8 platform
Are lucky because I actually pushed the PCI Root Complex source code for ARM
Juno development board R1 (Revision 1) yesterday in EDK2.
You should be able to find the code under
ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe
I am guessing what you name 'ATU' is the logic to translate AXI bus <-> PCI
bus. As far as I have seen so far, this logic is vendor specific.
You can see this initialization of the translation block for this PCI Root
Complex in this file:
ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/XPressRich3.c
From: Leekha Shaveta [mailto:[email protected]]
Sent: 13 May 2015 13:09
To: [email protected]<mailto:[email protected]>
Subject: [edk2] Query UEFI : PCIE Driver for Armv8 platform
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.
Regards,
Shaveta
-- IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended recipient,
please notify the sender immediately and do not disclose the contents to any
other person, use it for any purpose, or store or copy the information in any
medium. Thank you.
ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered
in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ,
Registered in England & Wales, Company No: 2548782
------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel