\r
#include "InternalIsaBus.h"\r
\r
+//\r
+// Bits definition of PcdIsaBusSupportedFeatures\r
+//\r
+#define PCD_ISA_BUS_SUPPORT_DMA BIT0\r
+#define PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA BIT1\r
+#define PCD_ISA_BUS_SUPPORT_ISA_MEMORY BIT2\r
+\r
//\r
// ISA I/O Support Function Prototypes\r
//\r
gEfiDevicePathProtocolGuid # PROTOCOL TO_START\r
gEfiGenericMemTestProtocolGuid # PROTOCOL TO_START\r
\r
-[FeaturePcd.common]\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusOnlySupportSlaveDma\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportDma\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportIsaMemory\r
+[Pcd.common]\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportedFeatures\r
\r
\r
ISA_MAP_INFO *IsaMapInfo;\r
\r
//\r
- // Unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.\r
+ // Check if DMA is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportDma)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
ISA_IO_DEVICE *IsaIoDevice;\r
\r
//\r
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
- // ISA bus memory read/write operations.\r
+ // Check if ISA memory is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
ISA_IO_DEVICE *IsaIoDevice;\r
\r
//\r
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
- // ISA bus memory read/write operations.\r
+ // Check if ISA memory is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
ISA_IO_DEVICE *IsaIoDevice;\r
\r
//\r
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
- // ISA bus memory read/write operations.\r
+ // Check if ISA memory is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
)\r
{\r
//\r
- // Set Feature Flag PcdIsaBusSupportDma to FALSE to disable support for ISA DMA.\r
+ // Check if DMA is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportDma)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
//\r
//\r
// So we just return EFI_UNSUPPORTED for these functions.\r
//\r
- if (FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0) {\r
return IsaIoMapOnlySupportSlaveReadWrite (\r
This,\r
Operation,\r
// ISA Bus Master.\r
// Or unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportDma) || FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {\r
+ if (((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) ||\r
+ ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0)) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
// ISA Bus Master.\r
// Or unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportDma) || FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {\r
+ if (((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) ||\r
+ ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0)) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
## This PCD specifies whether PciBus supports the hot plug device.\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE|BOOLEAN|0x0001003d\r
\r
- ## ISA bus related PCDs to support DMA, SlaveDMA and Memory feature.\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportDma|TRUE|BOOLEAN|0x00010040\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusOnlySupportSlaveDma|FALSE|BOOLEAN|0x00010041\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportIsaMemory|TRUE|BOOLEAN|0x00010042\r
-\r
[PcdsFixedAtBuild]\r
## FFS filename to find the default BMP Logo file.\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile |{ 0x99, 0x8b, 0xB2, 0x7B, 0xBB, 0x61, 0xD5, 0x11, 0x9A, 0x5D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }|VOID*|16\r
## FFS filename to find the shell application.\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0xB7, 0xD6, 0x7A, 0xC5, 0x15, 0x05, 0xA8, 0x40, 0x9D, 0x21, 0x55, 0x16, 0x52, 0x85, 0x4E, 0x37 }|VOID*|16\r
\r
+ ## ISA bus related PCD to support DMA, SlaveDMA and ISA Memory features.\r
+ # BIT0 indicates if DMA is supported\r
+ # BIT1 indicates if only slave DMA is supported\r
+ # BIT2 indicates if ISA memory is supported\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportedFeatures|0x05|UINT8|0x00010040\r
+\r
[PcdsFixedAtBuild,PcdsPatchableInModule,PcdsDynamic]\r
## PcdStatusCodeMemorySize is used when PcdStatusCodeUseMemory is set to true\r
# (PcdStatusCodeMemorySize * KBytes) is the total taken memory size.\r
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|FALSE\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportDma|TRUE\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusOnlySupportSlaveDma|FALSE\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSupportIsaMemory|TRUE\r
\r
[PcdsFixedAtBuild.common]\r
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000\r