From: gikidy Date: Fri, 10 Jul 2009 07:55:14 +0000 (+0000) Subject: Replace Fixed PCD with Feature PCD for useHalfHandshake to reduce code size. X-Git-Tag: edk2-stable201903~17447 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=77b91d896f2183906a8e54dd2a82af3a213883be Replace Fixed PCD with Feature PCD for useHalfHandshake to reduce code size. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8862 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf b/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf index 4c8c08fd53..3429b8f8b8 100644 --- a/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf +++ b/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf @@ -65,4 +65,6 @@ gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|8 gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1 gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1 + +[FeaturePcd.common] gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.c b/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.c index c50e532ee3..4a86257e73 100644 --- a/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.c +++ b/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.c @@ -83,8 +83,7 @@ SERIAL_DEV gSerialDevTempate = { FALSE, FALSE, Uart16550A, - NULL, - FixedPcdGetBool (PcdIsaBusSerialUseHalfHandshake) //UseHalfHandshake + NULL }; /** @@ -807,7 +806,7 @@ IsaSerialReceiveTransmit ( // if receive buffer is available. // if (SerialDevice->HardwareFlowControl && - !SerialDevice->UseHalfHandshake && + !FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)&& !ReceiveFifoFull ) { Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress); @@ -844,7 +843,7 @@ IsaSerialReceiveTransmit ( // tell the peer to stop sending data. // if (SerialDevice->HardwareFlowControl && - !SerialDevice->UseHalfHandshake && + !FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake) && IsaSerialFifoFull (&SerialDevice->Receive) ) { Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress); @@ -873,7 +872,7 @@ IsaSerialReceiveTransmit ( // // For half handshake flow control assert RTS before sending. // - if (SerialDevice->UseHalfHandshake) { + if (FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)) { Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress); Mcr.Bits.Rts= 0; WRITE_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Mcr.Data); @@ -883,7 +882,7 @@ IsaSerialReceiveTransmit ( // TimeOut = 0; Msr.Data = READ_MSR (SerialDevice->IsaIo, SerialDevice->BaseAddress); - while (Msr.Bits.Dcd == 1 && (!Msr.Bits.Cts ^ SerialDevice->UseHalfHandshake)) { + while (Msr.Bits.Dcd == 1 && (!Msr.Bits.Cts ^ FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake))) { gBS->Stall (TIMEOUT_STALL_INTERVAL); TimeOut++; if (TimeOut > 5) { @@ -893,7 +892,7 @@ IsaSerialReceiveTransmit ( Msr.Data = READ_MSR (SerialDevice->IsaIo, SerialDevice->BaseAddress); } - if (Msr.Bits.Dcd== 0 || (Msr.Bits.Cts ^ SerialDevice->UseHalfHandshake)) { + if (Msr.Bits.Dcd== 0 || (Msr.Bits.Cts ^ FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake))) { IsaSerialFifoRemove (&SerialDevice->Transmit, &Data); WRITE_THR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Data); } @@ -901,7 +900,7 @@ IsaSerialReceiveTransmit ( // // For half handshake flow control, tell DCE we are done. // - if (SerialDevice->UseHalfHandshake) { + if (FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)) { Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress); Mcr.Bits.Rts = 1; WRITE_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Mcr.Data); diff --git a/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.h b/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.h index 8d985a408f..c7f2105f62 100644 --- a/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.h +++ b/IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.h @@ -109,7 +109,6 @@ typedef struct { BOOLEAN HardwareFlowControl; EFI_UART_TYPE Type; EFI_UNICODE_STRING_TABLE *ControllerNameTable; - BOOLEAN UseHalfHandshake; } SERIAL_DEV; #define SERIAL_DEV_FROM_THIS(a) CR (a, SERIAL_DEV, SerialIo, SERIAL_DEV_SIGNATURE) diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec index 0bb6cacff1..775b651043 100644 --- a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec +++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec @@ -123,6 +123,9 @@ ## This PCD specifies whether PciBus supports the hot plug device. gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE|BOOLEAN|0x0001003d + ## This PCD specifies whether Serial device use half hand shake. + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE|BOOLEAN|0x00010043 + [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 @@ -143,9 +146,6 @@ # The default value in DxePhase is 128 KBytes. gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|UINT16|0x00010025 - ## This PCD specifies whether Serial device use half hand shake. - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE|BOOLEAN|0x00010043 - [PcdsDynamic] ## PCD is used to mark if the machine has complete one boot cycle before. # After the complete boot, the variable BootState will be set to TRUE. diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc index f821d69e9f..8a69f89e16 100644 --- a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc +++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc @@ -131,6 +131,7 @@ gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|FALSE gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE [PcdsFixedAtBuild.common] gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000 @@ -150,7 +151,6 @@ gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1 gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1 gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|0 - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE [PcdsDynamicDefault.PEIM.DEFAULT] gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1