Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimer.c
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimer.c	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimer.c	(revision 85718)
@@ -1,4 +1,4 @@
 /** @file
-  Timer Architectural Protocol module using High Precesion Event Timer (HPET)
+  Timer Architectural Protocol module using High Precision Event Timer (HPET)
 
   Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
@@ -247,5 +247,5 @@
   Write a 64-bit HPET register.
 
-  @param  Offset  Specifies the ofsfert of the HPET register to write.
+  @param  Offset  Specifies the offset of the HPET register to write.
   @param  Value   Specifies the value to write to the HPET register specified by Offset.
 
@@ -531,5 +531,5 @@
     //
 
-    if (mTimerConfiguration.Bits.MsiInterruptCapablity != 0 && FeaturePcdGet (PcdHpetMsiEnable)) {
+    if (mTimerConfiguration.Bits.MsiInterruptCapability != 0 && FeaturePcdGet (PcdHpetMsiEnable)) {
       //
       // Disable HPET MSI interrupt generation
@@ -577,5 +577,5 @@
     // Enable HPET Timer interrupt generation
     //
-    if (mTimerConfiguration.Bits.MsiInterruptCapablity != 0 && FeaturePcdGet (PcdHpetMsiEnable)) {
+    if (mTimerConfiguration.Bits.MsiInterruptCapability != 0 && FeaturePcdGet (PcdHpetMsiEnable)) {
       //
       // Program MSI Address and MSI Data values in the selected HPET Timer
@@ -835,5 +835,5 @@
     // Check to see if this HPET Timer supports MSI
     //
-    if (mTimerConfiguration.Bits.MsiInterruptCapablity != 0) {
+    if (mTimerConfiguration.Bits.MsiInterruptCapability != 0) {
       //
       // Save the index of the first HPET Timer that supports MSI interrupts
@@ -960,5 +960,5 @@
   //
   DEBUG_CODE (
-    if (mTimerConfiguration.Bits.MsiInterruptCapablity != 0 && FeaturePcdGet (PcdHpetMsiEnable)) {
+    if (mTimerConfiguration.Bits.MsiInterruptCapability != 0 && FeaturePcdGet (PcdHpetMsiEnable)) {
       DEBUG ((DEBUG_INFO, "HPET Interrupt Mode MSI\n"));
     } else {
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf	(revision 85718)
@@ -1,4 +1,4 @@
 ## @file
-# Timer Architectural Protocol module using High Precesion Event Timer (HPET).
+# Timer Architectural Protocol module using High Precision Event Timer (HPET).
 #
 # Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.uni
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.uni	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.uni	(revision 85718)
@@ -1,4 +1,4 @@
 // /** @file
-// Timer Architectural Protocol module using High Precesion Event Timer (HPET).
+// Timer Architectural Protocol module using High Precision Event Timer (HPET).
 //
 // Timer Architectural Protocol module using High Precision Event Timer (HPET).
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Include/Library/IoApicLib.h
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Include/Library/IoApicLib.h	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Include/Library/IoApicLib.h	(revision 85718)
@@ -64,5 +64,5 @@
 
   Configure an I/O APIC Redirection Table Entry to deliver an interrupt in physical
-  mode to the Local APIC of the currntly executing CPU.  The default state of the
+  mode to the Local APIC of the currently executing CPU.  The default state of the
   entry is for the interrupt to be disabled (masked).  IoApicEnableInterrupts() must
   be used to enable(unmask) the I/O APIC Interrupt.
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Include/Register/Hpet.h
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Include/Register/Hpet.h	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Include/Register/Hpet.h	(revision 85718)
@@ -71,6 +71,6 @@
     UINT32  InterruptEnable:1;
     UINT32  PeriodicInterruptEnable:1;
-    UINT32  PeriodicInterruptCapablity:1;
-    UINT32  CounterSizeCapablity:1;
+    UINT32  PeriodicInterruptCapability:1;
+    UINT32  CounterSizeCapability:1;
     UINT32  ValueSetEnable:1;
     UINT32  Reserved1:1;
@@ -78,5 +78,5 @@
     UINT32  InterruptRoute:5;
     UINT32  MsiInterruptEnable:1;
-    UINT32  MsiInterruptCapablity:1;
+    UINT32  MsiInterruptCapability:1;
     UINT32  Reserved2:16;
     UINT32  InterruptRouteCapability;
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/AcpiTimerLib/AcpiTimerLib.c
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/AcpiTimerLib/AcpiTimerLib.c	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/AcpiTimerLib/AcpiTimerLib.c	(revision 85718)
@@ -60,5 +60,5 @@
   //
   // If the register offset to the BAR for the ACPI I/O Port Base Address is 0x0000, then
-  // no PCI register programming is required to enable access to the the ACPI registers
+  // no PCI register programming is required to enable access to the ACPI registers
   // specified by PcdAcpiIoPortBaseAddress
   //
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/BaseIoApicLib/IoApicLib.c
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/BaseIoApicLib/IoApicLib.c	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/BaseIoApicLib/IoApicLib.c	(revision 85718)
@@ -95,5 +95,5 @@
 
   Configure an I/O APIC Redirection Table Entry to deliver an interrupt in physical
-  mode to the Local APIC of the currntly executing CPU.  The default state of the
+  mode to the Local APIC of the currently executing CPU.  The default state of the
   entry is for the interrupt to be disabled (masked).  IoApicEnableInterrupts() must
   be used to enable(unmask) the I/O APIC Interrupt.
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/ResetSystemLib/ResetSystemLib.c
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/ResetSystemLib/ResetSystemLib.c	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/ResetSystemLib/ResetSystemLib.c	(revision 85718)
@@ -67,21 +67,4 @@
 
 /**
-  Calling this function causes the system to enter a power state for capsule
-  update.
-
-  Reset update should not return, if it returns, it means the system does
-  not support capsule update.
-
-**/
-VOID
-EFIAPI
-EnterS3WithImmediateWake (
-  VOID
-  )
-{
-  ASSERT (FALSE);
-}
-
-/**
   This function causes a systemwide reset. The exact type of the reset is
   defined by the EFI_GUID that follows the Null-terminated Unicode string passed
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c	(revision 85718)
@@ -59,5 +59,5 @@
 
   @retval RETURN_SUCCESS        The serial device was initialized.
-  @retval RETURN_DEVICE_ERROR   The serail device could not be initialized.
+  @retval RETURN_DEVICE_ERROR   The serial device could not be initialized.
 
 **/
