3 Copyright (c) 2005, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 Driver implementing the Tiano Legacy 8259 Protocol
24 #include <FrameworkDxe.h>
26 #include <Protocol/CpuIo.h>
27 #include <Protocol/Legacy8259.h>
29 #include <Library/UefiBootServicesTableLib.h>
30 #include <Library/DebugLib.h>
33 // 8259 Hardware definitions
35 #define LEGACY_MODE_BASE_VECTOR_MASTER 0x08
36 #define LEGACY_MODE_BASE_VECTOR_SLAVE 0x70
38 #define PROTECTED_MODE_BASE_VECTOR_MASTER 0x68
39 #define PROTECTED_MODE_BASE_VECTOR_SLAVE 0x70
41 #define LEGACY_8259_CONTROL_REGISTER_MASTER 0x20
42 #define LEGACY_8259_MASK_REGISTER_MASTER 0x21
43 #define LEGACY_8259_CONTROL_REGISTER_SLAVE 0xA0
44 #define LEGACY_8259_MASK_REGISTER_SLAVE 0xA1
45 #define LEGACY_8259_EDGE_LEVEL_TRIGGERED_REGISTER_MASTER 0x4D0
46 #define LEGACY_8259_EDGE_LEVEL_TRIGGERED_REGISTER_SLAVE 0x4D1
48 #define LEGACY_8259_EOI 0x20
51 // Protocol Function Prototypes
55 Interrupt8259SetVectorBase (
56 IN EFI_LEGACY_8259_PROTOCOL
*This
,
64 TODO: Add function description
68 This - TODO: add argument description
69 MasterBase - TODO: add argument description
70 SlaveBase - TODO: add argument description
74 TODO: add return values
81 Interrupt8259GetMask (
82 IN EFI_LEGACY_8259_PROTOCOL
* This
,
83 OUT UINT16
*LegacyMask
, OPTIONAL
84 OUT UINT16
*LegacyEdgeLevel
, OPTIONAL
85 OUT UINT16
*ProtectedMask
, OPTIONAL
86 OUT UINT16
*ProtectedEdgeLevel OPTIONAL
92 TODO: Add function description
96 This - TODO: add argument description
97 LegacyMask - TODO: add argument description
98 LegacyEdgeLevel - TODO: add argument description
99 ProtectedMask - TODO: add argument description
100 ProtectedEdgeLevel - TODO: add argument description
104 TODO: add return values
111 Interrupt8259SetMask (
112 IN EFI_LEGACY_8259_PROTOCOL
* This
,
113 IN UINT16
*LegacyMask
, OPTIONAL
114 IN UINT16
*LegacyEdgeLevel
, OPTIONAL
115 IN UINT16
*ProtectedMask
, OPTIONAL
116 IN UINT16
*ProtectedEdgeLevel OPTIONAL
122 TODO: Add function description
126 This - TODO: add argument description
127 LegacyMask - TODO: add argument description
128 LegacyEdgeLevel - TODO: add argument description
129 ProtectedMask - TODO: add argument description
130 ProtectedEdgeLevel - TODO: add argument description
134 TODO: add return values
141 Interrupt8259SetMode (
142 IN EFI_LEGACY_8259_PROTOCOL
* This
,
143 IN EFI_8259_MODE Mode
,
144 IN UINT16
*Mask
, OPTIONAL
145 IN UINT16
*EdgeLevel OPTIONAL
151 TODO: Add function description
155 This - TODO: add argument description
156 Mode - TODO: add argument description
157 Mask - TODO: add argument description
158 EdgeLevel - TODO: add argument description
162 TODO: add return values
169 Interrupt8259GetVector (
170 IN EFI_LEGACY_8259_PROTOCOL
*This
,
178 TODO: Add function description
182 This - TODO: add argument description
183 Irq - TODO: add argument description
184 Vector - TODO: add argument description
188 TODO: add return values
195 Interrupt8259EnableIrq (
196 IN EFI_LEGACY_8259_PROTOCOL
*This
,
198 IN BOOLEAN LevelTriggered
204 TODO: Add function description
208 This - TODO: add argument description
209 Irq - TODO: add argument description
210 LevelTriggered - TODO: add argument description
214 TODO: add return values
221 Interrupt8259DisableIrq (
222 IN EFI_LEGACY_8259_PROTOCOL
*This
,
229 TODO: Add function description
233 This - TODO: add argument description
234 Irq - TODO: add argument description
238 TODO: add return values
245 Interrupt8259GetInterruptLine (
246 IN EFI_LEGACY_8259_PROTOCOL
*This
,
247 IN EFI_HANDLE PciHandle
,
254 TODO: Add function description
258 This - TODO: add argument description
259 PciHandle - TODO: add argument description
260 Vector - TODO: add argument description
264 TODO: add return values
271 Interrupt8259EndOfInterrupt (
272 IN EFI_LEGACY_8259_PROTOCOL
*This
,
279 TODO: Add function description
283 This - TODO: add argument description
284 Irq - TODO: add argument description
288 TODO: add return values