mirror of https://github.com/acidanthera/audk.git
Enhance PcAt IsaAcpi driver to support enable/disable separated functions per PCD settings.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11362 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
5fbfa2d023
commit
e8bce4b41c
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
ISA ACPI Protocol Implementation
|
||||
|
||||
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
|
||||
|
@ -20,6 +20,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
//
|
||||
// COM 1 UART Controller
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiCom1DeviceResources[] = {
|
||||
{EfiIsaAcpiResourceIo, 0, 0x3f8, 0x3ff},
|
||||
{EfiIsaAcpiResourceInterrupt, 0, 4, 0},
|
||||
|
@ -29,6 +30,7 @@ EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiCom1DeviceResources[] = {
|
|||
//
|
||||
// COM 2 UART Controller
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiCom2DeviceResources[] = {
|
||||
{EfiIsaAcpiResourceIo, 0, 0x2f8, 0x2ff},
|
||||
{EfiIsaAcpiResourceInterrupt, 0, 3, 0},
|
||||
|
@ -38,6 +40,7 @@ EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiCom2DeviceResources[] = {
|
|||
//
|
||||
// PS/2 Keyboard Controller
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiPs2KeyboardDeviceResources[] = {
|
||||
{EfiIsaAcpiResourceIo, 0, 0x60, 0x64},
|
||||
{EfiIsaAcpiResourceInterrupt, 0, 1, 0},
|
||||
|
@ -47,6 +50,7 @@ EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiPs2KeyboardDeviceResources[] = {
|
|||
//
|
||||
// PS/2 Mouse Controller
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiPs2MouseDeviceResources[] = {
|
||||
{EfiIsaAcpiResourceIo, 0, 0x60, 0x64},
|
||||
{EfiIsaAcpiResourceInterrupt, 0, 12, 0},
|
||||
|
@ -56,6 +60,7 @@ EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiPs2MouseDeviceResources[] = {
|
|||
//
|
||||
// Floppy Disk Controller
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiFloppyResources[] = {
|
||||
{EfiIsaAcpiResourceIo, 0, 0x3f0, 0x3f7},
|
||||
{EfiIsaAcpiResourceInterrupt, 0, 6, 0},
|
||||
|
@ -63,18 +68,77 @@ EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiFloppyResources[] = {
|
|||
{EfiIsaAcpiResourceEndOfList, 0, 0, 0}
|
||||
};
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiCom1Device = {
|
||||
{EISA_PNP_ID(0x501), 0}, mPcatIsaAcpiCom1DeviceResources
|
||||
}; // COM 1 UART Controller
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiCom2Device = {
|
||||
{EISA_PNP_ID(0x501), 1}, mPcatIsaAcpiCom2DeviceResources
|
||||
}; // COM 2 UART Controller
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiPs2KeyboardDevice = {
|
||||
{EISA_PNP_ID(0x303), 0}, mPcatIsaAcpiPs2KeyboardDeviceResources
|
||||
}; // PS/2 Keyboard Controller
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiPs2MouseDevice = {
|
||||
{EISA_PNP_ID(0x303), 1}, mPcatIsaAcpiPs2MouseDeviceResources
|
||||
}; // PS/2 Mouse Controller
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiFloppyADevice = {
|
||||
{EISA_PNP_ID(0x604), 0}, mPcatIsaAcpiFloppyResources
|
||||
}; // Floppy Disk Controller A:
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiFloppyBDevice = {
|
||||
{EISA_PNP_ID(0x604), 1}, mPcatIsaAcpiFloppyResources
|
||||
}; // Floppy Disk Controller B:
|
||||
|
||||
//
|
||||
// Table of ISA Controllers
|
||||
//
|
||||
EFI_ISA_ACPI_RESOURCE_LIST gPcatIsaAcpiDeviceList[] = {
|
||||
{{EISA_PNP_ID(0x501), 0}, mPcatIsaAcpiCom1DeviceResources }, // COM 1 UART Controller
|
||||
{{EISA_PNP_ID(0x501), 1}, mPcatIsaAcpiCom2DeviceResources }, // COM 2 UART Controller
|
||||
{{EISA_PNP_ID(0x303), 0}, mPcatIsaAcpiPs2KeyboardDeviceResources }, // PS/2 Keyboard Controller
|
||||
{{EISA_PNP_ID(0x303), 1}, mPcatIsaAcpiPs2MouseDeviceResources }, // PS/2 Mouse Controller
|
||||
{{EISA_PNP_ID(0x604), 0}, mPcatIsaAcpiFloppyResources }, // Floppy Disk Controller A:
|
||||
{{EISA_PNP_ID(0x604), 1}, mPcatIsaAcpiFloppyResources }, // Floppy Disk Controller B:
|
||||
{{0, 0}, NULL } // End if ISA Controllers
|
||||
};
|
||||
EFI_ISA_ACPI_RESOURCE_LIST gPcatIsaAcpiDeviceList[7] = {0};
|
||||
|
||||
/**
|
||||
Initialize gPcatIsaAcpiDeviceList.
|
||||
**/
|
||||
VOID
|
||||
InitializePcatIsaAcpiDeviceList (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
UINTN Index;
|
||||
|
||||
Index = 0;
|
||||
if (PcdGetBool (PcdIsaAcpiCom1Enable)) {
|
||||
CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiCom1Device, sizeof(mPcatIsaAcpiCom1Device));
|
||||
Index++;
|
||||
}
|
||||
if (PcdGetBool (PcdIsaAcpiCom2Enable)) {
|
||||
CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiCom2Device, sizeof(mPcatIsaAcpiCom2Device));
|
||||
Index++;
|
||||
}
|
||||
if (PcdGetBool (PcdIsaAcpiPs2KeyboardEnable)) {
|
||||
CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiPs2KeyboardDevice, sizeof(mPcatIsaAcpiPs2KeyboardDevice));
|
||||
Index++;
|
||||
}
|
||||
if (PcdGetBool (PcdIsaAcpiPs2MouseEnable)) {
|
||||
CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiPs2MouseDevice, sizeof(mPcatIsaAcpiPs2MouseDevice));
|
||||
Index++;
|
||||
}
|
||||
if (PcdGetBool (PcdIsaAcpiFloppyAEnable)) {
|
||||
CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiFloppyADevice, sizeof(mPcatIsaAcpiFloppyADevice));
|
||||
Index++;
|
||||
}
|
||||
if (PcdGetBool (PcdIsaAcpiFloppyBEnable)) {
|
||||
CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiFloppyBDevice, sizeof(mPcatIsaAcpiFloppyBDevice));
|
||||
Index++;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// ISA ACPI Protocol Functions
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## @file
|
||||
# Component description file for PCAT ISA ACPI driver
|
||||
#
|
||||
# Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2005 - 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
|
||||
|
@ -25,11 +25,14 @@
|
|||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
|
||||
PcAtChipsetPkg/PcAtChipsetPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
UefiDriverEntryPoint
|
||||
UefiBootServicesTableLib
|
||||
UefiLib
|
||||
BaseMemoryLib
|
||||
PcdLib
|
||||
|
||||
[Sources]
|
||||
PcatIsaAcpi.h
|
||||
|
@ -40,3 +43,11 @@
|
|||
[Protocols]
|
||||
gEfiPciIoProtocolGuid
|
||||
gEfiIsaAcpiProtocolGuid
|
||||
|
||||
[Pcd]
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom1Enable
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom2Enable
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiPs2KeyboardEnable
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiPs2MouseEnable
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiFloppyAEnable
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiFloppyBEnable
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
EFI PCAT ISA ACPI Driver for a Generic PC Platform
|
||||
|
||||
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
|
||||
|
@ -243,6 +243,11 @@ PcatIsaAcpiDriverBindingStart (
|
|||
PcatIsaAcpiDev->Handle = Controller;
|
||||
PcatIsaAcpiDev->PciIo = PciIo;
|
||||
|
||||
//
|
||||
// Initialize PcatIsaAcpiDeviceList
|
||||
//
|
||||
InitializePcatIsaAcpiDeviceList ();
|
||||
|
||||
//
|
||||
// IsaAcpi interface
|
||||
//
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
EFI PCAT ISA ACPI Driver for a Generic PC Platform
|
||||
|
||||
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
|
||||
|
@ -29,6 +29,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#include <Library/UefiLib.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
|
||||
#include <Protocol/IsaAcpi.h>
|
||||
//
|
||||
|
@ -261,4 +263,12 @@ IsaInterfaceInit (
|
|||
IN EFI_ISA_ACPI_PROTOCOL *This
|
||||
);
|
||||
|
||||
/**
|
||||
Initialize the ISA device list.
|
||||
**/
|
||||
VOID
|
||||
InitializePcatIsaAcpiDeviceList (
|
||||
VOID
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# This package is designed to public interfaces and implementation which follows
|
||||
# PcAt defacto standard.
|
||||
#
|
||||
# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2009 - 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
|
||||
|
@ -45,6 +45,25 @@
|
|||
## Pcd8259LegacyModeEdgeLevel defines the default edge level for legacy mode's interrrupt controller.
|
||||
gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0000|UINT16|0x00000002
|
||||
|
||||
[PcdsFixedAtBuild, PcdsDynamic, PcdsPatchableInModule]
|
||||
## This PCD specifies whether we need enable IsaAcpiCom1 device.
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom1Enable|TRUE|BOOLEAN|0x00000003
|
||||
|
||||
## This PCD specifies whether we need enable IsaAcpiCom2 device.
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiCom2Enable|TRUE|BOOLEAN|0x00000004
|
||||
|
||||
## This PCD specifies whether we need enable IsaAcpiPs2Keyboard device.
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiPs2KeyboardEnable|TRUE|BOOLEAN|0x00000005
|
||||
|
||||
## This PCD specifies whether we need enable IsaAcpiPs2Mouse device.
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiPs2MouseEnable|TRUE|BOOLEAN|0x00000006
|
||||
|
||||
## This PCD specifies whether we need enable IsaAcpiFloppyA device.
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiFloppyAEnable|TRUE|BOOLEAN|0x00000007
|
||||
|
||||
## This PCD specifies whether we need enable IsaAcpiFloppyB device.
|
||||
gPcAtChipsetPkgTokenSpaceGuid.PcdIsaAcpiFloppyBEnable|TRUE|BOOLEAN|0x00000008
|
||||
|
||||
[Guids]
|
||||
gPcAtChipsetPkgTokenSpaceGuid = { 0x326ae723, 0xae32, 0x4589, { 0x98, 0xb8, 0xca, 0xc2, 0x3c, 0xdc, 0xc1, 0xb1 } }
|
||||
|
||||
|
|
Loading…
Reference in New Issue