mirror of https://github.com/acidanthera/audk.git
Remove dependency on PCI Root Bridge I/O Protocol. This library should only layer on top of the CPU I/O Protocol.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9690 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
17d2c9a3af
commit
33338afebd
|
@ -4,7 +4,7 @@
|
||||||
for implementation of IoLib library instance. It is included
|
for implementation of IoLib library instance. It is included
|
||||||
all source code of this library instance.
|
all source code of this library instance.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006 - 2010, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -23,10 +23,7 @@
|
||||||
|
|
||||||
#include <FrameworkDxe.h>
|
#include <FrameworkDxe.h>
|
||||||
|
|
||||||
|
|
||||||
#include <Protocol/CpuIo.h>
|
#include <Protocol/CpuIo.h>
|
||||||
#include <Protocol/PciRootBridgeIo.h>
|
|
||||||
|
|
||||||
|
|
||||||
#include <Library/IoLib.h>
|
#include <Library/IoLib.h>
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# I/O Library implementation that uses the CPU I/O Protocol for I/O
|
# I/O Library implementation that uses the CPU I/O Protocol for I/O
|
||||||
# and MMIO operations.
|
# and MMIO operations.
|
||||||
# Copyright (c) 2006, Intel Corporation.
|
# Copyright (c) 2006 - 2010, Intel Corporation.
|
||||||
#
|
#
|
||||||
# All rights reserved. This program and the accompanying materials
|
# All rights reserved. This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
@ -22,8 +22,6 @@
|
||||||
MODULE_TYPE = DXE_DRIVER
|
MODULE_TYPE = DXE_DRIVER
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = IoLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
LIBRARY_CLASS = IoLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
||||||
EFI_SPECIFICATION_VERSION = 0x00020000
|
|
||||||
|
|
||||||
CONSTRUCTOR = IoLibConstructor
|
CONSTRUCTOR = IoLibConstructor
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -38,12 +36,10 @@
|
||||||
IoHighLevel.c
|
IoHighLevel.c
|
||||||
IoLib.c
|
IoLib.c
|
||||||
|
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
BaseLib
|
BaseLib
|
||||||
DebugLib
|
DebugLib
|
||||||
|
@ -51,7 +47,6 @@
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiCpuIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiCpuIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiPciRootBridgeIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
|
||||||
|
|
||||||
[Depex]
|
[Depex]
|
||||||
gEfiCpuIoProtocolGuid OR gEfiPciRootBridgeIoProtocolGuid
|
gEfiCpuIoProtocolGuid
|
|
@ -3,7 +3,7 @@
|
||||||
The implementation of I/O operation for this library instance
|
The implementation of I/O operation for this library instance
|
||||||
are based on EFI_CPU_IO_PROTOCOL.
|
are based on EFI_CPU_IO_PROTOCOL.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation<BR>
|
Copyright (c) 2006-2010, Intel Corporation<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -23,7 +23,6 @@
|
||||||
// Globle varible to cache pointer to CpuIo protocol.
|
// Globle varible to cache pointer to CpuIo protocol.
|
||||||
//
|
//
|
||||||
EFI_CPU_IO_PROTOCOL *mCpuIo = NULL;
|
EFI_CPU_IO_PROTOCOL *mCpuIo = NULL;
|
||||||
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *mPciRootBridgeIo = NULL;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The constructor function caches the pointer to CpuIo protocol.
|
The constructor function caches the pointer to CpuIo protocol.
|
||||||
|
@ -46,10 +45,7 @@ IoLibConstructor (
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
Status = gBS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, (VOID **) &mPciRootBridgeIo);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, (VOID **) &mCpuIo);
|
Status = gBS->LocateProtocol (&gEfiCpuIoProtocolGuid, NULL, (VOID **) &mCpuIo);
|
||||||
}
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
|
@ -79,11 +75,7 @@ IoReadWorker (
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINT64 Data;
|
UINT64 Data;
|
||||||
|
|
||||||
if (mPciRootBridgeIo != NULL) {
|
|
||||||
Status = mPciRootBridgeIo->Io.Read (mPciRootBridgeIo, (EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH) Width, Port, 1, &Data);
|
|
||||||
} else {
|
|
||||||
Status = mCpuIo->Io.Read (mCpuIo, Width, Port, 1, &Data);
|
Status = mCpuIo->Io.Read (mCpuIo, Width, Port, 1, &Data);
|
||||||
}
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
return Data;
|
return Data;
|
||||||
|
@ -114,11 +106,7 @@ IoWriteWorker (
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
if (mPciRootBridgeIo != NULL) {
|
|
||||||
Status = mPciRootBridgeIo->Io.Write (mPciRootBridgeIo, (EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH) Width, Port, 1, &Data);
|
|
||||||
} else {
|
|
||||||
Status = mCpuIo->Io.Write (mCpuIo, Width, Port, 1, &Data);
|
Status = mCpuIo->Io.Write (mCpuIo, Width, Port, 1, &Data);
|
||||||
}
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
return Data;
|
return Data;
|
||||||
|
@ -148,11 +136,7 @@ MmioReadWorker (
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINT64 Data;
|
UINT64 Data;
|
||||||
|
|
||||||
if (mPciRootBridgeIo != NULL) {
|
|
||||||
Status = mPciRootBridgeIo->Mem.Read (mPciRootBridgeIo, (EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH) Width, Address, 1, &Data);
|
|
||||||
} else {
|
|
||||||
Status = mCpuIo->Mem.Read (mCpuIo, Width, Address, 1, &Data);
|
Status = mCpuIo->Mem.Read (mCpuIo, Width, Address, 1, &Data);
|
||||||
}
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
return Data;
|
return Data;
|
||||||
|
@ -183,11 +167,7 @@ MmioWriteWorker (
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
if (mPciRootBridgeIo != NULL) {
|
|
||||||
Status = mPciRootBridgeIo->Mem.Write (mPciRootBridgeIo, (EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH) Width, Address, 1, &Data);
|
|
||||||
} else {
|
|
||||||
Status = mCpuIo->Mem.Write (mCpuIo, Width, Address, 1, &Data);
|
Status = mCpuIo->Mem.Write (mCpuIo, Width, Address, 1, &Data);
|
||||||
}
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
return Data;
|
return Data;
|
||||||
|
|
Loading…
Reference in New Issue