]> git.proxmox.com Git - mirror_edk2.git/blobdiff - PcAtChipsetPkg/8259InterruptControllerDxe/8259.c
Add generic HPET Timer DXE Driver and support libraries
[mirror_edk2.git] / PcAtChipsetPkg / 8259InterruptControllerDxe / 8259.c
index 02b286b16a38880f9152d9602118ce27f6998cfa..5a862d13b8021d823b59c48ecafbf4e90ab4bb77 100644 (file)
@@ -1,14 +1,14 @@
-/**@file\r
+/** @file\r
   This contains the installation function for the driver.\r
-  \r
-Copyright (c) 2005 - 2009, Intel Corporation                                                         \r
-All rights reserved. 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
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Copyright (c) 2005 - 2011, 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
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
@@ -17,7 +17,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 //\r
 // Global for the Legacy 8259 Protocol that is produced by this driver\r
 //\r
-EFI_LEGACY_8259_PROTOCOL  m8259 = {\r
+EFI_LEGACY_8259_PROTOCOL  mInterrupt8259 = {\r
   Interrupt8259SetVectorBase,\r
   Interrupt8259GetMask,\r
   Interrupt8259SetMask,\r
@@ -38,9 +38,9 @@ UINT8                     mMasterBase             = 0xff;
 UINT8                     mSlaveBase              = 0xff;\r
 EFI_8259_MODE             mMode                   = Efi8259ProtectedMode;\r
 UINT16                    mProtectedModeMask      = 0xffff;\r
-UINT16                    mLegacyModeMask         = 0x06b8;\r
+UINT16                    mLegacyModeMask;\r
 UINT16                    mProtectedModeEdgeLevel = 0x0000;\r
-UINT16                    mLegacyModeEdgeLevel    = 0x0000;\r
+UINT16                    mLegacyModeEdgeLevel;\r
 \r
 //\r
 // Worker Functions\r
@@ -351,7 +351,6 @@ Interrupt8259SetMode (
     //\r
     // Write new legacy mode mask/trigger level\r
     //\r
-    Interrupt8259SetVectorBase (This, LEGACY_MODE_BASE_VECTOR_MASTER, LEGACY_MODE_BASE_VECTOR_SLAVE);\r
     Interrupt8259WriteMask (mLegacyModeMask, mLegacyModeEdgeLevel);\r
 \r
     return EFI_SUCCESS;\r
@@ -387,7 +386,6 @@ Interrupt8259SetMode (
     //\r
     // Write new protected mode mask/trigger level\r
     //\r
-    Interrupt8259SetVectorBase (This, PROTECTED_MODE_BASE_VECTOR_MASTER, PROTECTED_MODE_BASE_VECTOR_SLAVE);\r
     Interrupt8259WriteMask (mProtectedModeMask, mProtectedModeEdgeLevel);\r
 \r
     return EFI_SUCCESS;\r
@@ -590,17 +588,23 @@ Install8259 (
   EFI_STATUS   Status;\r
   EFI_8259_IRQ Irq;\r
 \r
+  //\r
+  // Initialze mask values from PCDs\r
+  //\r
+  mLegacyModeMask      = PcdGet16 (Pcd8259LegacyModeMask);\r
+  mLegacyModeEdgeLevel = PcdGet16 (Pcd8259LegacyModeEdgeLevel);\r
+\r
   //\r
   // Clear all pending interrupt\r
   //\r
   for (Irq = Efi8259Irq0; Irq <= Efi8259Irq15; Irq++) {\r
-    Interrupt8259EndOfInterrupt (&m8259, Irq);\r
+    Interrupt8259EndOfInterrupt (&mInterrupt8259, Irq);\r
   }\r
 \r
   //\r
   // Set the 8259 Master base to 0x68 and the 8259 Slave base to 0x70\r
   //\r
-  Status = Interrupt8259SetVectorBase (&m8259, PROTECTED_MODE_BASE_VECTOR_MASTER, PROTECTED_MODE_BASE_VECTOR_SLAVE);\r
+  Status = Interrupt8259SetVectorBase (&mInterrupt8259, PROTECTED_MODE_BASE_VECTOR_MASTER, PROTECTED_MODE_BASE_VECTOR_SLAVE);\r
 \r
   //\r
   // Set all 8259 interrupts to edge triggered and disabled\r
@@ -614,8 +618,7 @@ Install8259 (
                   &m8259Handle,\r
                   &gEfiLegacy8259ProtocolGuid,\r
                   EFI_NATIVE_INTERFACE,\r
-                  &m8259\r
+                  &mInterrupt8259\r
                   );\r
   return Status;\r
 }\r
-\r