1 /*++ 2 3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> 4 5 This program and the accompanying materials are licensed and made available under 7 the terms and conditions of the BSD License that accompanies this distribution. 9 The full text of the license may be found at 11 http://opensource.org/licenses/bsd-license.php. 13 15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 21 23 Module Name: 24 25 LegacyMetronome.h 26 27 Abstract: 28 29 Driver implementing the EFI 2.0 metronome protocol using the legacy PORT 61 30 timer. 31 32 --*/ 33 34 #ifndef _LEGACY_METRONOME_H 35 #define _LEGACY_METRONOME_H 36 37 // 38 // Statements that include other files 39 // 40 #include "Protocol/Metronome.h" 41 #include "Protocol/CpuIo.h" 42 #include "Library/DebugLib.h" 43 #include "Library/UefiBootServicesTableLib.h" 44 45 46 // 47 // Private definitions 48 // 49 #define TICK_PERIOD 300 50 #define REFRESH_PORT 0x61 51 #define REFRESH_ON 0x10 52 #define REFRESH_OFF 0x00 53 #define TIMER1_CONTROL_PORT 0x43 54 #define TIMER1_COUNT_PORT 0x41 55 #define LOAD_COUNTER1_LSB 0x54 56 #define COUNTER1_COUNT 0x12 57 58 // 59 // Function Prototypes 60 // 61 /** 62 Waits for the TickNumber of ticks from a known platform time source. 63 64 @param This Pointer to the protocol instance. 65 @param TickNumber Tick Number to be waited 66 67 @retval EFI_SUCCESS If number of ticks occurred. 68 @retval EFI_NOT_FOUND Could not locate CPU IO protocol 69 70 **/ 71 EFI_STATUS 72 EFIAPI 73 WaitForTick ( 74 IN EFI_METRONOME_ARCH_PROTOCOL *This, 75 IN UINT32 TickNumber 76 ); 77 78 #endif 79