Current CorebootPayloadPkg uses PciBusNoEnumerationDxe and PciRootBridgenoEnumerationDxe copied from the DuetPkg. Now it will switch to use the standard PciBusDxe and PciHostBridgeDxe from MdeModulePkg. As a result, a coreboot specific PciHostBridgeLib is added to collect pre-allocated PCI resources. Cc: Prince Agyeman <prince.agyeman@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Maurice Ma <maurice.ma@intel.com> Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
		
			
				
	
	
		
			87 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Header file of PciHostBridgeLib.
 | 
						|
 | 
						|
  Copyright (C) 2016, Red Hat, Inc.
 | 
						|
  Copyright (c) 2016, 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
 | 
						|
  http://opensource.org/licenses/bsd-license.php.
 | 
						|
 | 
						|
  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
 | 
						|
  WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef _PCI_HOST_BRIDGE_H
 | 
						|
#define _PCI_HOST_BRIDGE_H
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  ACPI_HID_DEVICE_PATH     AcpiDevicePath;
 | 
						|
  EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
 | 
						|
} CB_PCI_ROOT_BRIDGE_DEVICE_PATH;
 | 
						|
 | 
						|
PCI_ROOT_BRIDGE *
 | 
						|
ScanForRootBridges (
 | 
						|
  UINTN      *NumberOfRootBridges
 | 
						|
);
 | 
						|
 | 
						|
/**
 | 
						|
  Initialize a PCI_ROOT_BRIDGE structure.
 | 
						|
 | 
						|
  @param[in]  Supports         Supported attributes.
 | 
						|
 | 
						|
  @param[in]  Attributes       Initial attributes.
 | 
						|
 | 
						|
  @param[in]  AllocAttributes  Allocation attributes.
 | 
						|
 | 
						|
  @param[in]  RootBusNumber    The bus number to store in RootBus.
 | 
						|
 | 
						|
  @param[in]  MaxSubBusNumber  The inclusive maximum bus number that can be
 | 
						|
                               assigned to any subordinate bus found behind any
 | 
						|
                               PCI bridge hanging off this root bus.
 | 
						|
 | 
						|
                               The caller is repsonsible for ensuring that
 | 
						|
                               RootBusNumber <= MaxSubBusNumber. If
 | 
						|
                               RootBusNumber equals MaxSubBusNumber, then the
 | 
						|
                               root bus has no room for subordinate buses.
 | 
						|
 | 
						|
  @param[in]  Io               IO aperture.
 | 
						|
 | 
						|
  @param[in]  Mem              MMIO aperture.
 | 
						|
 | 
						|
  @param[in]  MemAbove4G       MMIO aperture above 4G.
 | 
						|
 | 
						|
  @param[in]  PMem             Prefetchable MMIO aperture.
 | 
						|
 | 
						|
  @param[in]  PMemAbove4G      Prefetchable MMIO aperture above 4G.
 | 
						|
 | 
						|
  @param[out] RootBus          The PCI_ROOT_BRIDGE structure (allocated by the
 | 
						|
                               caller) that should be filled in by this
 | 
						|
                               function.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           Initialization successful. A device path
 | 
						|
                                consisting of an ACPI device path node, with
 | 
						|
                                UID = RootBusNumber, has been allocated and
 | 
						|
                                linked into RootBus.
 | 
						|
 | 
						|
  @retval EFI_OUT_OF_RESOURCES  Memory allocation failed.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
InitRootBridge (
 | 
						|
  IN  UINT64                   Supports,
 | 
						|
  IN  UINT64                   Attributes,
 | 
						|
  IN  UINT64                   AllocAttributes,
 | 
						|
  IN  UINT8                    RootBusNumber,
 | 
						|
  IN  UINT8                    MaxSubBusNumber,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE *Io,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE *Mem,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE *MemAbove4G,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE *PMem,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE *PMemAbove4G,
 | 
						|
  OUT PCI_ROOT_BRIDGE          *RootBus
 | 
						|
);
 | 
						|
 | 
						|
#endif
 |