Thanks Eugene!

Few more doubts:


(1)    What exactly this "case EfiPciHostBridgeAllocateResources" of 
NotifyPhase does?

(2)    In "StartBusEnumeration" function of  PCI_HOST_BRIDGE, it
/ Fill an ACPI descriptor table with the Bus Number Range. This information 
will be used by the PCI Bus driver

  // to set bus numbers to PCI-to-PCI bridge.

Is PCI bus implementation is ACPI based only?

(3)    The PCI controller i am programming, does  iATU (Internal address 
translation unit) programming for accessing PCI IO, Mem and config space. When 
this programming should happen? During RootBridge init time?

(4)    The RootBridge protocol functions like : PciIoRead/PciIoWrite, 
PciMemRead/PciMemWrite, PciPciRead/PciPciWrite

They all use MmioRead/MmioWrite internally. Also PCI controller registers are 
already memory mapped.

So what is the significance of:

"Reading/Writing PCI controller registers in the PCI root bridge I/O space"

"Reading/Writing PCI controller registers in the PCI root bridge Memory space"

"Reading/Writing PCI controller registers in the PCI root bridge Configuration 
space"


Thanks and Regards,
Shaveta



From: Cohen, Eugene [mailto:eug...@hp.com]
Sent: Tuesday, June 02, 2015 7:20 PM
To: edk2-devel@lists.sourceforge.net
Cc: olivier.mar...@arm.com
Subject: Re: [edk2] Query UEFI : PCIE Driver for Armv8 platform


?  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?

You have to implement the host bridge and root bridge protocols.  When you 
implement a protocol you must implement the functions.  Some of the functions 
don't have to do anything (like some of the NotifyPhase case statements).


?  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?

The PCI bus driver already does a scan and enumeration.  All you need to do is 
support the root/host bridge (provide config cycle generation, provide address 
ranges for mapping into memory spaces, etc).


From: Leekha Shaveta [mailto:shav...@freescale.com]
Sent: Tuesday, June 02, 2015 1:20 AM
To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Cc: olivier.mar...@arm.com<mailto:olivier.mar...@arm.com>
Subject: Re: [edk2] Query UEFI : PCIE Driver for Armv8 platform

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: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Cc: Leekha Shaveta-B20052
Subject: RE: Query UEFI : PCIE Driver for Armv8 platform

Thanks for the pointers, Olivier.

Regards,
Bhupesh

From: Olivier Martin [mailto:olivier.mar...@arm.com]
Sent: Wednesday, May 13, 2015 8:10 PM
To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
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:shav...@freescale.com]
Sent: 13 May 2015 13:09
To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
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
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to