QuarkPlatformPkg: Add new package for Galileo boards
Changes for V4 ============== 1) Move delete of QuarkSocPkg\QuarkNorthCluster\Binary\QuarkMicrocode from QuarkPlatformPkg commit to QuarkSocPkg commit 2) Fix incorrect license header in PlatformSecLibModStrs.uni Changes for V3 ============== 1) Set PcdResetOnMemoryTypeInformationChange FALSE in QuarkMin.dsc This is required because QuarkMin.dsc uses the emulated variable driver that does not preserve any non-volatile UEFI variables across reset. If the condition is met where the memory type information variable needs to be updated, then the system will reset every time the UEFI Shell is run. By setting this PCD to FALSE, then reset action is disabled. 2) Move one binary file to QuarkSocBinPkg 3) Change RMU.bin FILE statements to INF statement in DSC FD region to be compatible with PACKAGES_PATH search for QuarkSocBinPkg Changes for V2 ============== 1) Use new generic PCI serial driver PciSioSerialDxe in MdeModulePkg 2) Configure PcdPciSerialParameters for PCI serial driver for Quark 3) Use new MtrrLib API to reduce time to set MTRRs for all DRAM 4) Convert all UNI files to utf-8 5) Replace tabs with spaces and remove trailing spaces 6) Add License.txt Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19287 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
37
QuarkPlatformPkg/Pci/Dxe/PciPlatform/CommonHeader.h
Normal file
37
QuarkPlatformPkg/Pci/Dxe/PciPlatform/CommonHeader.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/** @file
|
||||
Common header file shared by all source files.
|
||||
|
||||
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||
|
||||
Copyright (c) 2013-2015 Intel Corporation.
|
||||
|
||||
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 __COMMON_HEADER_H_
|
||||
#define __COMMON_HEADER_H_
|
||||
|
||||
|
||||
|
||||
#include <PiDxe.h>
|
||||
#include <IntelQNCDxe.h>
|
||||
|
||||
#include <Protocol/PciPlatform.h>
|
||||
#include <Protocol/PciIo.h>
|
||||
|
||||
#include <Library/DxeServicesLib.h>
|
||||
#include <Library/UefiDriverEntryPoint.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
#include <Library/UefiRuntimeServicesTableLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/IoLib.h>
|
||||
#include <Library/PciLib.h>
|
||||
#include <Library/IohLib.h>
|
||||
|
||||
#endif
|
200
QuarkPlatformPkg/Pci/Dxe/PciPlatform/PciPlatform.c
Normal file
200
QuarkPlatformPkg/Pci/Dxe/PciPlatform/PciPlatform.c
Normal file
@@ -0,0 +1,200 @@
|
||||
/** @file
|
||||
Registers onboard PCI ROMs with PCI.IO
|
||||
|
||||
Copyright (c) 2013-2015 Intel Corporation.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
**/
|
||||
|
||||
#include "CommonHeader.h"
|
||||
|
||||
#include "PciPlatform.h"
|
||||
|
||||
|
||||
PCI_OPTION_ROM_TABLE mPciOptionRomTable[] = {
|
||||
{ NULL_ROM_FILE_GUID, 0, 0, 0, 0, 0xffff, 0xffff }
|
||||
};
|
||||
EFI_PCI_PLATFORM_PROTOCOL mPciPlatform = {
|
||||
PhaseNotify,
|
||||
PlatformPrepController,
|
||||
GetPlatformPolicy,
|
||||
GetPciRom
|
||||
};
|
||||
|
||||
EFI_HANDLE mPciPlatformHandle = NULL;
|
||||
EFI_HANDLE mImageHandle = NULL;
|
||||
|
||||
|
||||
EFI_STATUS
|
||||
PhaseNotify (
|
||||
IN EFI_PCI_PLATFORM_PROTOCOL *This,
|
||||
IN EFI_HANDLE HostBridge,
|
||||
IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE Phase,
|
||||
IN EFI_PCI_CHIPSET_EXECUTION_PHASE ChipsetPhase
|
||||
)
|
||||
{
|
||||
UINT8 UsbHostBusNumber = IOH_BUS;
|
||||
if (Phase == EfiPciHostBridgeEndResourceAllocation) {
|
||||
// Required for QuarkSouthCluster.
|
||||
// Enable USB controller memory, io and bus master before Ehci driver.
|
||||
EnableUsbMemIoBusMaster (UsbHostBusNumber);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
EFI_STATUS
|
||||
PlatformPrepController (
|
||||
IN EFI_PCI_PLATFORM_PROTOCOL *This,
|
||||
IN EFI_HANDLE HostBridge,
|
||||
IN EFI_HANDLE RootBridge,
|
||||
IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_PCI_ADDRESS PciAddress,
|
||||
IN EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE Phase,
|
||||
IN EFI_PCI_CHIPSET_EXECUTION_PHASE ChipsetPhase
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
GetPlatformPolicy (
|
||||
IN CONST EFI_PCI_PLATFORM_PROTOCOL *This,
|
||||
OUT EFI_PCI_PLATFORM_POLICY *PciPolicy
|
||||
)
|
||||
{
|
||||
if (PciPolicy == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
GetPciRom (
|
||||
IN CONST EFI_PCI_PLATFORM_PROTOCOL *This,
|
||||
IN EFI_HANDLE PciHandle,
|
||||
OUT VOID **RomImage,
|
||||
OUT UINTN *RomSize
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return a PCI ROM image for the onboard device represented by PciHandle
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
PciHandle - PCI device to return the ROM image for.
|
||||
RomImage - PCI Rom Image for onboard device
|
||||
RomSize - Size of RomImage in bytes
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - RomImage is valid
|
||||
EFI_NOT_FOUND - No RomImage
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_PCI_IO_PROTOCOL *PciIo;
|
||||
UINTN Segment;
|
||||
UINTN Bus;
|
||||
UINTN Device;
|
||||
UINTN Function;
|
||||
UINT16 VendorId;
|
||||
UINT16 DeviceId;
|
||||
UINT16 DeviceClass;
|
||||
UINTN TableIndex;
|
||||
|
||||
Status = gBS->HandleProtocol (
|
||||
PciHandle,
|
||||
&gEfiPciIoProtocolGuid,
|
||||
(VOID **) &PciIo
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
PciIo->GetLocation (PciIo, &Segment, &Bus, &Device, &Function);
|
||||
|
||||
PciIo->Pci.Read (PciIo, EfiPciIoWidthUint16, 0x0A, 1, &DeviceClass);
|
||||
|
||||
PciIo->Pci.Read (PciIo, EfiPciIoWidthUint16, 0, 1, &VendorId);
|
||||
|
||||
PciIo->Pci.Read (PciIo, EfiPciIoWidthUint16, 2, 1, &DeviceId);
|
||||
|
||||
//
|
||||
// Loop through table of video option rom descriptions
|
||||
//
|
||||
for (TableIndex = 0; mPciOptionRomTable[TableIndex].VendorId != 0xffff; TableIndex++) {
|
||||
|
||||
//
|
||||
// See if the PCI device specified by PciHandle matches at device in mPciOptionRomTable
|
||||
//
|
||||
if (VendorId != mPciOptionRomTable[TableIndex].VendorId ||
|
||||
DeviceId != mPciOptionRomTable[TableIndex].DeviceId ||
|
||||
Segment != mPciOptionRomTable[TableIndex].Segment ||
|
||||
Bus != mPciOptionRomTable[TableIndex].Bus ||
|
||||
Device != mPciOptionRomTable[TableIndex].Device ||
|
||||
Function != mPciOptionRomTable[TableIndex].Function) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Status = GetSectionFromFv (
|
||||
&mPciOptionRomTable[TableIndex].FileName,
|
||||
EFI_SECTION_RAW,
|
||||
0,
|
||||
RomImage,
|
||||
RomSize
|
||||
);
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
PciPlatformDriverEntry (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Arguments:
|
||||
(Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
|
||||
|
||||
Returns:
|
||||
EFI_STATUS
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
mImageHandle = ImageHandle;
|
||||
|
||||
//
|
||||
// Install on a new handle
|
||||
//
|
||||
Status = gBS->InstallProtocolInterface (
|
||||
&mPciPlatformHandle,
|
||||
&gEfiPciPlatformProtocolGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
&mPciPlatform
|
||||
);
|
||||
|
||||
return Status;
|
||||
}
|
88
QuarkPlatformPkg/Pci/Dxe/PciPlatform/PciPlatform.h
Normal file
88
QuarkPlatformPkg/Pci/Dxe/PciPlatform/PciPlatform.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/** @file
|
||||
This code supports a the private implementation
|
||||
of the Legacy BIOS Platform protocol
|
||||
|
||||
Copyright (c) 2013-2015 Intel Corporation.
|
||||
|
||||
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_PLATFORM_H_
|
||||
#define PCI_PLATFORM_H_
|
||||
|
||||
#include <IndustryStandard/Pci.h>
|
||||
#include <Library/PcdLib.h>
|
||||
//
|
||||
// Global variables for Option ROMs
|
||||
//
|
||||
#define NULL_ROM_FILE_GUID \
|
||||
{ 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}
|
||||
|
||||
#define ONBOARD_VIDEO_OPTION_ROM_FILE_GUID \
|
||||
{ 0x8dfae5d4, 0xb50e, 0x4c10, {0x96, 0xe6, 0xf2, 0xc2, 0x66, 0xca, 0xcb, 0xb6 }}
|
||||
|
||||
#define IDE_RAID_OPTION_ROM_FILE_GUID \
|
||||
{ 0x3392A8E1, 0x1881, 0x4398, {0x83, 0xa6, 0x53, 0xd3, 0x87, 0xdb, 0x20, 0x20 }}
|
||||
|
||||
#define TANX_UNDI_OPTION_ROM_FILE_GUID \
|
||||
{ 0x84c24ab0, 0x124e, 0x4aed, {0x8e, 0xfe, 0xf9, 0x1b, 0xb9, 0x73, 0x69, 0xf4 }}
|
||||
|
||||
#define PXE_UNDI_OPTION_ROM_FILE_GUID \
|
||||
{ 0xea34cd48, 0x5fdf, 0x46f0, {0xb5, 0xfa, 0xeb, 0xe0, 0x76, 0xa4, 0xf1, 0x2c }}
|
||||
|
||||
|
||||
typedef struct {
|
||||
EFI_GUID FileName;
|
||||
UINTN Segment;
|
||||
UINTN Bus;
|
||||
UINTN Device;
|
||||
UINTN Function;
|
||||
UINT16 VendorId;
|
||||
UINT16 DeviceId;
|
||||
} PCI_OPTION_ROM_TABLE;
|
||||
|
||||
|
||||
EFI_STATUS
|
||||
PhaseNotify (
|
||||
IN EFI_PCI_PLATFORM_PROTOCOL *This,
|
||||
IN EFI_HANDLE HostBridge,
|
||||
IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE Phase,
|
||||
IN EFI_PCI_CHIPSET_EXECUTION_PHASE ChipsetPhase
|
||||
);
|
||||
|
||||
|
||||
EFI_STATUS
|
||||
PlatformPrepController (
|
||||
IN EFI_PCI_PLATFORM_PROTOCOL *This,
|
||||
IN EFI_HANDLE HostBridge,
|
||||
IN EFI_HANDLE RootBridge,
|
||||
IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_PCI_ADDRESS PciAddress,
|
||||
IN EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE Phase,
|
||||
IN EFI_PCI_CHIPSET_EXECUTION_PHASE ChipsetPhase
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
GetPlatformPolicy (
|
||||
IN CONST EFI_PCI_PLATFORM_PROTOCOL *This,
|
||||
OUT EFI_PCI_PLATFORM_POLICY *PciPolicy
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
GetPciRom (
|
||||
IN CONST EFI_PCI_PLATFORM_PROTOCOL *This,
|
||||
IN EFI_HANDLE PciHandle,
|
||||
OUT VOID **RomImage,
|
||||
OUT UINTN *RomSize
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
|
60
QuarkPlatformPkg/Pci/Dxe/PciPlatform/PciPlatform.inf
Normal file
60
QuarkPlatformPkg/Pci/Dxe/PciPlatform/PciPlatform.inf
Normal file
@@ -0,0 +1,60 @@
|
||||
## @file
|
||||
# Component description file for PciPlatform module.
|
||||
#
|
||||
# This driver installs pciplatform protocol to provide access interfaces to the onboard pci roms.
|
||||
# Copyright (c) 2013-2015 Intel Corporation.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = PciPlatform
|
||||
FILE_GUID = 2E8CD01A-BDB7-40b4-8376-E7C26EAC21FF
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
ENTRY_POINT = PciPlatformDriverEntry
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
||||
#
|
||||
|
||||
[Sources]
|
||||
PciPlatform.c
|
||||
PciPlatform.h
|
||||
CommonHeader.h
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
QuarkPlatformPkg/QuarkPlatformPkg.dec
|
||||
QuarkSocPkg/QuarkSocPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
PciLib
|
||||
PcdLib
|
||||
IohLib
|
||||
DebugLib
|
||||
UefiRuntimeServicesTableLib
|
||||
UefiBootServicesTableLib
|
||||
UefiDriverEntryPoint
|
||||
DxeServicesLib
|
||||
|
||||
[Guids]
|
||||
|
||||
[Protocols]
|
||||
gEfiPciIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||
gEfiPciPlatformProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||
|
||||
[Pcd]
|
||||
|
||||
[Depex]
|
||||
TRUE
|
Reference in New Issue
Block a user