4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ISA ACPI Protocol Implementation
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncare licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncwhich accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynchttp://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "PcatIsaAcpi.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Platform specific data for the ISA devices that are present.in the platform
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// COM 1 UART Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE mPcatIsaAcpiCom1DeviceResources[] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceIo, 0, 0x3f8, 0x3ff},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceInterrupt, 0, 4, 0},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// COM 2 UART Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE mPcatIsaAcpiCom2DeviceResources[] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceIo, 0, 0x2f8, 0x2ff},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceInterrupt, 0, 3, 0},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// PS/2 Keyboard Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE mPcatIsaAcpiPs2KeyboardDeviceResources[] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceIo, 0, 0x60, 0x64},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceInterrupt, 0, 1, 0},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// PS/2 Mouse Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE mPcatIsaAcpiPs2MouseDeviceResources[] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceIo, 0, 0x60, 0x64},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceInterrupt, 0, 12, 0},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Floppy Disk Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE mPcatIsaAcpiFloppyResources[] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceIo, 0, 0x3f0, 0x3f7},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceInterrupt, 0, 6, 0},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceDma, EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_COMPATIBLE | EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8 | EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE, 2, 0},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiCom1Device = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EISA_PNP_ID(0x501), 0}, mPcatIsaAcpiCom1DeviceResources
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}; // COM 1 UART Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiCom2Device = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EISA_PNP_ID(0x501), 1}, mPcatIsaAcpiCom2DeviceResources
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}; // COM 2 UART Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiPs2KeyboardDevice = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EISA_PNP_ID(0x303), 0}, mPcatIsaAcpiPs2KeyboardDeviceResources
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}; // PS/2 Keyboard Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiPs2MouseDevice = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EISA_PNP_ID(0x303), 1}, mPcatIsaAcpiPs2MouseDeviceResources
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}; // PS/2 Mouse Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiFloppyADevice = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EISA_PNP_ID(0x604), 0}, mPcatIsaAcpiFloppyResources
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}; // Floppy Disk Controller A:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiFloppyBDevice = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {EISA_PNP_ID(0x604), 1}, mPcatIsaAcpiFloppyResources
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}; // Floppy Disk Controller B:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Table of ISA Controllers
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_ISA_ACPI_RESOURCE_LIST gPcatIsaAcpiDeviceList[7] = {0};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Initialize gPcatIsaAcpiDeviceList.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncInitializePcatIsaAcpiDeviceList (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Index;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index = 0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (PcdGetBool (PcdIsaAcpiCom1Enable)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiCom1Device, sizeof(mPcatIsaAcpiCom1Device));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (PcdGetBool (PcdIsaAcpiCom2Enable)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiCom2Device, sizeof(mPcatIsaAcpiCom2Device));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (PcdGetBool (PcdIsaAcpiPs2KeyboardEnable)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiPs2KeyboardDevice, sizeof(mPcatIsaAcpiPs2KeyboardDevice));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (PcdGetBool (PcdIsaAcpiPs2MouseEnable)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiPs2MouseDevice, sizeof(mPcatIsaAcpiPs2MouseDevice));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (PcdGetBool (PcdIsaAcpiFloppyAEnable)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiFloppyADevice, sizeof(mPcatIsaAcpiFloppyADevice));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (PcdGetBool (PcdIsaAcpiFloppyBEnable)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiFloppyBDevice, sizeof(mPcatIsaAcpiFloppyBDevice));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// ISA ACPI Protocol Functions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Enumerate the ISA devices on the ISA bus.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Device Point to device ID instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IsaAcpiDevice On return, point to resource data for Isa device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param NextIsaAcpiDevice On return, point to resource data for next Isa device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaDeviceLookup (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_DEVICE_ID *Device,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_ISA_ACPI_RESOURCE_LIST **IsaAcpiDevice,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_ISA_ACPI_RESOURCE_LIST **NextIsaAcpiDevice
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Index;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *IsaAcpiDevice = NULL;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (NextIsaAcpiDevice != NULL) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *NextIsaAcpiDevice = NULL;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (Device == NULL) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index = 0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync } else {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for(Index = 0; gPcatIsaAcpiDeviceList[Index].ResourceItem != NULL; Index++) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (Device->HID == gPcatIsaAcpiDeviceList[Index].Device.HID &&
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Device->UID == gPcatIsaAcpiDeviceList[Index].Device.UID ) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (gPcatIsaAcpiDeviceList[Index].ResourceItem == NULL) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *IsaAcpiDevice = &(gPcatIsaAcpiDeviceList[Index]);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Index++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (gPcatIsaAcpiDeviceList[Index].ResourceItem != NULL && NextIsaAcpiDevice != NULL) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *NextIsaAcpiDevice = &(gPcatIsaAcpiDeviceList[Index]);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Enumerate the ISA devices on the ISA bus
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Device Point to device ID instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND Can not found the next Isa device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCESS Success retrieve the next Isa device for enumration.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaDeviceEnumerate (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_ISA_ACPI_DEVICE_ID **Device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ISA_ACPI_RESOURCE_LIST *IsaAcpiDevice;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ISA_ACPI_RESOURCE_LIST *NextIsaAcpiDevice;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IsaDeviceLookup (*Device, &IsaAcpiDevice, &NextIsaAcpiDevice);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (NextIsaAcpiDevice == NULL) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_NOT_FOUND;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *Device = &(NextIsaAcpiDevice->Device);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set ISA device power
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Device Point to device ID instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param OnOff TRUE for setting isa device power on,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FALSE for setting isa device power off
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_SUCCESS Sucess to change power status for isa device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaDeviceSetPower (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_DEVICE_ID *Device,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN OnOff
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get current resource for the specific ISA device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Device Point to device ID instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ResourceList On return, point to resources instances for given isa device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND Can not found the resource instance for given isa device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Success to get resource instance for given isa device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaGetCurrentResource (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_DEVICE_ID *Device,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IsaDeviceLookup (Device, ResourceList, NULL);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (*ResourceList == NULL) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_NOT_FOUND;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get possible resource for the specific ISA device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Device Point to device ID instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ResourceList On return, point to resources instances for given isa device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Success to get resource instance for given isa device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaGetPossibleResource (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_DEVICE_ID *Device,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set resource for the specific ISA device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Device Point to device ID instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ResourceList Point to resources instances for given isa device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_SUCESS Success to set resource.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaSetResource (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_DEVICE_ID *Device,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_RESOURCE_LIST *ResourceList
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Enable/Disable the specific ISA device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Device Point to device ID instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Enable Enable/Disable
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_SUCESS Success to enable/disable.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaEnableDevice (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_DEVICE_ID *Device,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN Enable
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Initialize the specific ISA device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Device Point to device ID instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_SUCESS Success to initialize.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaInitDevice (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_DEVICE_ID *Device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Initialize the ISA interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_SUCESS Success to initialize ISA interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsaInterfaceInit (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ISA_ACPI_PROTOCOL *This
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}