diff options
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
|