summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/InternalIsaIo.h7
-rw-r--r--IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf6
-rw-r--r--IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaIo.c31
-rw-r--r--IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec11
-rw-r--r--IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc3
5 files changed, 30 insertions, 28 deletions
diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/InternalIsaIo.h b/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/InternalIsaIo.h
index 9a711a5860..25427b4329 100644
--- a/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/InternalIsaIo.h
+++ b/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/InternalIsaIo.h
@@ -18,6 +18,13 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "InternalIsaBus.h"
//
+// Bits definition of PcdIsaBusSupportedFeatures
+//
+#define PCD_ISA_BUS_SUPPORT_DMA BIT0
+#define PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA BIT1
+#define PCD_ISA_BUS_SUPPORT_ISA_MEMORY BIT2
+
+//
// ISA I/O Support Function Prototypes
//
diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf b/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
index 7f06f7fe1c..1405c41a9c 100644
--- a/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
+++ b/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
@@ -65,9 +65,7 @@
gEfiDevicePathProtocolGuid # PROTOCOL TO_START
gEfiGenericMemTestProtocolGuid # PROTOCOL TO_START
-[FeaturePcd.common]
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusOnlySupportSlaveDma
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportDma
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportIsaMemory
+[Pcd.common]
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportedFeatures
diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaIo.c b/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaIo.c
index 4673d8379a..228daf13fb 100644
--- a/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaIo.c
+++ b/IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaIo.c
@@ -353,9 +353,9 @@ IsaIoUnmap (
ISA_MAP_INFO *IsaMapInfo;
//
- // Unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.
+ // Check if DMA is supported.
//
- if (!FeaturePcdGet (PcdIsaBusSupportDma)) {
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) {
return EFI_UNSUPPORTED;
}
@@ -512,10 +512,9 @@ IsaIoMemRead (
ISA_IO_DEVICE *IsaIoDevice;
//
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for
- // ISA bus memory read/write operations.
+ // Check if ISA memory is supported.
//
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {
return EFI_UNSUPPORTED;
}
@@ -579,10 +578,9 @@ IsaIoMemWrite (
ISA_IO_DEVICE *IsaIoDevice;
//
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for
- // ISA bus memory read/write operations.
+ // Check if ISA memory is supported.
//
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {
return EFI_UNSUPPORTED;
}
@@ -646,10 +644,9 @@ IsaIoCopyMem (
ISA_IO_DEVICE *IsaIoDevice;
//
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for
- // ISA bus memory read/write operations.
+ // Check if ISA memory is supported.
//
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {
return EFI_UNSUPPORTED;
}
@@ -1297,9 +1294,9 @@ IsaIoMap (
)
{
//
- // Set Feature Flag PcdIsaBusSupportDma to FALSE to disable support for ISA DMA.
+ // Check if DMA is supported.
//
- if (!FeaturePcdGet (PcdIsaBusSupportDma)) {
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) {
return EFI_UNSUPPORTED;
}
//
@@ -1308,7 +1305,7 @@ IsaIoMap (
//
// So we just return EFI_UNSUPPORTED for these functions.
//
- if (FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0) {
return IsaIoMapOnlySupportSlaveReadWrite (
This,
Operation,
@@ -1369,7 +1366,8 @@ IsaIoAllocateBuffer (
// ISA Bus Master.
// Or unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.
//
- if (!FeaturePcdGet (PcdIsaBusSupportDma) || FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {
+ if (((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) ||
+ ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0)) {
return EFI_UNSUPPORTED;
}
@@ -1439,7 +1437,8 @@ IsaIoFreeBuffer (
// ISA Bus Master.
// Or unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.
//
- if (!FeaturePcdGet (PcdIsaBusSupportDma) || FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {
+ if (((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) ||
+ ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0)) {
return EFI_UNSUPPORTED;
}
diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
index 7e3349a513..0bb6cacff1 100644
--- a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
+++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
@@ -123,11 +123,6 @@
## This PCD specifies whether PciBus supports the hot plug device.
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE|BOOLEAN|0x0001003d
- ## ISA bus related PCDs to support DMA, SlaveDMA and Memory feature.
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportDma|TRUE|BOOLEAN|0x00010040
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusOnlySupportSlaveDma|FALSE|BOOLEAN|0x00010041
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportIsaMemory|TRUE|BOOLEAN|0x00010042
-
[PcdsFixedAtBuild]
## FFS filename to find the default BMP Logo file.
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile |{ 0x99, 0x8b, 0xB2, 0x7B, 0xBB, 0x61, 0xD5, 0x11, 0x9A, 0x5D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }|VOID*|16
@@ -135,6 +130,12 @@
## FFS filename to find the shell application.
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0xB7, 0xD6, 0x7A, 0xC5, 0x15, 0x05, 0xA8, 0x40, 0x9D, 0x21, 0x55, 0x16, 0x52, 0x85, 0x4E, 0x37 }|VOID*|16
+ ## ISA bus related PCD to support DMA, SlaveDMA and ISA Memory features.
+ # BIT0 indicates if DMA is supported
+ # BIT1 indicates if only slave DMA is supported
+ # BIT2 indicates if ISA memory is supported
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportedFeatures|0x05|UINT8|0x00010040
+
[PcdsFixedAtBuild,PcdsPatchableInModule,PcdsDynamic]
## PcdStatusCodeMemorySize is used when PcdStatusCodeUseMemory is set to true
# (PcdStatusCodeMemorySize * KBytes) is the total taken memory size.
diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc
index a910344504..f821d69e9f 100644
--- a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc
+++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc
@@ -131,9 +131,6 @@
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|FALSE
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportDma|TRUE
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusOnlySupportSlaveDma|FALSE
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportIsaMemory|TRUE
[PcdsFixedAtBuild.common]
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000