Print resource allocation/bar programming when PciBus driver does PCI BUS enumeration.

Signed-off-by: niruiyu
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12087 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
niruiyu
2011-08-04 09:08:09 +00:00
parent 48c0731857
commit 8db6a82c50
6 changed files with 326 additions and 290 deletions

View File

@ -1,7 +1,7 @@
/** @file
PCI resouces support functions implemntation for PCI Bus module.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -724,17 +724,6 @@ CreateVfResourceNode (
{
PCI_RESOURCE_NODE *Node;
DEBUG ((
EFI_D_INFO,
"PCI-IOV B%x.D%x.F%x - VfResource (Bar - 0x%x) (Type - 0x%x) (Length - 0x%x)\n",
(UINTN)PciDev->BusNumber,
(UINTN)PciDev->DeviceNumber,
(UINTN)PciDev->FunctionNumber,
(UINTN)Bar,
(UINTN)ResType,
(UINTN)Length
));
Node = CreateResourceNode (PciDev, Length, Alignment, Bar, ResType, ResUsage);
if (Node == NULL) {
return Node;
@ -1403,17 +1392,6 @@ ProgramVfBar (
);
Node->PciDev->VfPciBar[Node->Bar].BaseAddress = Address;
DEBUG ((
EFI_D_INFO,
"PCI-IOV B%x.D%x.F%x - VF Bar (Offset - 0x%x) 32Mem (Address - 0x%x)\n",
(UINTN)Node->PciDev->BusNumber,
(UINTN)Node->PciDev->DeviceNumber,
(UINTN)Node->PciDev->FunctionNumber,
(UINTN)(Node->PciDev->VfPciBar[Node->Bar]).Offset,
(UINTN)Address
));
break;
case PciBarTypeMem64:
@ -1440,17 +1418,6 @@ ProgramVfBar (
);
Node->PciDev->VfPciBar[Node->Bar].BaseAddress = Address;
DEBUG ((
EFI_D_INFO,
"PCI-IOV B%x.D%x.F%x - VF Bar (Offset - 0x%x) 64Mem (Address - 0x%lx)\n",
(UINTN)Node->PciDev->BusNumber,
(UINTN)Node->PciDev->DeviceNumber,
(UINTN)Node->PciDev->FunctionNumber,
(UINTN)(Node->PciDev->VfPciBar[Node->Bar]).Offset,
(UINT64)Address
));
break;
case PciBarTypeIo16:
@ -1727,123 +1694,6 @@ InitializeResourcePool (
InitializeListHead (&ResourcePool->ChildList);
}
/**
Get all resource information for given Pci device.
@param PciDev Pci device instance.
@param IoBridge Io resource node.
@param Mem32Bridge 32-bit memory node.
@param PMem32Bridge 32-bit Pmemory node.
@param Mem64Bridge 64-bit memory node.
@param PMem64Bridge 64-bit PMemory node.
@param IoPool Link list header for Io resource.
@param Mem32Pool Link list header for 32-bit memory.
@param PMem32Pool Link list header for 32-bit Prefetchable memory.
@param Mem64Pool Link list header for 64-bit memory.
@param PMem64Pool Link list header for 64-bit Prefetchable memory.
**/
VOID
GetResourceMap (
IN PCI_IO_DEVICE *PciDev,
IN PCI_RESOURCE_NODE **IoBridge,
IN PCI_RESOURCE_NODE **Mem32Bridge,
IN PCI_RESOURCE_NODE **PMem32Bridge,
IN PCI_RESOURCE_NODE **Mem64Bridge,
IN PCI_RESOURCE_NODE **PMem64Bridge,
IN PCI_RESOURCE_NODE *IoPool,
IN PCI_RESOURCE_NODE *Mem32Pool,
IN PCI_RESOURCE_NODE *PMem32Pool,
IN PCI_RESOURCE_NODE *Mem64Pool,
IN PCI_RESOURCE_NODE *PMem64Pool
)
{
PCI_RESOURCE_NODE *Temp;
LIST_ENTRY *CurrentLink;
CurrentLink = IoPool->ChildList.ForwardLink;
//
// Get Io resource map
//
while (CurrentLink != &IoPool->ChildList) {
Temp = RESOURCE_NODE_FROM_LINK (CurrentLink);
if (Temp->PciDev == PciDev) {
*IoBridge = Temp;
}
CurrentLink = CurrentLink->ForwardLink;
}
//
// Get Mem32 resource map
//
CurrentLink = Mem32Pool->ChildList.ForwardLink;
while (CurrentLink != &Mem32Pool->ChildList) {
Temp = RESOURCE_NODE_FROM_LINK (CurrentLink);
if (Temp->PciDev == PciDev) {
*Mem32Bridge = Temp;
}
CurrentLink = CurrentLink->ForwardLink;
}
//
// Get Pmem32 resource map
//
CurrentLink = PMem32Pool->ChildList.ForwardLink;
while (CurrentLink != &PMem32Pool->ChildList) {
Temp = RESOURCE_NODE_FROM_LINK (CurrentLink);
if (Temp->PciDev == PciDev) {
*PMem32Bridge = Temp;
}
CurrentLink = CurrentLink->ForwardLink;
}
//
// Get Mem64 resource map
//
CurrentLink = Mem64Pool->ChildList.ForwardLink;
while (CurrentLink != &Mem64Pool->ChildList) {
Temp = RESOURCE_NODE_FROM_LINK (CurrentLink);
if (Temp->PciDev == PciDev) {
*Mem64Bridge = Temp;
}
CurrentLink = CurrentLink->ForwardLink;
}
//
// Get Pmem64 resource map
//
CurrentLink = PMem64Pool->ChildList.ForwardLink;
while (CurrentLink != &PMem64Pool->ChildList) {
Temp = RESOURCE_NODE_FROM_LINK (CurrentLink);
if (Temp->PciDev == PciDev) {
*PMem64Bridge = Temp;
}
CurrentLink = CurrentLink->ForwardLink;
}
}
/**
Destory given resource tree.