/** @file Header file for the Ps2 keyboard controller library. Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PS2_KBC_LIB_H_ #define _PS2_KBC_LIB_H_ #include #include #include #include #include #include #include // // Below is the platform console device path // typedef struct { ACPI_HID_DEVICE_PATH PciRootBridge; PCI_DEVICE_PATH IsaBridge; ACPI_HID_DEVICE_PATH Keyboard; EFI_DEVICE_PATH_PROTOCOL End; } PLATFORM_KEYBOARD_DEVICE_PATH; typedef struct { UINT8 Segment; UINT8 Bus; UINT8 Device; UINT8 Funtion; } SIO_PCI_ISA_BRIDGE_DEVICE_INFO; #define gPciRootBridge \ { \ { \ ACPI_DEVICE_PATH, \ ACPI_DP, \ { \ (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), \ (UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) \ }, \ }, \ EISA_PNP_ID (0x0A03), \ 0 \ } #define gEndEntire \ { \ END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, { END_DEVICE_PATH_LENGTH, 0 } \ } #define KBC_INPBUF_VIA60_KBECHO 0xEE #define KEYBOARD_8042_DATA_REGISTER 0x60 #define KEYBOARD_8042_STATUS_REGISTER 0x64 #define PS2_KEYBOARD_TIMEOUT 65536 // 0.07s #define PS2_KEYBOARD_WAITFORVALUE_TIMEOUT 1000000 // 1s #define PS2_KEYBOARD_KBEN 0xF4 #define PS2_KEYBOARD_CMDECHO_ACK 0xFA #endif