]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Introduce one PCD PcdCpuInitIpiDelayInMicroSeconds to specify the delay value after...
authorJeff Fan <jeff.fan@intel.com>
Thu, 10 Jul 2014 02:12:27 +0000 (02:12 +0000)
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 10 Jul 2014 02:12:27 +0000 (02:12 +0000)
Its default value is 10 millisecond per IA32 manual.
Platform could customize this PCD value for performance requirement.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Kinney, Michael <michael.d.kinney@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15650 6f19259b-4bc3-4df7-8a09-765794883524

UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c
UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.inf
UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c
UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf
UefiCpuPkg/UefiCpuPkg.dec

index bd97fae9c2c37dd84456a04e063447d065f3c9d7..6bf9c43dc945cb2edc76206b6d8ded01fac435ca 100644 (file)
@@ -3,7 +3,7 @@
 \r
   This local APIC library instance supports xAPIC mode only.\r
 \r
-  Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -438,7 +438,7 @@ SendInitSipiSipi (
   ASSERT ((StartupRoutine & 0xfff) == 0);\r
 \r
   SendInitIpi (ApicId);\r
-  MicroSecondDelay (10);\r
+  MicroSecondDelay (PcdGet32(PcdCpuInitIpiDelayInMicroSeconds));\r
   IcrLow.Uint32 = 0;\r
   IcrLow.Bits.Vector = (StartupRoutine >> 12);\r
   IcrLow.Bits.DeliveryMode = LOCAL_APIC_DELIVERY_MODE_STARTUP;\r
@@ -471,7 +471,7 @@ SendInitSipiSipiAllExcludingSelf (
   ASSERT ((StartupRoutine & 0xfff) == 0);\r
 \r
   SendInitIpiAllExcludingSelf ();\r
-  MicroSecondDelay (10);\r
+  MicroSecondDelay (PcdGet32(PcdCpuInitIpiDelayInMicroSeconds));\r
   IcrLow.Uint32 = 0;\r
   IcrLow.Bits.Vector = (StartupRoutine >> 12);\r
   IcrLow.Bits.DeliveryMode = LOCAL_APIC_DELIVERY_MODE_STARTUP;\r
index 5f0f0be1bbdc5741ca8cb460660932bca22e3415..4257b157e7aea4f7412a4ea3fbf432fca9ae6100 100644 (file)
@@ -3,7 +3,7 @@
 #\r
 #  This library instance supports xAPIC mode only.\r
 #\r
-#  Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
@@ -41,3 +41,5 @@
   TimerLib\r
   IoLib\r
 \r
+[Pcd]\r
+  gUefiCpuPkgTokenSpaceGuid.PcdCpuInitIpiDelayInMicroSeconds\r
index 23dc7910ae68178be10b35f612f2d77466f5521c..ec54d01eb6653e6aaf769e6085334bad263b0a7b 100644 (file)
@@ -4,7 +4,7 @@
   This local APIC library instance supports x2APIC capable processors\r
   which have xAPIC and x2APIC modes.\r
 \r
-  Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -517,7 +517,7 @@ SendInitSipiSipi (
   ASSERT ((StartupRoutine & 0xfff) == 0);\r
 \r
   SendInitIpi (ApicId);\r
-  MicroSecondDelay (10);\r
+  MicroSecondDelay (PcdGet32(PcdCpuInitIpiDelayInMicroSeconds));\r
   IcrLow.Uint32 = 0;\r
   IcrLow.Bits.Vector = (StartupRoutine >> 12);\r
   IcrLow.Bits.DeliveryMode = LOCAL_APIC_DELIVERY_MODE_STARTUP;\r
@@ -550,7 +550,7 @@ SendInitSipiSipiAllExcludingSelf (
   ASSERT ((StartupRoutine & 0xfff) == 0);\r
 \r
   SendInitIpiAllExcludingSelf ();\r
-  MicroSecondDelay (10);\r
+  MicroSecondDelay (PcdGet32(PcdCpuInitIpiDelayInMicroSeconds));\r
   IcrLow.Uint32 = 0;\r
   IcrLow.Bits.Vector = (StartupRoutine >> 12);\r
   IcrLow.Bits.DeliveryMode = LOCAL_APIC_DELIVERY_MODE_STARTUP;\r
index baece39a4362e2d54181df0ecedb19020a7266a1..bc6182d80dc1541179bbee32a64973db6b2f38f1 100644 (file)
@@ -4,7 +4,7 @@
 #  This library instance supports x2APIC capable processors\r
 #  which have xAPIC and x2APIC modes.\r
 #\r
-#  Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
@@ -42,3 +42,6 @@
   TimerLib\r
   IoLib\r
 \r
+[Pcd]\r
+  gUefiCpuPkgTokenSpaceGuid.PcdCpuInitIpiDelayInMicroSeconds\r
+\r
index 1e115408a1be3db663d0a5aad9bbb32053950c58..53f1726664c36a8431e23e3a7f2146de8ece4e96 100644 (file)
@@ -43,4 +43,6 @@
 \r
 [PcdsFixedAtBuild, PcdsPatchableInModule]\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress|0xfee00000|UINT32|0x00000001\r
+  ## Specifies delay value in microseconds after sending out an INIT IPI\r
+  gUefiCpuPkgTokenSpaceGuid.PcdCpuInitIpiDelayInMicroSeconds|10000|UINT32|0x30000002\r
 \r