hikey: Add UEFI sources for reference
UEFI needs to be built outside Android build system.
Please follow the instructions in README.
The sources correspond to:
https://github.com/96boards/edk2/commit/14eae0c12e71fd33c4c0fc51e4475e8db02566cf
https://github.com/96boards/arm-trusted-firmware/commit/e9b4909dcd75fc4ae7041cfb83d28ab9adb7afdf
https://github.com/96boards/l-loader/commit/6b784ad5c4ab00e2b1c6f53cd5f74054e5d00a78
https://git.linaro.org/uefi/uefi-tools.git/commit/abe618f8ab72034fff1ce46c9c006a2c6bd40a7e
Change-Id: Ieeefdb63e673e0c8e64e0a1f02c7bddc63b2c7fb
Signed-off-by: Vishal Bhoj <vishal.bhoj@linaro.org>
diff --git a/uefi/linaro-edk2/PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.c b/uefi/linaro-edk2/PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.c
new file mode 100644
index 0000000..7b1ab1c
--- /dev/null
+++ b/uefi/linaro-edk2/PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.c
@@ -0,0 +1,359 @@
+/** @file
+ ISA ACPI Protocol Implementation
+
+Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+**/
+
+#include "PcatIsaAcpi.h"
+
+//
+// Platform specific data for the ISA devices that are present.in the platform
+//
+
+//
+// COM 1 UART Controller
+//
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiCom1DeviceResources[] = {
+ {EfiIsaAcpiResourceIo, 0, 0x3f8, 0x3ff},
+ {EfiIsaAcpiResourceInterrupt, 0, 4, 0},
+ {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
+};
+
+//
+// COM 2 UART Controller
+//
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiCom2DeviceResources[] = {
+ {EfiIsaAcpiResourceIo, 0, 0x2f8, 0x2ff},
+ {EfiIsaAcpiResourceInterrupt, 0, 3, 0},
+ {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
+};
+
+//
+// PS/2 Keyboard Controller
+//
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiPs2KeyboardDeviceResources[] = {
+ {EfiIsaAcpiResourceIo, 0, 0x60, 0x64},
+ {EfiIsaAcpiResourceInterrupt, 0, 1, 0},
+ {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
+};
+
+//
+// PS/2 Mouse Controller
+//
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiPs2MouseDeviceResources[] = {
+ {EfiIsaAcpiResourceIo, 0, 0x60, 0x64},
+ {EfiIsaAcpiResourceInterrupt, 0, 12, 0},
+ {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
+};
+
+//
+// Floppy Disk Controller
+//
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE mPcatIsaAcpiFloppyResources[] = {
+ {EfiIsaAcpiResourceIo, 0, 0x3f0, 0x3f7},
+ {EfiIsaAcpiResourceInterrupt, 0, 6, 0},
+ {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},
+ {EfiIsaAcpiResourceEndOfList, 0, 0, 0}
+};
+
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiCom1Device = {
+ {EISA_PNP_ID(0x501), 0}, mPcatIsaAcpiCom1DeviceResources
+}; // COM 1 UART Controller
+
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiCom2Device = {
+ {EISA_PNP_ID(0x501), 1}, mPcatIsaAcpiCom2DeviceResources
+}; // COM 2 UART Controller
+
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiPs2KeyboardDevice = {
+ {EISA_PNP_ID(0x303), 0}, mPcatIsaAcpiPs2KeyboardDeviceResources
+}; // PS/2 Keyboard Controller
+
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiPs2MouseDevice = {
+ {EISA_PNP_ID(0x303), 1}, mPcatIsaAcpiPs2MouseDeviceResources
+}; // PS/2 Mouse Controller
+
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiFloppyADevice = {
+ {EISA_PNP_ID(0x604), 0}, mPcatIsaAcpiFloppyResources
+}; // Floppy Disk Controller A:
+
+GLOBAL_REMOVE_IF_UNREFERENCED
+EFI_ISA_ACPI_RESOURCE_LIST mPcatIsaAcpiFloppyBDevice = {
+ {EISA_PNP_ID(0x604), 1}, mPcatIsaAcpiFloppyResources
+}; // Floppy Disk Controller B:
+
+//
+// Table of ISA Controllers
+//
+EFI_ISA_ACPI_RESOURCE_LIST gPcatIsaAcpiDeviceList[7] = {{{0, 0}, NULL}};
+
+/**
+ Initialize gPcatIsaAcpiDeviceList.
+**/
+VOID
+InitializePcatIsaAcpiDeviceList (
+ VOID
+ )
+{
+ UINTN Index;
+
+ Index = 0;
+ if (PcdGetBool (PcdIsaAcpiCom1Enable)) {
+ CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiCom1Device, sizeof(mPcatIsaAcpiCom1Device));
+ Index++;
+ }
+ if (PcdGetBool (PcdIsaAcpiCom2Enable)) {
+ CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiCom2Device, sizeof(mPcatIsaAcpiCom2Device));
+ Index++;
+ }
+ if (PcdGetBool (PcdIsaAcpiPs2KeyboardEnable)) {
+ CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiPs2KeyboardDevice, sizeof(mPcatIsaAcpiPs2KeyboardDevice));
+ Index++;
+ }
+ if (PcdGetBool (PcdIsaAcpiPs2MouseEnable)) {
+ CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiPs2MouseDevice, sizeof(mPcatIsaAcpiPs2MouseDevice));
+ Index++;
+ }
+ if (PcdGetBool (PcdIsaAcpiFloppyAEnable)) {
+ CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiFloppyADevice, sizeof(mPcatIsaAcpiFloppyADevice));
+ Index++;
+ }
+ if (PcdGetBool (PcdIsaAcpiFloppyBEnable)) {
+ CopyMem (&gPcatIsaAcpiDeviceList[Index], &mPcatIsaAcpiFloppyBDevice, sizeof(mPcatIsaAcpiFloppyBDevice));
+ Index++;
+ }
+}
+
+//
+// ISA ACPI Protocol Functions
+//
+/**
+ Enumerate the ISA devices on the ISA bus.
+
+ @param Device Point to device ID instance
+ @param IsaAcpiDevice On return, point to resource data for Isa device
+ @param NextIsaAcpiDevice On return, point to resource data for next Isa device
+**/
+VOID
+IsaDeviceLookup (
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ OUT EFI_ISA_ACPI_RESOURCE_LIST **IsaAcpiDevice,
+ OUT EFI_ISA_ACPI_RESOURCE_LIST **NextIsaAcpiDevice
+ )
+{
+ UINTN Index;
+
+ *IsaAcpiDevice = NULL;
+ if (NextIsaAcpiDevice != NULL) {
+ *NextIsaAcpiDevice = NULL;
+ }
+ if (Device == NULL) {
+ Index = 0;
+ } else {
+ for(Index = 0; gPcatIsaAcpiDeviceList[Index].ResourceItem != NULL; Index++) {
+ if (Device->HID == gPcatIsaAcpiDeviceList[Index].Device.HID &&
+ Device->UID == gPcatIsaAcpiDeviceList[Index].Device.UID ) {
+ break;
+ }
+ }
+ if (gPcatIsaAcpiDeviceList[Index].ResourceItem == NULL) {
+ return;
+ }
+ *IsaAcpiDevice = &(gPcatIsaAcpiDeviceList[Index]);
+ Index++;
+ }
+ if (gPcatIsaAcpiDeviceList[Index].ResourceItem != NULL && NextIsaAcpiDevice != NULL) {
+ *NextIsaAcpiDevice = &(gPcatIsaAcpiDeviceList[Index]);
+ }
+}
+
+/**
+ Enumerate the ISA devices on the ISA bus
+
+
+ @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
+ @param Device Point to device ID instance
+
+ @retval EFI_NOT_FOUND Can not found the next Isa device.
+ @retval EFI_SUCESS Success retrieve the next Isa device for enumration.
+
+**/
+EFI_STATUS
+EFIAPI
+IsaDeviceEnumerate (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ OUT EFI_ISA_ACPI_DEVICE_ID **Device
+ )
+{
+ EFI_ISA_ACPI_RESOURCE_LIST *IsaAcpiDevice;
+ EFI_ISA_ACPI_RESOURCE_LIST *NextIsaAcpiDevice;
+
+ IsaDeviceLookup (*Device, &IsaAcpiDevice, &NextIsaAcpiDevice);
+ if (NextIsaAcpiDevice == NULL) {
+ return EFI_NOT_FOUND;
+ }
+ *Device = &(NextIsaAcpiDevice->Device);
+ return EFI_SUCCESS;
+}
+
+/**
+ Set ISA device power
+
+
+ @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
+ @param Device Point to device ID instance
+ @param OnOff TRUE for setting isa device power on,
+ FALSE for setting isa device power off
+
+ @return EFI_SUCCESS Sucess to change power status for isa device.
+**/
+EFI_STATUS
+EFIAPI
+IsaDeviceSetPower (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ IN BOOLEAN OnOff
+ )
+{
+ return EFI_SUCCESS;
+}
+
+/**
+ Get current resource for the specific ISA device.
+
+ @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
+ @param Device Point to device ID instance
+ @param ResourceList On return, point to resources instances for given isa device
+
+ @retval EFI_NOT_FOUND Can not found the resource instance for given isa device
+ @retval EFI_SUCCESS Success to get resource instance for given isa device.
+**/
+EFI_STATUS
+EFIAPI
+IsaGetCurrentResource (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList
+ )
+{
+ IsaDeviceLookup (Device, ResourceList, NULL);
+ if (*ResourceList == NULL) {
+ return EFI_NOT_FOUND;
+ }
+ return EFI_SUCCESS;
+}
+
+/**
+ Get possible resource for the specific ISA device.
+
+ @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
+ @param Device Point to device ID instance
+ @param ResourceList On return, point to resources instances for given isa device
+
+ @retval EFI_SUCCESS Success to get resource instance for given isa device.
+**/
+EFI_STATUS
+EFIAPI
+IsaGetPossibleResource (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList
+ )
+{
+ return EFI_SUCCESS;
+}
+
+/**
+ Set resource for the specific ISA device.
+
+ @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
+ @param Device Point to device ID instance
+ @param ResourceList Point to resources instances for given isa device
+
+ @return EFI_SUCESS Success to set resource.
+
+**/
+EFI_STATUS
+EFIAPI
+IsaSetResource (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ IN EFI_ISA_ACPI_RESOURCE_LIST *ResourceList
+ )
+{
+ return EFI_SUCCESS;
+}
+
+/**
+ Enable/Disable the specific ISA device.
+
+ @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
+ @param Device Point to device ID instance
+ @param Enable Enable/Disable
+
+ @return EFI_SUCESS Success to enable/disable.
+
+**/
+EFI_STATUS
+EFIAPI
+IsaEnableDevice (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ IN BOOLEAN Enable
+ )
+{
+ return EFI_SUCCESS;
+}
+
+/**
+ Initialize the specific ISA device.
+
+ @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
+ @param Device Point to device ID instance
+
+ @return EFI_SUCESS Success to initialize.
+
+**/
+EFI_STATUS
+EFIAPI
+IsaInitDevice (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device
+ )
+{
+ return EFI_SUCCESS;
+}
+
+
+/**
+ Initialize the ISA interface.
+
+ @param This Point to instance of EFI_ISA_ACPI_PROTOCOL
+
+ @return EFI_SUCESS Success to initialize ISA interface.
+
+**/
+EFI_STATUS
+EFIAPI
+IsaInterfaceInit (
+ IN EFI_ISA_ACPI_PROTOCOL *This
+)
+{
+ return EFI_SUCCESS;
+}