@@ -140,5 +140,5 @@
   while ((NumberOfBytes--) != 0) {
     //
-    // Wait for the serail port to be ready.
+    // Wait for the serial port to be ready.
     //
     do {
@@ -181,5 +181,5 @@
   while ((NumberOfBytes--) != 0) {
     //
-    // Wait for the serail port to be ready.
+    // Wait for the serial port to be ready.
     //
     do {
@@ -196,5 +196,5 @@
   Polls a serial device to see if there is any data waiting to be read.
 
-  Polls aserial device to see if there is any data waiting to be read.
+  Polls a serial device to see if there is any data waiting to be read.
   If there is data waiting to be read from the serial device, then TRUE is returned.
   If there is no data waiting to be read from the serial device, then FALSE is returned.
@@ -340,5 +340,5 @@
 
 /**
-  Sets the baud rate, receive FIFO depth, transmit/receice time out, parity,
+  Sets the baud rate, receive FIFO depth, transmit/receive time out, parity,
   data bits, and stop bits on a serial device.
 
@@ -346,5 +346,5 @@
                             device's default interface speed.
                             On output, the value actually set.
-  @param ReveiveFifoDepth   The requested depth of the FIFO on the receive side of the
+  @param ReceiveFifoDepth   The requested depth of the FIFO on the receive side of the
                             serial interface. A ReceiveFifoDepth value of 0 will use
                             the device's default FIFO depth.
@@ -359,5 +359,5 @@
                             On output, the value actually set.
   @param DataBits           The number of data bits to use on the serial device. A DataBits
-                            vaule of 0 will use the device's default data bit setting.
+                            value of 0 will use the device's default data bit setting.
                             On output, the value actually set.
   @param StopBits           The number of stop bits to use on this serial device. A StopBits
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml	(revision 85718)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml	(revision 85718)
@@ -0,0 +1,46 @@
+## @file
+# CI configuration for PcAtChipsetPkg
+#
+# Copyright (c) Microsoft Corporation
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+{
+    "CompilerPlugin": {
+        "DscPath": "PcAtChipsetPkg.dsc"
+    },
+    "CharEncodingCheck": {
+        "IgnoreFiles": []
+    },
+    "DependencyCheck": {
+        "AcceptableDependencies": [
+            "MdePkg/MdePkg.dec",
+            "PcAtChipsetPkg/PcAtChipsetPkg.dec",
+            "UefiCpuPkg/UefiCpuPkg.dec"
+        ],
+        # For host based unit tests
+        "AcceptableDependencies-HOST_APPLICATION":[],
+        # For UEFI shell based apps
+        "AcceptableDependencies-UEFI_APPLICATION":[],
+        "IgnoreInf": []
+    },
+    "DscCompleteCheck": {
+        "DscPath": "PcAtChipsetPkg.dsc",
+        "IgnoreInf": []
+    },
+    "GuidCheck": {
+        "IgnoreGuidName": [],
+        "IgnoreGuidValue": [],
+        "IgnoreFoldersAndFiles": [],
+         "IgnoreDuplicates": []
+    },
+    "LibraryClassCheck": {
+        "IgnoreHeaderFile": []
+    },
+    "SpellCheck": {
+        "ExtendWords": [
+            "ENUMER", # this is part of an IDE enum
+            "PCATCHIPSET",
+            "TXRDY"
+        ]
+    }
+}
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.dec
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.dec	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.dec	(revision 85718)
@@ -5,5 +5,5 @@
 # PcAt defacto standard.
 #
-# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.<BR>
 # Copyright (c) 2017, AMD Inc. All rights reserved.<BR>
 #
@@ -51,5 +51,5 @@
   gPcAtChipsetPkgTokenSpaceGuid.PcdHpetLocalApicVector|0x40|UINT8|0x0000000A
 
-  ## This PCD specifies the defaut period of the HPET Timer in 100 ns units.
+  ## This PCD specifies the default period of the HPET Timer in 100 ns units.
   #  The default value of 100000 100 ns units is the same as 10 ms.
   # @Prompt Default period of HPET timer.
@@ -139,4 +139,8 @@
   gPcAtChipsetPkgTokenSpaceGuid.PcdRtcTargetRegister|0x71|UINT8|0x0000001F
 
+  ## RTC Update Timeout Value(microsecond).
+  # @Prompt RTC Update Timeout Value.
+  gPcAtChipsetPkgTokenSpaceGuid.PcdRealTimeClockUpdateTimeout|100000|UINT32|0x00000020
+
 [UserExtensions.TianoCore."ExtraFiles"]
   PcAtChipsetPkgExtra.uni
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.uni
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.uni	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcAtChipsetPkg.uni	(revision 85718)
@@ -116,2 +116,5 @@
 #string STR_gPcAtChipsetPkgTokenSpaceGuid_PcdRtcTargetRegister_PROMPT         #language en-US "RTC Target Register address"
 #string STR_gPcAtChipsetPkgTokenSpaceGuid_PcdRtcTargetRegister_HELP           #language en-US "Specifies RTC Target Register address in I/O space."
+
+#string STR_gPcAtChipsetPkgTokenSpaceGuid_PcdRealTimeClockUpdateTimeout_PROMPT #language en-US "RTC Update Timeout Value"
+#string STR_gPcAtChipsetPkgTokenSpaceGuid_PcdRealTimeClockUpdateTimeout_HELP   #language en-US "RTC Update Timeout Value(microsecond)."
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c	(revision 85718)
@@ -1052,7 +1052,7 @@
 
 /**
-  Converts time from EFI_TIME format defined by UEFI spec to RTC's.
-
-  This function converts time from EFI_TIME format defined by UEFI spec to RTC's.
+  Converts time from EFI_TIME format defined by UEFI spec to RTC format.
+
+  This function converts time from EFI_TIME format defined by UEFI spec to RTC format.
   If data mode of RTC is BCD, then converts EFI_TIME to it.
   If RTC is in 12-hour format, then converts EFI_TIME to it.
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.h
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.h	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.h	(revision 85718)
@@ -111,5 +111,5 @@
   UINT8 Af : 1;       // Alarm Interrupt Flag
   UINT8 Pf : 1;       // Periodic Interrupt Flag
-  UINT8 Irqf : 1;     // Iterrupt Request Flag = PF & PIE | AF & AIE | UF & UIE
+  UINT8 Irqf : 1;     // Interrupt Request Flag = PF & PIE | AF & AIE | UF & UIE
 } RTC_REGISTER_C_BITS;
 
@@ -235,5 +235,5 @@
   The user Entry Point for PcRTC module.
 
-  This is the entrhy point for PcRTC module. It installs the UEFI runtime service
+  This is the entry point for PcRTC module. It installs the UEFI runtime service
   including GetTime(),SetTime(),GetWakeupTime(),and SetWakeupTime().
 
@@ -267,7 +267,7 @@
 
 /**
-  Converts time from EFI_TIME format defined by UEFI spec to RTC's.
-
-  This function converts time from EFI_TIME format defined by UEFI spec to RTC's.
+  Converts time from EFI_TIME format defined by UEFI spec to RTC format.
+
+  This function converts time from EFI_TIME format defined by UEFI spec to RTC format.
   If data mode of RTC is BCD, then converts EFI_TIME to it.
   If RTC is in 12-hour format, then converts EFI_TIME to it.
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c	(revision 85718)
@@ -109,5 +109,5 @@
   The user Entry Point for PcRTC module.
 
-  This is the entrhy point for PcRTC module. It installs the UEFI runtime service
+  This is the entry point for PcRTC module. It installs the UEFI runtime service
   including GetTime(),SetTime(),GetWakeupTime(),and SetWakeupTime().
 
Index: trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
===================================================================
--- trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf	(revision 85716)
+++ trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf	(revision 85718)
@@ -5,5 +5,5 @@
 # It will install a tagging protocol with gEfiRealTimeClockArchProtocolGuid.
 #
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 # Copyright (c) 2017, AMD Inc. All rights reserved.<BR>
 #
@@ -34,5 +34,4 @@
 [Packages]
   MdePkg/MdePkg.dec
-  MdeModulePkg/MdeModulePkg.dec
   PcAtChipsetPkg/PcAtChipsetPkg.dec
 
@@ -69,5 +68,5 @@
 
 [Pcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdRealTimeClockUpdateTimeout  ## CONSUMES
+  gPcAtChipsetPkgTokenSpaceGuid.PcdRealTimeClockUpdateTimeout   ## CONSUMES
   gPcAtChipsetPkgTokenSpaceGuid.PcdMinimalValidYear             ## CONSUMES
   gPcAtChipsetPkgTokenSpaceGuid.PcdMaximalValidYear             ## CONSUMES
