Replace Fixed PCD with Feature PCD for useHalfHandshake to reduce code size.
authorgikidy <gikidy@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 10 Jul 2009 07:55:14 +0000 (07:55 +0000)
committergikidy <gikidy@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 10 Jul 2009 07:55:14 +0000 (07:55 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8862 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf
IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.c
IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.h
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc

index 4c8c08fd539370a3b1408edb89e3f02b62222b63..3429b8f8b80a6a1e21b7547e9b1408f500efac38 100644 (file)
@@ -65,4 +65,6 @@
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|8\r
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1\r
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1\r
+\r
+[FeaturePcd.common]\r
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE\r
index c50e532ee3a6c77e4fcf0709d226995652749e6f..4a86257e73266d55186fe3f68b87d5e052c6d7a7 100644 (file)
@@ -83,8 +83,7 @@ SERIAL_DEV  gSerialDevTempate = {
   FALSE,\r
   FALSE,\r
   Uart16550A,\r
-  NULL,\r
-  FixedPcdGetBool (PcdIsaBusSerialUseHalfHandshake)   //UseHalfHandshake\r
+  NULL\r
 };\r
 \r
 /**\r
@@ -807,7 +806,7 @@ IsaSerialReceiveTransmit (
     // 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
@@ -844,7 +843,7 @@ IsaSerialReceiveTransmit (
           // 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
@@ -873,7 +872,7 @@ IsaSerialReceiveTransmit (
           //\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
@@ -883,7 +882,7 @@ IsaSerialReceiveTransmit (
           //\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
@@ -893,7 +892,7 @@ IsaSerialReceiveTransmit (
             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
@@ -901,7 +900,7 @@ IsaSerialReceiveTransmit (
           //\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
index 8d985a408f9c879a2a9130a3ea4024419a4d6c84..c7f2105f6264095f5f45cd08f2574ab82c99e2aa 100644 (file)
@@ -109,7 +109,6 @@ typedef struct {
   BOOLEAN                                HardwareFlowControl;\r
   EFI_UART_TYPE                          Type;\r
   EFI_UNICODE_STRING_TABLE               *ControllerNameTable;\r
-  BOOLEAN                                UseHalfHandshake;\r
 } SERIAL_DEV;\r
 \r
 #define SERIAL_DEV_FROM_THIS(a) CR (a, SERIAL_DEV, SerialIo, SERIAL_DEV_SIGNATURE)\r
index 0bb6cacff1fae18f97540978f66a7f17b6828a52..775b65104394a5ad834c801cf8a98f546db39f41 100644 (file)
   ## 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
index f821d69e9f83757f7ef84c694dac08edd058b7a4..8a69f89e16657aa4e9efed70cdad98a0f7e2a3af 100644 (file)
   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