]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add PcdFastPS2Detection to improve PS2 keyboard driver start performance.
authorli-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 11 Oct 2012 07:01:22 +0000 (07:01 +0000)
committerli-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 11 Oct 2012 07:01:22 +0000 (07:01 +0000)
Signed-off-by: Li Elvin <elvin.li@intel.com>
Reviewed-by: Yao Jiewen<jiewen.yao@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13820 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KbdCtrller.c
IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2Keyboard.c
IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf
IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/BiosKeyboard.c
IntelFrameworkModulePkg/Csm/BiosThunk/KeyboardDxe/KeyboardDxe.inf
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec

index 4ad80c17c12928aec6a3a9a70acbc53a7f0da8c3..05b62f6a8ce0a5d90756066d2cf3a4fc10fd60f4 100644 (file)
@@ -1519,16 +1519,18 @@ InitKeyboard (
   // Perform a read to cleanup the Status Register's\r
   // output buffer full bits within MAX TRY times\r
   //\r
-  while (!EFI_ERROR (Status) && TryTime < KEYBOARD_MAX_TRY) {\r
-    Status = KeyboardRead (ConsoleIn, &CommandByte);\r
-    TryTime ++;\r
-  }\r
-  //\r
-  // Exceed the max try times. The device may be error.\r
-  //\r
-  if (TryTime == KEYBOARD_MAX_TRY) {\r
-       Status = EFI_DEVICE_ERROR;\r
-       goto Done;\r
+  if ((KeyReadStatusRegister (ConsoleIn) & KEYBOARD_STATUS_REGISTER_HAS_OUTPUT_DATA)) {\r
+    while (!EFI_ERROR (Status) && TryTime < KEYBOARD_MAX_TRY) {\r
+      Status = KeyboardRead (ConsoleIn, &CommandByte);\r
+      TryTime ++;\r
+    }\r
+    //\r
+    // Exceed the max try times. The device may be error.\r
+    //\r
+    if (TryTime == KEYBOARD_MAX_TRY) {\r
+       Status = EFI_DEVICE_ERROR;\r
+       goto Done;\r
+    }\r
   }\r
   //\r
   // We should disable mouse interface during the initialization process\r
@@ -1543,34 +1545,37 @@ InitKeyboard (
   // time initialization\r
   //\r
   if ((KeyReadStatusRegister (ConsoleIn) & KEYBOARD_STATUS_REGISTER_SYSTEM_FLAG) != 0) {\r
-    //\r
-    // 8042 controller is already setup (by myself or by mouse driver):\r
-    //   See whether mouse interface is already enabled\r
-    //   which determines whether we should enable it later\r
-    //\r
-    //\r
-    // Read the command byte of 8042 controller\r
-    //\r
-    Status = KeyboardCommand (ConsoleIn, KEYBOARD_8042_COMMAND_READ);\r
-    if (EFI_ERROR (Status)) {\r
-      KeyboardError (ConsoleIn, L"\n\r");\r
-      goto Done;\r
-    }\r
-\r
-    Status = KeyboardRead (ConsoleIn, &CommandByte);\r
-    if (EFI_ERROR (Status)) {\r
-      KeyboardError (ConsoleIn, L"\n\r");\r
-      goto Done;\r
-    }\r
-    //\r
-    // Test the mouse enabling bit\r
-    //\r
-    if ((CommandByte & 0x20) != 0) {\r
-      mEnableMouseInterface = FALSE;\r
+    if (!PcdGetBool (PcdFastPS2Detection)) {\r
+      //\r
+      // 8042 controller is already setup (by myself or by mouse driver):\r
+      //   See whether mouse interface is already enabled\r
+      //   which determines whether we should enable it later\r
+      //\r
+      //\r
+      // Read the command byte of 8042 controller\r
+      //\r
+      Status = KeyboardCommand (ConsoleIn, KEYBOARD_8042_COMMAND_READ);\r
+      if (EFI_ERROR (Status)) {\r
+        KeyboardError (ConsoleIn, L"\n\r");\r
+        goto Done;\r
+      }\r
+      \r
+      Status = KeyboardRead (ConsoleIn, &CommandByte);\r
+      if (EFI_ERROR (Status)) {\r
+        KeyboardError (ConsoleIn, L"\n\r");\r
+        goto Done;\r
+      }\r
+      //\r
+      // Test the mouse enabling bit\r
+      //\r
+      if ((CommandByte & 0x20) != 0) {\r
+        mEnableMouseInterface = FALSE;\r
+      } else {\r
+        mEnableMouseInterface = TRUE;\r
+      }\r
     } else {\r
-      mEnableMouseInterface = TRUE;\r
-    }\r
-\r
+      mEnableMouseInterface = FALSE;\r
+    } \r
   } else {\r
     //\r
     // 8042 controller is not setup yet:\r
@@ -1580,36 +1585,38 @@ InitKeyboard (
     //\r
     // Disable keyboard and mouse interfaces\r
     //\r
-    Status = KeyboardCommand (ConsoleIn, KEYBOARD_8042_COMMAND_DISABLE_KEYBOARD_INTERFACE);\r
-    if (EFI_ERROR (Status)) {\r
-      KeyboardError (ConsoleIn, L"\n\r");\r
-      goto Done;\r
-    }\r
-\r
-    Status = KeyboardCommand (ConsoleIn, KEYBOARD_8042_COMMAND_DISABLE_MOUSE_INTERFACE);\r
-    if (EFI_ERROR (Status)) {\r
-      KeyboardError (ConsoleIn, L"\n\r");\r
-      goto Done;\r
-    }\r
-\r
-    REPORT_STATUS_CODE_WITH_DEVICE_PATH (\r
-      EFI_PROGRESS_CODE,\r
-      EFI_PERIPHERAL_KEYBOARD | EFI_P_KEYBOARD_PC_SELF_TEST,\r
-      ConsoleIn->DevicePath\r
-      );\r
-    //\r
-    // 8042 Controller Self Test\r
-    //\r
-    Status = KeyboardCommand (ConsoleIn, KEYBOARD_8042_COMMAND_CONTROLLER_SELF_TEST);\r
-    if (EFI_ERROR (Status)) {\r
-      KeyboardError (ConsoleIn, L"8042 controller command write error!\n\r");\r
-      goto Done;\r
-    }\r
-\r
-    Status = KeyboardWaitForValue (ConsoleIn, 0x55);\r
-    if (EFI_ERROR (Status)) {\r
-      KeyboardError (ConsoleIn, L"8042 controller self test failed!\n\r");\r
-      goto Done;\r
+    if (!PcdGetBool (PcdFastPS2Detection)) {\r
+      Status = KeyboardCommand (ConsoleIn, KEYBOARD_8042_COMMAND_DISABLE_KEYBOARD_INTERFACE);\r
+      if (EFI_ERROR (Status)) {\r
+        KeyboardError (ConsoleIn, L"\n\r");\r
+        goto Done;\r
+      }\r
+      \r
+      Status = KeyboardCommand (ConsoleIn, KEYBOARD_8042_COMMAND_DISABLE_MOUSE_INTERFACE);\r
+      if (EFI_ERROR (Status)) {\r
+        KeyboardError (ConsoleIn, L"\n\r");\r
+        goto Done;\r
+      }\r
+      \r
+      REPORT_STATUS_CODE_WITH_DEVICE_PATH (\r
+        EFI_PROGRESS_CODE,\r
+        EFI_PERIPHERAL_KEYBOARD | EFI_P_KEYBOARD_PC_SELF_TEST,\r
+        ConsoleIn->DevicePath\r
+        );\r
+      //\r
+      // 8042 Controller Self Test\r
+      //\r
+      Status = KeyboardCommand (ConsoleIn, KEYBOARD_8042_COMMAND_CONTROLLER_SELF_TEST);\r
+      if (EFI_ERROR (Status)) {\r
+        KeyboardError (ConsoleIn, L"8042 controller command write error!\n\r");\r
+        goto Done;\r
+      }\r
+      \r
+      Status = KeyboardWaitForValue (ConsoleIn, 0x55);\r
+      if (EFI_ERROR (Status)) {\r
+        KeyboardError (ConsoleIn, L"8042 controller self test failed!\n\r");\r
+        goto Done;\r
+      }\r
     }\r
     //\r
     // Don't enable mouse interface later\r
@@ -1865,34 +1872,37 @@ CheckKeyboardConnect (
   EFI_STATUS     Status;\r
   UINTN          WaitForValueTimeOutBcakup;\r
 \r
-  Status = EFI_SUCCESS;\r
   //\r
   // enable keyboard itself and wait for its ack\r
   // If can't receive ack, Keyboard should not be connected.\r
   //\r
-  Status = KeyboardWrite (\r
-             ConsoleIn,\r
-             KEYBOARD_KBEN\r
-             );\r
-\r
-  if (EFI_ERROR (Status)) {\r
-    return FALSE;\r
-  }\r
-  //\r
-  // wait for 1s\r
-  //\r
-  WaitForValueTimeOutBcakup = mWaitForValueTimeOut;\r
-  mWaitForValueTimeOut = KEYBOARD_WAITFORVALUE_TIMEOUT;\r
-  Status = KeyboardWaitForValue (\r
-             ConsoleIn,\r
-             KEYBOARD_CMDECHO_ACK\r
-             );\r
-  mWaitForValueTimeOut = WaitForValueTimeOutBcakup;\r
-\r
-  if (EFI_ERROR (Status)) {\r
-    return FALSE;\r
+  if (!PcdGetBool (PcdFastPS2Detection)) {\r
+    Status = KeyboardWrite (\r
+               ConsoleIn,\r
+               KEYBOARD_KBEN\r
+               );\r
+    \r
+    if (EFI_ERROR (Status)) {\r
+      return FALSE;\r
+    }\r
+    //\r
+    // wait for 1s\r
+    //\r
+    WaitForValueTimeOutBcakup = mWaitForValueTimeOut;\r
+    mWaitForValueTimeOut = KEYBOARD_WAITFORVALUE_TIMEOUT;\r
+    Status = KeyboardWaitForValue (\r
+               ConsoleIn,\r
+               KEYBOARD_CMDECHO_ACK\r
+               );\r
+    mWaitForValueTimeOut = WaitForValueTimeOutBcakup;\r
+    \r
+    if (EFI_ERROR (Status)) {\r
+      return FALSE;\r
+    }\r
+    \r
+    return TRUE;\r
+  } else {\r
+    return TRUE;\r
   }\r
-\r
-  return TRUE;\r
 }\r
 \r
index c73cf936131830a75148cc95550ce7ed2f6a6b5d..4f8799087684332445329ea18c19af28e516580f 100644 (file)
@@ -263,15 +263,17 @@ KbdControllerDriverStart (
   //\r
   // Return code is ignored on purpose.\r
   //\r
-  KeyboardRead (ConsoleIn, &Data);\r
-  if ((KeyReadStatusRegister (ConsoleIn) & (KBC_PARE | KBC_TIM)) == (KBC_PARE | KBC_TIM)) {\r
-    //\r
-    // If nobody decodes KBC I/O port, it will read back as 0xFF.\r
-    // Check the Time-Out and Parity bit to see if it has an active KBC in system\r
-    //\r
-    Status      = EFI_DEVICE_ERROR;\r
-    StatusCode  = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;\r
-    goto ErrorExit;\r
+  if (!PcdGetBool (PcdFastPS2Detection)) {\r
+    KeyboardRead (ConsoleIn, &Data);\r
+    if ((KeyReadStatusRegister (ConsoleIn) & (KBC_PARE | KBC_TIM)) == (KBC_PARE | KBC_TIM)) {\r
+      //\r
+      // If nobody decodes KBC I/O port, it will read back as 0xFF.\r
+      // Check the Time-Out and Parity bit to see if it has an active KBC in system\r
+      //\r
+      Status      = EFI_DEVICE_ERROR;\r
+      StatusCode  = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_NOT_DETECTED;\r
+      goto ErrorExit;\r
+    }\r
   }\r
   \r
   //\r
index 61fd036c3c3779d102729f5d923ac95297819dc2..f2cc8b0061a0dea062c008504247f992d2e5324c 100644 (file)
@@ -68,6 +68,9 @@
 [FeaturePcd]\r
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPs2KbdExtendedVerification\r
 \r
+[Pcd]\r
+  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdFastPS2Detection\r
+\r
 # [Event]\r
 #   ##\r
 #   # Event will be signaled for WaitForKey event.\r
index 3f0f9b699b73dfe7cfba890aeae0d3d49dc68aef..4ee20df1f725bfad0337c7d1630afd7396ea1a4b 100644 (file)
@@ -1037,95 +1037,96 @@ BiosKeyboardReset (
   // if not skip step 4&5 and jump to step 6 to selftest KBC and report this\r
   // else   go step 4\r
   //\r
-  if ((KeyReadStatusRegister (BiosKeyboardPrivate) & KBC_STSREG_VIA64_SYSF) != 0) {\r
-    //\r
-    // 4\r
-    // CheckMouseStatus to decide enable it later or not\r
-    //\r
-    //\r
-    // Read the command byte of KBC\r
-    //\r
-    Status = KeyboardCommand (\r
-               BiosKeyboardPrivate,\r
-               KBC_CMDREG_VIA64_CMDBYTE_R\r
-               );\r
-\r
-    if (EFI_ERROR (Status)) {\r
-      Status    = EFI_DEVICE_ERROR;\r
-      goto Exit;\r
-    }\r
-\r
-    Status = KeyboardRead (\r
-               BiosKeyboardPrivate,\r
-               &CommandByte\r
-               );\r
-\r
-    if (EFI_ERROR (Status)) {\r
-      Status    = EFI_DEVICE_ERROR;\r
-      goto Exit;\r
-    }\r
-    //\r
-    // Check mouse enabled or not before\r
-    //\r
-    if ((CommandByte & KB_CMMBYTE_DISABLE_AUX) != 0) {\r
-      MouseEnable = FALSE;\r
+  if (!PcdGetBool (PcdFastPS2Detection)) {\r
+    if ((KeyReadStatusRegister (BiosKeyboardPrivate) & KBC_STSREG_VIA64_SYSF) != 0) {\r
+      //\r
+      // 4\r
+      // CheckMouseStatus to decide enable it later or not\r
+      //\r
+      //\r
+      // Read the command byte of KBC\r
+      //\r
+      Status = KeyboardCommand (\r
+                 BiosKeyboardPrivate,\r
+                 KBC_CMDREG_VIA64_CMDBYTE_R\r
+                 );\r
+      \r
+      if (EFI_ERROR (Status)) {\r
+        Status    = EFI_DEVICE_ERROR;\r
+        goto Exit;\r
+      }\r
+      \r
+      Status = KeyboardRead (\r
+                 BiosKeyboardPrivate,\r
+                 &CommandByte\r
+                 );\r
+      \r
+      if (EFI_ERROR (Status)) {\r
+        Status    = EFI_DEVICE_ERROR;\r
+        goto Exit;\r
+      }\r
+      //\r
+      // Check mouse enabled or not before\r
+      //\r
+      if ((CommandByte & KB_CMMBYTE_DISABLE_AUX) != 0) {\r
+        MouseEnable = FALSE;\r
+      } else {\r
+        MouseEnable = TRUE;\r
+      }\r
+      //\r
+      // 5\r
+      // disable mouse (via KBC) and Keyborad device\r
+      //\r
+      Status = KeyboardCommand (\r
+                 BiosKeyboardPrivate,\r
+                 KBC_CMDREG_VIA64_AUX_DISABLE\r
+                 );\r
+      \r
+      if (EFI_ERROR (Status)) {\r
+        Status    = EFI_DEVICE_ERROR;\r
+        goto Exit;\r
+      }\r
+      \r
+      Status = KeyboardCommand (\r
+                 BiosKeyboardPrivate,\r
+                 KBC_CMDREG_VIA64_KB_DISABLE\r
+                 );\r
+      \r
+      if (EFI_ERROR (Status)) {\r
+        Status    = EFI_DEVICE_ERROR;\r
+        goto Exit;\r
+      }\r
     } else {\r
-      MouseEnable = TRUE;\r
-    }\r
-    //\r
-    // 5\r
-    // disable mouse (via KBC) and Keyborad device\r
-    //\r
-    Status = KeyboardCommand (\r
-               BiosKeyboardPrivate,\r
-               KBC_CMDREG_VIA64_AUX_DISABLE\r
-               );\r
-\r
-    if (EFI_ERROR (Status)) {\r
-      Status    = EFI_DEVICE_ERROR;\r
-      goto Exit;\r
-    }\r
-\r
-    Status = KeyboardCommand (\r
-               BiosKeyboardPrivate,\r
-               KBC_CMDREG_VIA64_KB_DISABLE\r
-               );\r
-\r
-    if (EFI_ERROR (Status)) {\r
-      Status    = EFI_DEVICE_ERROR;\r
-      goto Exit;\r
-    }\r
-\r
-  } else {\r
-    //\r
-    // 6\r
-    // KBC Self Test\r
-    //\r
-    //\r
-    // Report a Progress Code for performing a self test on the keyboard controller\r
-    //\r
-    REPORT_STATUS_CODE (\r
-      EFI_PROGRESS_CODE,\r
-      EFI_PERIPHERAL_KEYBOARD | EFI_P_KEYBOARD_PC_SELF_TEST\r
-      );\r
-\r
-    Status = KeyboardCommand (\r
-               BiosKeyboardPrivate,\r
-               KBC_CMDREG_VIA64_KBC_SLFTEST\r
-               );\r
-    if (EFI_ERROR (Status)) {\r
-      Status    = EFI_DEVICE_ERROR;\r
-      goto Exit;\r
-    }\r
-\r
-    Status = KeyboardWaitForValue (\r
-               BiosKeyboardPrivate,\r
-               KBC_CMDECHO_KBCSLFTEST_OK,\r
-               KEYBOARD_WAITFORVALUE_TIMEOUT\r
-               );\r
-    if (EFI_ERROR (Status)) {\r
-      Status    = EFI_DEVICE_ERROR;\r
-      goto Exit;\r
+      //\r
+      // 6\r
+      // KBC Self Test\r
+      //\r
+      //\r
+      // Report a Progress Code for performing a self test on the keyboard controller\r
+      //    \r
+      REPORT_STATUS_CODE (\r
+        EFI_PROGRESS_CODE,\r
+        EFI_PERIPHERAL_KEYBOARD | EFI_P_KEYBOARD_PC_SELF_TEST\r
+        );\r
+      \r
+      Status = KeyboardCommand (\r
+                 BiosKeyboardPrivate,\r
+                 KBC_CMDREG_VIA64_KBC_SLFTEST\r
+                 );\r
+      if (EFI_ERROR (Status)) {\r
+        Status    = EFI_DEVICE_ERROR;\r
+        goto Exit;\r
+      }\r
+      \r
+      Status = KeyboardWaitForValue (\r
+                 BiosKeyboardPrivate,\r
+                 KBC_CMDECHO_KBCSLFTEST_OK,\r
+                 KEYBOARD_WAITFORVALUE_TIMEOUT\r
+                 );\r
+      if (EFI_ERROR (Status)) {\r
+        Status    = EFI_DEVICE_ERROR;\r
+        goto Exit;\r
+      }\r
     }\r
   }\r
   //\r
@@ -1321,14 +1322,16 @@ BiosKeyboardReset (
   // Done for validating keyboard. Enable keyboard (via KBC)\r
   // and recover the command byte to proper value\r
   //\r
-  Status = KeyboardCommand (\r
-             BiosKeyboardPrivate,\r
-             KBC_CMDREG_VIA64_KB_ENABLE\r
-             );\r
-\r
-  if (EFI_ERROR (Status)) {\r
-    Status    = EFI_DEVICE_ERROR;\r
-    goto Exit;\r
+  if (!PcdGetBool (PcdFastPS2Detection)) {\r
+    Status = KeyboardCommand (\r
+               BiosKeyboardPrivate,\r
+               KBC_CMDREG_VIA64_KB_ENABLE\r
+               );\r
+    \r
+    if (EFI_ERROR (Status)) {\r
+      Status    = EFI_DEVICE_ERROR;\r
+      goto Exit;\r
+    }\r
   }\r
 \r
   //\r
@@ -1674,35 +1677,38 @@ CheckKeyboardConnect (
   // enable keyboard itself and wait for its ack\r
   // If can't receive ack, Keyboard should not be connected.\r
   //\r
-  Status = KeyboardWrite (\r
-             BiosKeyboardPrivate,\r
-             KBC_INPBUF_VIA60_KBEN\r
-             );\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "[KBD]CheckKeyboardConnect - Keyboard enable failed!\n"));\r
-    REPORT_STATUS_CODE (\r
-      EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
-      EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR\r
-      );\r
-    return FALSE;\r
-  }\r
+  if (!PcdGetBool (PcdFastPS2Detection)) {\r
+    Status = KeyboardWrite (\r
+               BiosKeyboardPrivate,\r
+               KBC_INPBUF_VIA60_KBEN\r
+               );\r
+    if (EFI_ERROR (Status)) {\r
+      DEBUG ((EFI_D_ERROR, "[KBD]CheckKeyboardConnect - Keyboard enable failed!\n"));\r
+      REPORT_STATUS_CODE (\r
+        EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
+        EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR\r
+        );\r
+      return FALSE;\r
+    }\r
 \r
-  Status = KeyboardWaitForValue (\r
-             BiosKeyboardPrivate,\r
-             KBC_CMDECHO_ACK,\r
-             KEYBOARD_WAITFORVALUE_TIMEOUT\r
-             );\r
+    Status = KeyboardWaitForValue (\r
+               BiosKeyboardPrivate,\r
+               KBC_CMDECHO_ACK,\r
+               KEYBOARD_WAITFORVALUE_TIMEOUT\r
+               );\r
 \r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "[KBD]CheckKeyboardConnect - Timeout!\n"));\r
-    REPORT_STATUS_CODE (\r
-      EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
-      EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR\r
-      );\r
-    return FALSE;\r
+    if (EFI_ERROR (Status)) {\r
+      DEBUG ((EFI_D_ERROR, "[KBD]CheckKeyboardConnect - Timeout!\n"));\r
+      REPORT_STATUS_CODE (\r
+        EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
+        EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR\r
+        );\r
+      return FALSE;\r
+    }\r
+    return TRUE;\r
+  } else {\r
+    return TRUE;\r
   }\r
-\r
-  return TRUE;\r
 }\r
 \r
 /**\r
index 28ef29bf1cbf2dd0b74de9ea2ca3c86c27c4a1b9..ee79f6b607bf0387501691f452204c8b81c1d4be 100644 (file)
@@ -68,4 +68,7 @@
   gEfiDevicePathProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED\r
 \r
 [FeaturePcd]\r
-  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPs2KbdExtendedVerification|FALSE
\ No newline at end of file
+  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPs2KbdExtendedVerification|FALSE\r
+\r
+[Pcd]\r
+  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdFastPS2Detection
\ No newline at end of file
index 6a6228837d405479ee7256cb0258c8001cf9bb1d..3054bb732a6b4241d1694ca216e02eae130a744a 100644 (file)
   ## The PCD is used to specify the high PMM (Post Memory Manager) size with bytes above 1MB.\r
   #  The value should be a multiple of 4KB.\r
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdHighPmmMemorySize|0x400000|UINT32|0x3000000a\r
-  
\ No newline at end of file
+\r
+  ## This PCD specifies whether to use the optimized timing for best PS2 detection performance.\r
+  #  Note this PCD could be set to TRUE for best boot performance and set to FALSE for best device compatibility.\r
+  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdFastPS2Detection|FALSE|BOOLEAN|0x3000000b
\ No newline at end of file