FALSE,\r
FALSE,\r
Uart16550A,\r
- NULL,\r
- FixedPcdGetBool (PcdIsaBusSerialUseHalfHandshake) //UseHalfHandshake\r
+ NULL\r
};\r
\r
/**\r
// if receive buffer is available.\r
//\r
if (SerialDevice->HardwareFlowControl &&\r
- !SerialDevice->UseHalfHandshake &&\r
+ !FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)&&\r
!ReceiveFifoFull\r
) {\r
Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);\r
// tell the peer to stop sending data.\r
//\r
if (SerialDevice->HardwareFlowControl &&\r
- !SerialDevice->UseHalfHandshake &&\r
+ !FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake) &&\r
IsaSerialFifoFull (&SerialDevice->Receive)\r
) {\r
Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);\r
//\r
// For half handshake flow control assert RTS before sending.\r
//\r
- if (SerialDevice->UseHalfHandshake) {\r
+ if (FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)) {\r
Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);\r
Mcr.Bits.Rts= 0;\r
WRITE_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Mcr.Data);\r
//\r
TimeOut = 0;\r
Msr.Data = READ_MSR (SerialDevice->IsaIo, SerialDevice->BaseAddress);\r
- while (Msr.Bits.Dcd == 1 && (!Msr.Bits.Cts ^ SerialDevice->UseHalfHandshake)) {\r
+ while (Msr.Bits.Dcd == 1 && (!Msr.Bits.Cts ^ FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake))) {\r
gBS->Stall (TIMEOUT_STALL_INTERVAL);\r
TimeOut++;\r
if (TimeOut > 5) {\r
Msr.Data = READ_MSR (SerialDevice->IsaIo, SerialDevice->BaseAddress);\r
}\r
\r
- if (Msr.Bits.Dcd== 0 || (Msr.Bits.Cts ^ SerialDevice->UseHalfHandshake)) {\r
+ if (Msr.Bits.Dcd== 0 || (Msr.Bits.Cts ^ FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake))) {\r
IsaSerialFifoRemove (&SerialDevice->Transmit, &Data);\r
WRITE_THR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Data);\r
}\r
//\r
// For half handshake flow control, tell DCE we are done.\r
//\r
- if (SerialDevice->UseHalfHandshake) {\r
+ if (FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)) {\r
Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);\r
Mcr.Bits.Rts = 1;\r
WRITE_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Mcr.Data);\r
## This PCD specifies whether PciBus supports the hot plug device.\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE|BOOLEAN|0x0001003d\r
\r
+ ## This PCD specifies whether Serial device use half hand shake.\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE|BOOLEAN|0x00010043\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
# The default value in DxePhase is 128 KBytes.\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|UINT16|0x00010025\r
\r
- ## This PCD specifies whether Serial device use half hand shake.\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE|BOOLEAN|0x00010043\r
-\r
[PcdsDynamic]\r
## PCD is used to mark if the machine has complete one boot cycle before.\r
# After the complete boot, the variable BootState will be set to TRUE. \r
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|FALSE\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE\r
\r
[PcdsFixedAtBuild.common]\r
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000\r
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1\r
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1\r
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|0\r
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE\r
\r
[PcdsDynamicDefault.PEIM.DEFAULT]\r
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1\r