Thanks Andrew!

Is there some PCI NIC card or E1000 driver (PCI device driver) written on top 
of PCI bus driver, any references?

One is Intel's e1000 driver,  which is proprietary and is requested by the -D 
E1000_ENABLE build flag.

I have seen in logs that some libraries are referred like:

NetLib|MdeModulePkg/Library/DxeNetLib/
IpIoLib|MdeModulePkg/Library/DxeIpIoLib/
UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/
DpcLib|MdeModulePkg/Library/DxeDpcLib/


Are these required for PCI NIC driver?

Thanks and regards,
Shaveta

-----Original Message-----
From: Andrew Fish [mailto:af...@apple.com] 
Sent: Friday, June 05, 2015 10:50 PM
To: Leekha Shaveta-B20052
Cc: edk2-devel@lists.sourceforge.net; olivier.mar...@arm.com
Subject: Re: [edk2] Query UEFI : PCIE Driver for Armv8 platform


> On Jun 5, 2015, at 4:23 AM, Leekha Shaveta <shav...@freescale.com> wrote:
> 
> Thanks Andrew!
> 
> Few more Doubts :
>       How ACPI is defining PCI resources? 
>       What are these PCI resources and their functions? Are these resources 
> are like some regions in "PCI Express space”

Leekha you need to think about it from the hardware point of view….

The PCI root bridge sits on the CPU bus and it produces PCI. So that PCI root 
bridge has to be configured to forward transactions. 
From the firmware point of view you are configuring the chip to decode memory 
addresses and resources to forward them to PCI. 
From an OS (or generic PCI bus driver) you are defining the resource pool that 
is available to config PCI devices. So assign bus numbers, and populate BARs. 

> ?
> 

> As I was referring ArmJunoPkg for PCI Host Bridge implementation. And found 
> this ACPI configuration used:
>> 
>> RESOURCE_CONFIGURATION Configuration = {  
>> {{ACPI_ADDRESS_SPACE_DESCRIPTOR, 0x2B, ACPI_ADDRESS_SPACE_TYPE_IO , 0, 0, 0, 
>> 0, 0, 0, 0},
>>   {ACPI_ADDRESS_SPACE_DESCRIPTOR, 0x2B, ACPI_ADDRESS_SPACE_TYPE_MEM, 0, 0, 
>> 32, 0, 0, 0, 0},
>>   {ACPI_ADDRESS_SPACE_DESCRIPTOR, 0x2B, ACPI_ADDRESS_SPACE_TYPE_MEM, 0, 6, 
>> 32, 0, 0, 0, 0},
>>   {ACPI_ADDRESS_SPACE_DESCRIPTOR, 0x2B, ACPI_ADDRESS_SPACE_TYPE_MEM, 0, 0, 
>> 64, 0, 0, 0, 0},
>>   {ACPI_ADDRESS_SPACE_DESCRIPTOR, 0x2B, ACPI_ADDRESS_SPACE_TYPE_MEM, 0, 6, 
>> 64, 0, 0, 0, 0},
>>   {ACPI_ADDRESS_SPACE_DESCRIPTOR, 0x2B, ACPI_ADDRESS_SPACE_TYPE_BUS, 0, 0, 
>> 0, 0, 255, 0, 255}},
>>   {ACPI_END_TAG_DESCRIPTOR, 0}
>> };
>> 
>> Hi Olivier,
>> Can you please help in understanding this resource configuration ?
>> Here you seem to be specifying one IO, 4 Mem and 1 Bus space. Why 6 of them 
>> and how do they differ?
> 
> On which basis 6 resources are given here?
> 

These are the basic resource types supported by PCI.

I/O so the inb outb instructions on X86  (IO BAR) 32-bit Prefetch and 
non-Prefetch memory (Memory BAR) 64-bit Prefetch and non-Prefetch memory  
(Memory BAR) PCI Bus numbers. (Bus Number)

Thanks,

Andrew Fish

> Thanks and Regards,
> Shaveta
> 
------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to