diff options
author | geekboy15a <geekboy15a@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-05-18 20:29:14 +0000 |
---|---|---|
committer | geekboy15a <geekboy15a@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-05-18 20:29:14 +0000 |
commit | d4605c23eae95c80804ba592f19b5e8ae2afddb1 (patch) | |
tree | 4e4fee21ae102d9de3f5a448b5a9647cd440562d | |
parent | c5ae1de611ec60371ec8711711354c5c6c96bb1e (diff) | |
download | edk2-d4605c23eae95c80804ba592f19b5e8ae2afddb1.zip edk2-d4605c23eae95c80804ba592f19b5e8ae2afddb1.tar.gz edk2-d4605c23eae95c80804ba592f19b5e8ae2afddb1.tar.bz2 |
UefiCpuPkg: Added code to enable Local APIC.
This patch enables interrupt delivery via the Local APIC as part of the initialization process.
Signed-off-by: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Rosenbaum, Lee G <lee.g.rosenbaum@intel.com>
Reviewed-by: Sun Rui <rui.sun@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13338 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r-- | UefiCpuPkg/CpuDxe/CpuDxe.c | 13 | ||||
-rw-r--r-- | UefiCpuPkg/CpuDxe/CpuDxe.h | 3 | ||||
-rw-r--r-- | UefiCpuPkg/CpuDxe/CpuDxe.inf | 3 |
3 files changed, 13 insertions, 6 deletions
diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.c b/UefiCpuPkg/CpuDxe/CpuDxe.c index 89dd2df..17513e7 100644 --- a/UefiCpuPkg/CpuDxe/CpuDxe.c +++ b/UefiCpuPkg/CpuDxe/CpuDxe.c @@ -1,7 +1,7 @@ /** @file
CPU DXE Module.
- Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -969,7 +969,7 @@ RefreshGcdMemoryAttributes ( // Go for variable MTRRs with the attribute except for WB and UC attributes
//
for (Index = 0; Index < FirmwareVariableMtrrCount; Index++) {
- if (VariableMtrr[Index].Valid &&
+ if (VariableMtrr[Index].Valid &&
VariableMtrr[Index].Type != MTRR_CACHE_WRITE_BACK &&
VariableMtrr[Index].Type != MTRR_CACHE_UNCACHEABLE) {
Attributes = GetMemorySpaceAttributeFromMtrrType ((UINT8) VariableMtrr[Index].Type);
@@ -1161,7 +1161,7 @@ InitInterruptDescriptorTable ( // preserve it.
//
if (Index < OldIdtSize) {
- IntHandler =
+ IntHandler =
(VOID*) (
OldIdt[Index].Bits.OffsetLow +
(OldIdt[Index].Bits.OffsetHigh << 16)
@@ -1209,7 +1209,7 @@ InitInterruptDescriptorTable ( /**
Callback function for idle events.
-
+
@param Event Event whose notification function is being invoked.
@param Context The pointer to the notification function's context,
which is implementation-dependent.
@@ -1263,6 +1263,11 @@ InitializeCpu ( InitInterruptDescriptorTable ();
//
+ // Enable the local APIC for Virtual Wire Mode.
+ //
+ ProgramVirtualWireMode ();
+
+ //
// Install CPU Architectural Protocol
//
Status = gBS->InstallMultipleProtocolInterfaces (
diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.h b/UefiCpuPkg/CpuDxe/CpuDxe.h index 6d0d83b..9baccb2 100644 --- a/UefiCpuPkg/CpuDxe/CpuDxe.h +++ b/UefiCpuPkg/CpuDxe/CpuDxe.h @@ -1,7 +1,7 @@ /** @file
CPU DXE Module.
- Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -28,6 +28,7 @@ #include <Library/MemoryAllocationLib.h>
#include <Library/DebugLib.h>
#include <Library/MtrrLib.h>
+#include <Library/LocalApicLib.h>
#include <Guid/IdleLoopEvent.h>
//
diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.inf b/UefiCpuPkg/CpuDxe/CpuDxe.inf index 0c70b32..3373efa 100644 --- a/UefiCpuPkg/CpuDxe/CpuDxe.inf +++ b/UefiCpuPkg/CpuDxe/CpuDxe.inf @@ -2,7 +2,7 @@ #
# Component description file for simple CPU driver
#
-# Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
@@ -37,6 +37,7 @@ MtrrLib
UefiBootServicesTableLib
UefiDriverEntryPoint
+ LocalApicLib
[Sources]
CpuDxe.c
|