From: "Kubacki, Michael A" <michael.a.kubacki@intel.com>
To: "Agyeman, Prince" <prince.agyeman@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Chiu, Chasel" <chasel.chiu@intel.com>,
"Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>
Subject: Re: [edk2-platforms] [Patch v2 2/9] SimicsOpenBoardPkg: Remove Super I/O DXE driver
Date: Thu, 7 Nov 2019 00:49:26 +0000 [thread overview]
Message-ID: <BY5PR11MB44840DF950BBE42343C13E26B5780@BY5PR11MB4484.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20191106012603.4724-3-prince.agyeman@intel.com>
Typo "BoardModulePky" -> "BoardModulePkg". Can be fixed before pushed.
Reviewed-by: Michael Kubacki <michael.a.kubacki@intel.com>
> -----Original Message-----
> From: Agyeman, Prince <prince.agyeman@intel.com>
> Sent: Tuesday, November 5, 2019 5:26 PM
> To: devel@edk2.groups.io
> Cc: Kubacki, Michael A <michael.a.kubacki@intel.com>; Chiu, Chasel
> <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>
> Subject: [edk2-platforms] [Patch v2 2/9] SimicsOpenBoardPkg: Remove
> Super I/O DXE driver
>
> Removed the Super I/O DXE driver from SimicsOpenBoardPkg.
> This driver will be added to the BoardModulePky as it is
> generic and can be shared by other open board packages
>
> Cc: Michael Kubacki <michael.a.kubacki@intel.com>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
>
> Signed-off-by: Prince Agyeman <prince.agyeman@intel.com>
> ---
> .../BoardX58Ich10/OpenBoardPkg.dsc | 1 -
> .../BoardX58Ich10/OpenBoardPkg.fdf | 1 -
> .../LegacySioDxe/ComponentName.c | 173 -----
> .../LegacySioDxe/ComponentName.h | 87 ---
> .../LegacySioDxe/LegacySioDxe.inf | 54 --
> .../LegacySioDxe/Register.h | 15 -
> .../SimicsOpenBoardPkg/LegacySioDxe/SioChip.c | 272 --------
> .../SimicsOpenBoardPkg/LegacySioDxe/SioChip.h | 195 ------
> .../LegacySioDxe/SioDriver.c | 600 ------------------
> .../LegacySioDxe/SioDriver.h | 134 ----
> .../LegacySioDxe/SioService.c | 249 --------
> .../LegacySioDxe/SioService.h | 143 -----
> 12 files changed, 1924 deletions(-)
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/ComponentName.c
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/ComponentName.h
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/LegacySioDxe.inf
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/Register.h
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioChip.c
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioChip.h
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioDriver.c
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioDriver.h
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioService.c
> delete mode 100644
> Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioService.h
>
> diff --git
> a/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc
> b/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc
> index 78f1e80990..e0a02b4efc 100644
> ---
> a/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc
> +++
> b/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.dsc
> @@ -280,7 +280,6 @@
> #######################################
> $(BOARD_PKG)/AcpiTables/AcpiTables.inf
> $(BOARD_PKG)/AcpiTables/MinPlatformAcpiTables/AcpiPlatform.inf
> - $(BOARD_PKG)/LegacySioDxe/LegacySioDxe.inf
> $(BOARD_PKG)/SimicsDxe/SimicsDxe.inf
> $(BOARD_PKG)/SimicsVideoDxe/SimicsVideoDxe.inf
> $(BOARD_PKG)/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
> diff --git
> a/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.fdf
> b/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.fdf
> index 39226251a7..6dc7b4aa56 100644
> --- a/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.fdf
> +++
> b/Platform/Intel/SimicsOpenBoardPkg/BoardX58Ich10/OpenBoardPkg.fdf
> @@ -213,7 +213,6 @@ INF
> MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
> INF MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
> INF MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
>
> -INF $(BOARD_PKG)/LegacySioDxe/LegacySioDxe.inf
> INF MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf
>
> INF $(BOARD_PKG)/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
> diff --git
> a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/ComponentName.c
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/ComponentName.c
> deleted file mode 100644
> index 4ba02f92c0..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/ComponentName.c
> +++ /dev/null
> @@ -1,173 +0,0 @@
> -/** @file
> - Install Base and Size Info Ppi for Firmware Volume Recovery.
> -
> - Copyright (c) 2013 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -#include "SioDriver.h"
> -
> -///
> -/// Component Name Protocol instance
> -///
> -GLOBAL_REMOVE_IF_UNREFERENCED
> EFI_COMPONENT_NAME_PROTOCOL mSioComponentName = {
> - SioComponentNameGetDriverName,
> - SioComponentNameGetControllerName,
> - "eng"
> -};
> -
> -///
> -/// Component Name 2 Protocol instance
> -///
> -GLOBAL_REMOVE_IF_UNREFERENCED
> EFI_COMPONENT_NAME2_PROTOCOL mSioComponentName2 = {
> - (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)
> SioComponentNameGetDriverName,
> -
> (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)SioComponentName
> GetControllerName,
> - "en"
> -};
> -
> -///
> -/// Table of driver names
> -///
> -GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE
> mSioDriverNameTable[] = {
> - {
> - "eng;en",
> - L"Super I/O Driver"
> - },
> - {
> - NULL,
> - NULL
> - }
> -};
> -
> -///
> -/// Table of Controller names
> -///
> -GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE
> mSioControllerNameTable[] = {
> - {
> - "eng;en",
> - L"Super I/O Controller"
> - },
> - {
> - NULL,
> - NULL
> - }
> -};
> -
> -/**
> - Retrieves a Unicode string that is the user-readable name of the EFI Driver.
> -
> - @param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL
> instance.
> - @param Language A pointer to a three-character ISO 639-2 language
> identifier.
> - This is the language of the driver name that that the caller
> - is requesting, and it must match one of the languages specified
> - in SupportedLanguages. The number of languages supported by
> a
> - driver is up to the driver writer.
> - @param DriverName A pointer to the Unicode string to return. This
> Unicode string
> - is the name of the driver specified by This in the language
> - specified by Language.
> -
> - @retval EFI_SUCCESS The Unicode string for the Driver specified by
> This
> - and the language specified by Language was returned
> - in DriverName.
> - @retval EFI_INVALID_PARAMETER Language is NULL.
> - @retval EFI_INVALID_PARAMETER DriverName is NULL.
> - @retval EFI_UNSUPPORTED The driver specified by This does not
> support the
> - language specified by Language.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioComponentNameGetDriverName (
> - IN EFI_COMPONENT_NAME_PROTOCOL *This,
> - IN CHAR8 *Language,
> - OUT CHAR16 **DriverName
> - )
> -{
> - return LookupUnicodeString2 (
> - Language,
> - This->SupportedLanguages,
> - mSioDriverNameTable,
> - DriverName,
> - (BOOLEAN)(This == &mSioComponentName)
> - );
> -}
> -
> -/**
> - Retrieves a Unicode string that is the user readable name of the controller
> - that is being managed by an EFI Driver.
> -
> - @param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL
> instance.
> - @param ControllerHandle The handle of a controller that the driver
> specified by
> - This is managing. This handle specifies the controller
> - whose name is to be returned.
> - @param ChildHandle The handle of the child controller to retrieve the
> name
> - of. This is an optional parameter that may be NULL. It
> - will be NULL for device drivers. It will also be NULL
> - for a bus drivers that wish to retrieve the name of the
> - bus controller. It will not be NULL for a bus driver
> - that wishes to retrieve the name of a child controller.
> - @param Language A pointer to a three character ISO 639-2 language
> - identifier. This is the language of the controller name
> - that the caller is requesting, and it must match one
> - of the languages specified in SupportedLanguages. The
> - number of languages supported by a driver is up to the
> - driver writer.
> - @param ControllerName A pointer to the Unicode string to return. This
> Unicode
> - string is the name of the controller specified by
> - ControllerHandle and ChildHandle in the language specified
> - by Language, from the point of view of the driver specified
> - by This.
> -
> - @retval EFI_SUCCESS The Unicode string for the user-readable name
> in the
> - language specified by Language for the driver
> - specified by This was returned in DriverName.
> - @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
> - @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a
> valid EFI_HANDLE.
> - @retval EFI_INVALID_PARAMETER Language is NULL.
> - @retval EFI_INVALID_PARAMETER ControllerName is NULL.
> - @retval EFI_UNSUPPORTED The driver specified by This is not currently
> managing
> - the controller specified by ControllerHandle and
> - ChildHandle.
> - @retval EFI_UNSUPPORTED The driver specified by This does not
> support the
> - language specified by Language.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioComponentNameGetControllerName (
> - IN EFI_COMPONENT_NAME_PROTOCOL *This,
> - IN EFI_HANDLE ControllerHandle,
> - IN EFI_HANDLE ChildHandle OPTIONAL,
> - IN CHAR8 *Language,
> - OUT CHAR16 **ControllerName
> - )
> -{
> - EFI_STATUS Status;
> -
> - //
> - // Make sure this driver is currently managing ControllHandle
> - //
> - Status = EfiTestManagedDevice (
> - ControllerHandle,
> - mSioDriver.DriverBindingHandle,
> - &gEfiPciIoProtocolGuid
> - );
> - if (EFI_ERROR (Status)) {
> - return Status;
> - }
> - //
> - // ChildHandle must be NULL for a Device Driver
> - //
> - if (ChildHandle != NULL) {
> - return EFI_UNSUPPORTED;
> - }
> -
> - return LookupUnicodeString2 (
> - Language,
> - This->SupportedLanguages,
> - mSioControllerNameTable,
> - ControllerName,
> - (BOOLEAN)(This == &mSioComponentName)
> - );
> -}
> diff --git
> a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/ComponentName.h
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/ComponentName.h
> deleted file mode 100644
> index 5368f94bcd..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/ComponentName.h
> +++ /dev/null
> @@ -1,87 +0,0 @@
> -/** @file
> - Install Base and Size Info Ppi for Firmware Volume Recovery.
> -
> - Copyright (c) 2013 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -/**
> - Retrieves a Unicode string that is the user-readable name of the EFI Driver.
> -
> - @param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL
> instance.
> - @param Language A pointer to a three-character ISO 639-2 language
> identifier.
> - This is the language of the driver name that that the caller
> - is requesting, and it must match one of the languages specified
> - in SupportedLanguages. The number of languages supported by
> a
> - driver is up to the driver writer.
> - @param DriverName A pointer to the Unicode string to return. This
> Unicode string
> - is the name of the driver specified by This in the language
> - specified by Language.
> -
> - @retval EFI_SUCCESS The Unicode string for the Driver specified by
> This
> - and the language specified by Language was returned
> - in DriverName.
> - @retval EFI_INVALID_PARAMETER Language is NULL.
> - @retval EFI_INVALID_PARAMETER DriverName is NULL.
> - @retval EFI_UNSUPPORTED The driver specified by This does not
> support the
> - language specified by Language.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioComponentNameGetDriverName (
> - IN EFI_COMPONENT_NAME_PROTOCOL *This,
> - IN CHAR8 *Language,
> - OUT CHAR16 **DriverName
> - );
> -
> -/**
> - Retrieves a Unicode string that is the user readable name of the controller
> - that is being managed by an EFI Driver.
> -
> - @param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL
> instance.
> - @param ControllerHandle The handle of a controller that the driver
> specified by
> - This is managing. This handle specifies the controller
> - whose name is to be returned.
> - @param ChildHandle The handle of the child controller to retrieve the
> name
> - of. This is an optional parameter that may be NULL. It
> - will be NULL for device drivers. It will also be NULL
> - for a bus drivers that wish to retrieve the name of the
> - bus controller. It will not be NULL for a bus driver
> - that wishes to retrieve the name of a child controller.
> - @param Language A pointer to a three character ISO 639-2 language
> - identifier. This is the language of the controller name
> - that the caller is requesting, and it must match one
> - of the languages specified in SupportedLanguages. The
> - number of languages supported by a driver is up to the
> - driver writer.
> - @param ControllerName A pointer to the Unicode string to return. This
> Unicode
> - string is the name of the controller specified by
> - ControllerHandle and ChildHandle in the language specified
> - by Language, from the point of view of the driver specified
> - by This.
> -
> - @retval EFI_SUCCESS The Unicode string for the user-readable name
> in the
> - language specified by Language for the driver
> - specified by This was returned in DriverName.
> - @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
> - @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a
> valid EFI_HANDLE.
> - @retval EFI_INVALID_PARAMETER Language is NULL.
> - @retval EFI_INVALID_PARAMETER ControllerName is NULL.
> - @retval EFI_UNSUPPORTED The driver specified by This is not currently
> managing
> - the controller specified by ControllerHandle and
> - ChildHandle.
> - @retval EFI_UNSUPPORTED The driver specified by This does not
> support the
> - language specified by Language.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioComponentNameGetControllerName (
> - IN EFI_COMPONENT_NAME_PROTOCOL *This,
> - IN EFI_HANDLE ControllerHandle,
> - IN EFI_HANDLE ChildHandle OPTIONAL,
> - IN CHAR8 *Language,
> - OUT CHAR16 **ControllerName
> - );
> diff --git
> a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/LegacySioDxe.inf
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/LegacySioDxe.inf
> deleted file mode 100644
> index 275f36ca47..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/LegacySioDxe.inf
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -## @file
> -# Module information that produces the
> -# EFI_SIO_PROTOCOL.
> -#
> -# Copyright (c) 2010 - 2019 Intel Corporation. All rights reserved. <BR>
> -#
> -# SPDX-License-Identifier: BSD-2-Clause-Patent
> -#
> -##
> -
> -[Defines]
> - INF_VERSION = 0x00010017
> - BASE_NAME = HitachiH8s2113Dxe
> - FILE_GUID = 7807E404-8281-4FF1-8457-0B54BABE263F
> - VERSION_STRING = 1.0
> - MODULE_TYPE = UEFI_DRIVER
> - ENTRY_POINT = SioDriverEntryPoint
> -#
> -# The following information is for reference only and not required by the
> build tools.
> -#
> -# VALID_ARCHITECTURES = IA32 X64 IPF EBC
> -#
> -
> -[LibraryClasses]
> - BaseLib
> - UefiLib
> - DebugLib
> - MemoryAllocationLib
> - PcdLib
> - DevicePathLib
> - IoLib
> - UefiDriverEntryPoint
> - UefiBootServicesTableLib
> - S3BootScriptLib
> - S3IoLib
> -
> -[Packages]
> - MdePkg/MdePkg.dec
> - MdeModulePkg/MdeModulePkg.dec
> -
> -[Sources]
> - SioChip.c
> - SioChip.h
> - SioService.c
> - SioService.h
> - SioDriver.c
> - SioDriver.h
> - ComponentName.c
> -
> -[Protocols]
> - gEfiPciIoProtocolGuid ## CONSUMES
> - gEfiDevicePathProtocolGuid ## PRODUCES
> - gEfiSioProtocolGuid ## PRODUCES
> -
> diff --git a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/Register.h
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/Register.h
> deleted file mode 100644
> index f61f713cf2..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/Register.h
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -/** @file
> - Super I/O register definitions
> -
> - Copyright (c) 2010 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -#ifndef _REGISTER_H_
> -#define _REGISTER_H_
> -
> -#define EC_COMMAND_PORT 0x66
> -#define EC_DATA_PORT 0x62
> -
> -#endif
> diff --git a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioChip.c
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioChip.c
> deleted file mode 100644
> index b9a7b9cd24..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioChip.c
> +++ /dev/null
> @@ -1,272 +0,0 @@
> -/** @file
> - Super I/O specific implementation.
> -
> - Copyright (c) 2010 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -#include "SioDriver.h"
> -#include <Library/S3IoLib.h>
> -
> -LOCAL_IO_WRITE8 mIoWrite8 = IoWrite8;
> -//
> -// System configuration (setup) information
> -//
> -// SYSTEM_CONFIGURATION mSystemConfiguration;
> -
> -//
> -// COM 1 UART Controller
> -//
> -ACPI_SIO_RESOURCES_IO_IRQ mCom1Resources = {
> - {
> - { ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR },
> - 0x3f8,
> - 8
> - },
> - {
> - { ACPI_IRQ_NOFLAG_DESCRIPTOR },
> - BIT4 // IRQ4
> - },
> - {
> - ACPI_END_TAG_DESCRIPTOR,
> - 0
> - }
> -};
> -
> -//
> -// PS/2 Keyboard Controller
> -//
> -ACPI_SIO_RESOURCES_IO_IRQ mKeyboardResources = {
> - {
> - { ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR },
> - 0x60,
> - 5
> - },
> - {
> - { ACPI_IRQ_NOFLAG_DESCRIPTOR },
> - BIT1
> - },
> - {
> - ACPI_END_TAG_DESCRIPTOR,
> - 0
> - }
> -};
> -
> -//
> -// PS/2 Mouse Controller
> -//
> -ACPI_SIO_RESOURCES_IO_IRQ mMouseResources = {
> - {
> - { ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR },
> - 0x60,
> - 5
> - },
> - {
> - { ACPI_IRQ_NOFLAG_DESCRIPTOR },
> - BIT12
> - },
> - {
> - ACPI_END_TAG_DESCRIPTOR,
> - 0
> - }
> -};
> -
> -//
> -// Table of SIO Controllers
> -//
> -DEVICE_INFO mDeviceInfo[] = {
> - {
> - {
> - EISA_PNP_ID(0x501),
> - 0
> - },
> - 0,
> - RESOURCE_IO | RESOURCE_IRQ,
> - { (ACPI_SMALL_RESOURCE_HEADER *) &mCom1Resources },
> - { (ACPI_SMALL_RESOURCE_HEADER *) &mCom1Resources }
> - }, // COM 1 UART Controller
> - {
> - {
> - EISA_PNP_ID(0x303),
> - 0
> - },
> - 0,
> - 0, // Cannot change resource
> - { (ACPI_SMALL_RESOURCE_HEADER *) &mKeyboardResources },
> - { (ACPI_SMALL_RESOURCE_HEADER *) &mKeyboardResources }
> - }, // PS/2 Keyboard Controller
> - {
> - {
> - EISA_PNP_ID(0xF03),
> - 0
> - },
> - 0,
> - 0, // Cannot change resource
> - { (ACPI_SMALL_RESOURCE_HEADER *) &mMouseResources },
> - { (ACPI_SMALL_RESOURCE_HEADER *) &mMouseResources }
> - } // PS/2 Mouse Controller
> -};
> -
> -
> -/**
> - Return the supported devices.
> -
> - @param[out] Devices Pointer to pointer of EFI_SIO_ACPI_DEVICE_ID.
> - Caller is responsible to free the buffer.
> - @param[out] Count Pointer to UINTN holding the device count.
> -**/
> -VOID
> -DeviceGetList (
> - OUT EFI_SIO_ACPI_DEVICE_ID **Devices,
> - OUT UINTN *Count
> - )
> -{
> - EFI_SIO_ACPI_DEVICE_ID *LocalDevices;
> - UINTN LocalCount;
> - UINTN DeviceCount;
> - UINTN Index;
> -
> - //
> - // Allocate enough memory for simplicity
> - //
> - DeviceCount = sizeof (mDeviceInfo) / sizeof (mDeviceInfo[0]);
> - LocalDevices = AllocatePool (sizeof (EFI_SIO_ACPI_DEVICE_ID) *
> DeviceCount);
> - ASSERT (LocalDevices != NULL);
> - if (LocalDevices == NULL) {
> - return;
> - }
> - LocalCount = 0;
> -
> - for (Index = 0; Index < DeviceCount; Index++) {
> - CopyMem (&LocalDevices[LocalCount], &mDeviceInfo[Index].Device,
> sizeof (EFI_SIO_ACPI_DEVICE_ID));
> - LocalCount++;
> - }
> -
> - *Devices = LocalDevices;
> - *Count = LocalCount;
> -}
> -
> -
> -/**
> - Super I/O controller initialization.
> -
> - @retval EFI_SUCCESS The super I/O controller is found and initialized.
> - @retval EFI_UNSUPPORTED The super I/O controller is not found.
> -**/
> -EFI_STATUS
> -SioInit (
> - VOID
> - )
> -{
> -
> - return EFI_SUCCESS;
> -}
> -
> -
> -/**
> - Find the DEVICE_INFO for specified Device.
> -
> - @param[in] Device Pointer to the EFI_SIO_ACPI_DEVICE_ID.
> -
> - @retval DEVICE_INFO* Pointer to the DEVICE_INFO.
> -**/
> -DEVICE_INFO *
> -DeviceSearch (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device
> - )
> -{
> - UINTN Index;
> -
> - for (Index = 0; Index < sizeof (mDeviceInfo) / sizeof (mDeviceInfo[0]);
> Index++) {
> - if (CompareMem (Device, &mDeviceInfo[Index].Device, sizeof (*Device))
> == 0) {
> - return &mDeviceInfo[Index];
> - }
> - }
> -
> - ASSERT (FALSE);
> - return NULL;
> -}
> -
> -
> -/**
> - Program the SIO chip to enable the specified device using the default
> resource.
> -
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> -**/
> -VOID
> -DeviceEnable (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device
> - )
> -{
> -}
> -
> -
> -/**
> - Get the ACPI resources for specified device.
> -
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> - @param[out] Resources Pointer to ACPI_RESOURCE_HEADER_PTR.
> -
> - @retval EFI_SUCCESS The resources are returned successfully.
> -**/
> -EFI_STATUS
> -DeviceGetResources (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device,
> - OUT ACPI_RESOURCE_HEADER_PTR *Resources
> - )
> -{
> - DEVICE_INFO *DeviceInfo;
> -
> - DeviceInfo = DeviceSearch (Device);
> -
> - *Resources = DeviceInfo->Resources;
> -
> - return EFI_SUCCESS;
> -}
> -
> -
> -/**
> - Set the ACPI resources for specified device.
> -
> - The SIO chip is programmed to use the new resources and the
> - resources setting are saved. The function assumes the resources
> - are valid.
> -
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> - @param[in] Resources ACPI_RESOURCE_HEADER_PTR.
> -
> - @retval EFI_UNSUPPORTED
> -**/
> -EFI_STATUS
> -DeviceSetResources (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device,
> - IN ACPI_RESOURCE_HEADER_PTR Resources
> - )
> -{
> - return EFI_UNSUPPORTED;
> -}
> -
> -
> -/**
> - Get the possible ACPI resources for specified device.
> -
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> - @param[out] Resources Pointer to ACPI_RESOURCE_HEADER_PTR.
> -
> - @retval EFI_SUCCESS The resources are returned successfully.
> -**/
> -EFI_STATUS
> -DevicePossibleResources (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device,
> - OUT ACPI_RESOURCE_HEADER_PTR *Resources
> - )
> -{
> - DEVICE_INFO *DeviceInfo;
> -
> - DeviceInfo = DeviceSearch (Device);
> -
> - *Resources = DeviceInfo->PossibleResources;
> -
> - return EFI_SUCCESS;
> -}
> diff --git a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioChip.h
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioChip.h
> deleted file mode 100644
> index 48e28c44b0..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioChip.h
> +++ /dev/null
> @@ -1,195 +0,0 @@
> -/** @file
> - Super I/O specific header.
> -
> - Copyright (c) 2010 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -#ifndef _SIO_H_
> -#define _SIO_H_
> -
> -
> -#include "Register.h"
> -
> -typedef
> -UINT8
> -(EFIAPI *LOCAL_IO_WRITE8) (
> - IN UINTN Port,
> - IN UINT8 Value
> - );
> -
> -#define RESOURCE_IO BIT0
> -#define RESOURCE_IRQ BIT1
> -#define RESOURCE_DMA BIT2
> -#define RESOURCE_MEM BIT3
> -
> -#pragma pack(1)
> -
> -typedef struct {
> - EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR Io;
> - EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR Irq;
> - EFI_ACPI_END_TAG_DESCRIPTOR End;
> -} ACPI_SIO_RESOURCES_IO_IRQ;
> -#pragma pack()
> -
> -typedef struct {
> - UINT32 HID;
> - UINT32 UID;
> -} EFI_SIO_ACPI_DEVICE_ID;
> -
> -typedef struct {
> - EFI_SIO_ACPI_DEVICE_ID Device;
> - UINT8 DeviceId;
> - UINT8 ResourceMask;
> - ACPI_RESOURCE_HEADER_PTR Resources;
> - ACPI_RESOURCE_HEADER_PTR PossibleResources;
> -} DEVICE_INFO;
> -
> -
> -/**
> - Initialize the SIO chip for S3.
> -**/
> -VOID
> -SioInitForS3 (
> - VOID
> - );
> -
> -
> -/**
> - Return the supported devices.
> -
> - @param[out] Devices Pointer to pointer of EFI_SIO_ACPI_DEVICE_ID.
> - Caller is responsible to free the buffer.
> - @param[out] Count Pointer to UINTN holding the device count.
> -**/
> -VOID
> -DeviceGetList (
> - OUT EFI_SIO_ACPI_DEVICE_ID **Devices,
> - OUT UINTN *Count
> - );
> -
> -
> -/**
> - Program the SIO chip to enable the specified device using the default
> resource.
> -
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> -**/
> -VOID
> -DeviceEnable (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device
> - );
> -
> -
> -/**
> - Get the possible ACPI resources for specified device.
> -
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> - @param[out] Resources Pointer to ACPI_RESOURCE_HEADER_PTR.
> -
> - @retval EFI_SUCCESS The resources are returned successfully.
> -**/
> -EFI_STATUS
> -DevicePossibleResources (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device,
> - OUT ACPI_RESOURCE_HEADER_PTR *Resources
> - );
> -
> -
> -/**
> - Set the ACPI resources for specified device.
> -
> - The SIO chip is programmed to use the new resources and the
> - resources setting are saved. The function assumes the resources
> - are valid.
> -
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> - @param[in] Resources ACPI_RESOURCE_HEADER_PTR.
> -
> - @retval EFI_SUCCESS The resources are set successfully.
> -**/
> -EFI_STATUS
> -DeviceSetResources (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device,
> - IN ACPI_RESOURCE_HEADER_PTR Resources
> - );
> -
> -
> -/**
> - Get the ACPI resources for specified device.
> -
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> - @param[out] Resources Pointer to ACPI_RESOURCE_HEADER_PTR.
> -
> - @retval EFI_SUCCESS The resources are returned successfully.
> -**/
> -EFI_STATUS
> -DeviceGetResources (
> - IN EFI_SIO_ACPI_DEVICE_ID *Device,
> - OUT ACPI_RESOURCE_HEADER_PTR *Resources
> - );
> -
> -
> -/**
> - Program the SIO chip to enter the configure mode.
> -**/
> -VOID
> -EnterConfigMode (
> - VOID
> - );
> -
> -
> -/**
> - Program the SIO chip to exit the configure mode.
> -**/
> -VOID
> -ExitConfigMode (
> - VOID
> - );
> -
> -
> -/**
> - Perform a 8-bit I/O write to SIO register.
> -
> - @param[in] Index The register index.
> - @param[in] Data The value to write to register.
> -**/
> -VOID
> -WriteRegister (
> - IN UINT8 Index,
> - IN UINT8 Data
> - );
> -
> -
> -/**
> - Perform a 8-bit I/O read from SIO register.
> -
> - @param[in] Index The register index.
> -
> - @retval Value The value written to the register.
> -**/
> -UINT8
> -ReadRegister (
> - IN UINT8 Index
> - );
> -
> -//
> -// Prototypes for the sio internal function
> -//
> -//
> -// Internal function
> -//
> -
> -
> -/**
> - Find Super I/O controller.
> -
> - @retval EFI_SUCCESS Super I/O controller exists.
> - @retval EFI_UNSUPPORTED Super I/O controller does not exist.
> -**/
> -EFI_STATUS
> -SioInit (
> - VOID
> - );
> -
> -#endif
> diff --git a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioDriver.c
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioDriver.c
> deleted file mode 100644
> index 408c6ff301..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioDriver.c
> +++ /dev/null
> @@ -1,600 +0,0 @@
> -/** @file
> - EFI Driver following Driver Binding Protocol.
> -
> - Copyright (c) 2010 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -#include "SioDriver.h"
> -
> -
> -//
> -// This driver is for ACPI(PNP0A03,0)/PCI(0x1f,0)
> -//
> -//
> -// Sio Driver Global Variables
> -//
> -EFI_DRIVER_BINDING_PROTOCOL mSioDriver = {
> - SioDriverSupported,
> - SioDriverStart,
> - SioDriverStop,
> - 1,
> - NULL,
> - NULL
> -};
> -
> -//
> -// The list of the created SIO_DEV
> -//
> -LIST_ENTRY mSioDevPool = INITIALIZE_LIST_HEAD_VARIABLE
> (mSioDevPool);
> -
> -//
> -// Template structure to create SIO_DEV
> -//
> -SIO_DEV mSioDevTemplate = {
> - SIO_DEV_SIGNATURE, // Signature
> - NULL, // PciHandle
> - {
> - 0x00000000, // HID
> - 0x00000000 // UID
> - },
> - NULL, // Handle
> - { // Sio Instance
> - SioRegisterAccess,
> - SioGetResources,
> - SioSetResources,
> - SioPossibleResources,
> - SioModify
> - },
> - NULL, // DevicePath
> - {
> - NULL, // ForwardLink
> - NULL, // BackLink
> - }
> -};
> -
> -//
> -// Template ACPI_HID_DEVICE_PATH structure to create device path
> -//
> -ACPI_HID_DEVICE_PATH mAcpiNodeTemplate = {
> - {
> - ACPI_DEVICE_PATH, // Type
> - ACPI_DP, // SubType
> - {
> - sizeof (ACPI_HID_DEVICE_PATH), // Length[0]
> - 0 // Length[1]
> - }
> - },
> - 0x00000000, // HID
> - 0x00000000 // UID
> -};
> -
> -
> -/**
> - The user Entry Point for module Lpc47m17x. The user code starts with this
> function.
> -
> - @param[in] ImageHandle The firmware allocated handle for the EFI
> image.
> - @param[in] SystemTable A pointer to the EFI System Table.
> -
> - @retval EFI_SUCCESS The entry point is executed successfully.
> - @retval other Some error occurs when executing this entry point.
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioDriverEntryPoint (
> - IN EFI_HANDLE ImageHandle,
> - IN EFI_SYSTEM_TABLE *SystemTable
> - )
> -{
> - if (EFI_ERROR (SioInit())) {
> - return EFI_UNSUPPORTED;
> - } else {
> -
> - //
> - // Install protocols
> - //
> - return EfiLibInstallDriverBindingComponentName2 (
> - ImageHandle,
> - SystemTable,
> - &mSioDriver,
> - ImageHandle,
> - &mSioComponentName,
> - &mSioComponentName2
> - );
> - }
> -}
> -
> -
> -/**
> - Test to see if this driver supports Controller Handle.
> -
> - @param[in] This Protocol instance pointer.
> - @param[in] Controller Handle of device to test
> - @param[in] RemainingDevicePath Optional parameter use to pick a
> specific child
> - device to start.
> -
> - @retval EFI_SUCCESS This driver supports this device
> - @retval EFI_ALREADY_STARTED This driver is already running on this
> device
> - @retval other This driver does not support this device
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioDriverSupported (
> - IN EFI_DRIVER_BINDING_PROTOCOL *This,
> - IN EFI_HANDLE Controller,
> - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
> - )
> -{
> - EFI_STATUS Status;
> - EFI_PCI_IO_PROTOCOL *PciIo;
> - EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
> - ACPI_HID_DEVICE_PATH *AcpiNode;
> - PCI_TYPE00 Pci;
> - UINTN Index;
> - EFI_SIO_ACPI_DEVICE_ID *Devices;
> - UINTN Count;
> - UINTN SegmentNumber;
> - UINTN BusNumber;
> - UINTN DeviceNumber;
> - UINTN FunctionNumber;
> -
> - //
> - // If RemainingDevicePath is not NULL, it should verify that the first device
> - // path node in RemainingDevicePath is an ACPI Device path node which is
> a
> - // legal Device Path Node for this bus driver's children.
> - //
> - if (RemainingDevicePath != NULL) {
> - if (!IsDevicePathEnd (RemainingDevicePath)) {
> - if ((RemainingDevicePath->Type != ACPI_DEVICE_PATH) ||
> - (((RemainingDevicePath->SubType != ACPI_DP) ||
> (DevicePathNodeLength (RemainingDevicePath) != sizeof
> (ACPI_HID_DEVICE_PATH))) &&
> - ((RemainingDevicePath->SubType != ACPI_EXTENDED_DP) ||
> (DevicePathNodeLength (RemainingDevicePath) != sizeof
> (ACPI_EXTENDED_HID_DEVICE_PATH))))
> - ) {
> - return EFI_UNSUPPORTED;
> - }
> -
> - DeviceGetList (&Devices, &Count);
> - if (Devices == NULL) {
> - return EFI_OUT_OF_RESOURCES;
> - }
> - AcpiNode = (ACPI_HID_DEVICE_PATH *) RemainingDevicePath;
> - for (Index = 0; Index < Count; Index++) {
> - if ((AcpiNode->HID == Devices[Index].HID) &&
> - (AcpiNode->UID == Devices[Index].UID)) {
> - break;
> - }
> - }
> - FreePool (Devices);
> - if (Index == Count) {
> - return EFI_UNSUPPORTED;
> - }
> - }
> - }
> -
> - //
> - // See if the parent device path can be opened BY_DRIVER
> - //
> - Status = gBS->OpenProtocol (
> - Controller,
> - &gEfiDevicePathProtocolGuid,
> - (VOID **) &ParentDevicePath,
> - This->DriverBindingHandle,
> - Controller,
> - EFI_OPEN_PROTOCOL_BY_DRIVER
> - );
> - if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {
> - return Status;
> - }
> -
> - gBS->CloseProtocol (
> - Controller,
> - &gEfiDevicePathProtocolGuid,
> - This->DriverBindingHandle,
> - Controller
> - );
> -
> - //
> - // Get PciIo protocol instance
> - //
> - Status = gBS->OpenProtocol (
> - Controller,
> - &gEfiPciIoProtocolGuid,
> - (VOID **) &PciIo,
> - This->DriverBindingHandle,
> - Controller,
> - EFI_OPEN_PROTOCOL_BY_DRIVER
> - );
> -
> - if (!EFI_ERROR (Status)) {
> - Status = PciIo->Pci.Read (
> - PciIo,
> - EfiPciIoWidthUint32,
> - 0,
> - sizeof (Pci) / sizeof (UINT32),
> - &Pci
> - );
> - ASSERT_EFI_ERROR (Status);
> -
> - Status = EFI_UNSUPPORTED;
> - if ((Pci.Hdr.Command & (EFI_PCI_COMMAND_IO_SPACE |
> EFI_PCI_COMMAND_MEMORY_SPACE))
> - == (EFI_PCI_COMMAND_IO_SPACE |
> EFI_PCI_COMMAND_MEMORY_SPACE)
> - ) {
> - if (Pci.Hdr.ClassCode[2] == PCI_CLASS_BRIDGE) {
> - //
> - // See if this is a standard PCI to ISA Bridge from the Base Code and Class
> Code
> - //
> - if (Pci.Hdr.ClassCode[1] == PCI_CLASS_BRIDGE_ISA) {
> - Status = EFI_SUCCESS;
> - }
> -
> - //
> - // See if this is an Intel PCI to ISA Bridge in Positive Decode Mode
> - //
> - if ((Pci.Hdr.ClassCode[1] == PCI_CLASS_BRIDGE_ISA_PDECODE) &&
> - (Pci.Hdr.VendorId == 0x8086)) {
> - //
> - // See if this is on Function #0 to avoid false positive on
> - // PCI_CLASS_BRIDGE_OTHER that has the same value as
> - // PCI_CLASS_BRIDGE_ISA_PDECODE
> - //
> - Status = PciIo->GetLocation (
> - PciIo,
> - &SegmentNumber,
> - &BusNumber,
> - &DeviceNumber,
> - &FunctionNumber
> - );
> - if (!EFI_ERROR (Status) && (FunctionNumber == 0)) {
> - Status = EFI_SUCCESS;
> - } else {
> - Status = EFI_UNSUPPORTED;
> - }
> - }
> - }
> - }
> -
> - gBS->CloseProtocol (
> - Controller,
> - &gEfiPciIoProtocolGuid,
> - This->DriverBindingHandle,
> - Controller
> - );
> - }
> - if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {
> - return Status;
> - }
> -
> - return EFI_SUCCESS;
> -}
> -
> -
> -/**
> - Destroy the SIO controller handle.
> -
> - @param[in] ChildHandle The SIO controller handle.
> -
> - @retval EFI_SUCCESS The SIO controller handle is destroyed
> successfully.
> -**/
> -EFI_STATUS
> -SioDestroyDevice (
> - IN EFI_HANDLE ChildHandle
> - )
> -{
> - EFI_STATUS Status;
> - SIO_DEV *SioDev;
> - EFI_SIO_PROTOCOL *Sio;
> - EFI_PCI_IO_PROTOCOL *PciIo;
> -
> - Status = gBS->HandleProtocol (
> - ChildHandle,
> - &gEfiSioProtocolGuid,
> - (VOID **) &Sio
> - );
> - ASSERT_EFI_ERROR (Status);
> -
> - SioDev = SIO_DEV_FROM_THIS (Sio);
> -
> - Status = gBS->CloseProtocol (
> - SioDev->PciHandle,
> - &gEfiPciIoProtocolGuid,
> - mSioDriver.DriverBindingHandle,
> - ChildHandle
> - );
> - ASSERT_EFI_ERROR (Status);
> -
> - Status = gBS->UninstallMultipleProtocolInterfaces (
> - ChildHandle,
> - &gEfiDevicePathProtocolGuid,
> - SioDev->DevicePath,
> - &gEfiSioProtocolGuid,
> - &SioDev->Sio,
> - NULL
> - );
> - if (EFI_ERROR (Status)) {
> - gBS->OpenProtocol (
> - SioDev->PciHandle,
> - &gEfiPciIoProtocolGuid,
> - (VOID **) &PciIo,
> - mSioDriver.DriverBindingHandle,
> - ChildHandle,
> - EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
> - );
> - return Status;
> - }
> -
> - RemoveEntryList (&SioDev->Link);
> - FreePool (SioDev->DevicePath);
> - FreePool (SioDev);
> - return EFI_SUCCESS;
> -}
> -
> -
> -/**
> - Create the SIO controller handle.
> -
> - @param[in] Controller The parent PCI controller handle.
> - @param[in] Device Pointer to EFI_SIO_ACPI_DEVICE_ID.
> - @param[in] ParentDevicePath The device path of the parent controller.
> - @param[out] PciIo The PciIo instance of the parent controller.
> -**/
> -VOID
> -SioCreateDevice (
> - IN EFI_HANDLE Controller,
> - IN EFI_SIO_ACPI_DEVICE_ID *Device,
> - IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
> - OUT EFI_PCI_IO_PROTOCOL *PciIo
> - )
> -{
> - EFI_STATUS Status;
> - SIO_DEV *SioDev;
> -
> - DeviceEnable (Device);
> - SioDev = AllocateCopyPool (sizeof (SIO_DEV), &mSioDevTemplate);
> - ASSERT (SioDev != NULL);
> - if (SioDev == NULL) {
> - return;
> - }
> - InsertHeadList (&mSioDevPool, &SioDev->Link);
> -
> - SioDev->PciHandle = Controller;
> -
> - CopyMem (&SioDev->Device, Device, sizeof (*Device));
> -
> - mAcpiNodeTemplate.HID = Device->HID;
> - mAcpiNodeTemplate.UID = Device->UID;
> - SioDev->DevicePath = AppendDevicePathNode (ParentDevicePath,
> (EFI_DEVICE_PATH_PROTOCOL *) &mAcpiNodeTemplate);
> - ASSERT (SioDev->DevicePath != NULL);
> -
> - Status = gBS->InstallMultipleProtocolInterfaces (
> - &SioDev->Handle,
> - &gEfiSioProtocolGuid, &SioDev->Sio,
> - &gEfiDevicePathProtocolGuid, SioDev->DevicePath,
> - NULL
> - );
> - ASSERT_EFI_ERROR (Status);
> -
> - Status = gBS->OpenProtocol (
> - Controller,
> - &gEfiPciIoProtocolGuid,
> - (VOID **) &PciIo,
> - mSioDriver.DriverBindingHandle,
> - SioDev->Handle,
> - EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
> - );
> - ASSERT_EFI_ERROR (Status);
> -}
> -
> -
> -/**
> - Start this driver on ControllerHandle.
> -
> - @param[in] This Protocol instance pointer.
> - @param[in] Controller Handle of device to bind driver to
> - @param[in] RemainingDevicePath Optional parameter use to pick a
> specific child
> - device to start.
> -
> - @retval EFI_SUCCESS This driver is added to ControllerHandle
> - @retval EFI_ALREADY_STARTED This driver is already running on
> ControllerHandle
> - @retval other This driver does not support this device
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioDriverStart (
> - IN EFI_DRIVER_BINDING_PROTOCOL *This,
> - IN EFI_HANDLE Controller,
> - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
> - )
> -{
> - EFI_STATUS Status;
> - EFI_PCI_IO_PROTOCOL *PciIo;
> - EFI_DEVICE_PATH_PROTOCOL *DevicePath;
> - EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
> - EFI_SIO_ACPI_DEVICE_ID *Devices;
> - SIO_DEV *SioDev;
> - UINTN Count;
> - UINTN Index;
> - ACPI_HID_DEVICE_PATH *AcpiNode;
> - BOOLEAN *HasCreated;
> - BOOLEAN *RequestCreate;
> - LIST_ENTRY *Node;
> -
> - HasCreated = NULL;
> - RequestCreate = NULL;
> - //
> - // Get the ISA bridge's Device Path
> - //
> - Status = gBS->OpenProtocol (
> - Controller,
> - &gEfiDevicePathProtocolGuid,
> - (VOID **) &ParentDevicePath,
> - This->DriverBindingHandle,
> - Controller,
> - EFI_OPEN_PROTOCOL_BY_DRIVER
> - );
> - if (EFI_ERROR (Status) && Status != EFI_ALREADY_STARTED) {
> - return Status;
> - }
> -
> - //
> - // Get Pci IO
> - //
> - Status = gBS->OpenProtocol (
> - Controller,
> - &gEfiPciIoProtocolGuid,
> - (VOID **) &PciIo,
> - This->DriverBindingHandle,
> - Controller,
> - EFI_OPEN_PROTOCOL_BY_DRIVER
> - );
> -
> - if (EFI_ERROR (Status) && Status != EFI_ALREADY_STARTED) {
> - gBS->CloseProtocol (
> - Controller,
> - &gEfiDevicePathProtocolGuid,
> - This->DriverBindingHandle,
> - Controller
> - );
> - return Status;
> - }
> -
> - if ((RemainingDevicePath != NULL) && IsDevicePathEnd
> (RemainingDevicePath)) {
> - return EFI_SUCCESS;
> - }
> -
> - DeviceGetList (&Devices, &Count);
> - if (Devices == NULL) {
> - Status = EFI_OUT_OF_RESOURCES;
> - goto Exit_Start;
> - }
> - HasCreated = AllocatePool (sizeof (BOOLEAN) * Count);
> - ASSERT (HasCreated != NULL);
> - if (HasCreated == NULL) {
> - Status = EFI_OUT_OF_RESOURCES;
> - goto Exit_Start;
> - }
> - RequestCreate = AllocatePool (sizeof (BOOLEAN) * Count);
> - ASSERT (RequestCreate != NULL);
> - if (RequestCreate == NULL) {
> - Status = EFI_OUT_OF_RESOURCES;
> - goto Exit_Start;
> - }
> -
> - //
> - // Assume no children has been created.
> - // Assume the SIO interface hasn't been initialized.
> - //
> - ZeroMem (HasCreated, sizeof (BOOLEAN) * Count);
> -
> - if (Status == EFI_ALREADY_STARTED) {
> - for (Node = GetFirstNode (&mSioDevPool);
> - !IsNull (&mSioDevPool, Node);
> - Node = GetNextNode (&mSioDevPool, Node)
> - ) {
> - SioDev = CR (Node, SIO_DEV, Link, SIO_DEV_SIGNATURE);
> - Status = gBS->HandleProtocol (
> - SioDev->PciHandle,
> - &gEfiDevicePathProtocolGuid,
> - (VOID **) &DevicePath
> - );
> - ASSERT_EFI_ERROR (Status);
> -
> - //
> - // See if they are under the same PCI to ISA Bridge
> - //
> - if (CompareMem (DevicePath, ParentDevicePath, GetDevicePathSize
> (DevicePath)) == 0) {
> - for (Index = 0; Index < Count; Index++) {
> - if (CompareMem (&SioDev->Device, &Devices[Index], sizeof
> (EFI_SIO_ACPI_DEVICE_ID)) == 0) {
> - HasCreated[Index] = TRUE;
> - break;
> - }
> - }
> - }
> - }
> - }
> -
> - AcpiNode = (ACPI_HID_DEVICE_PATH *) RemainingDevicePath;
> - for (Index = 0; Index < Count; Index++) {
> - if ((AcpiNode == NULL) ||
> - ((AcpiNode->HID == Devices[Index].HID) && (AcpiNode->UID ==
> Devices[Index].UID))
> - ) {
> - RequestCreate[Index] = TRUE;
> - } else {
> - RequestCreate[Index] = FALSE;
> - }
> - }
> -
> - for (Index = 0; Index < Count; Index++) {
> - if (RequestCreate[Index] && !HasCreated[Index]) {
> - SioCreateDevice (Controller, &Devices[Index], ParentDevicePath, PciIo);
> - }
> - }
> -Exit_Start:
> - if (Devices != NULL) {
> - FreePool (Devices);
> - }
> - if (HasCreated != NULL) {
> - FreePool (HasCreated);
> - }
> - if (RequestCreate != NULL) {
> - FreePool (RequestCreate);
> - }
> -
> - return Status;
> -}
> -
> -
> -/**
> - Stop this driver on ControllerHandle.
> -
> - @param[in] This Protocol instance pointer.
> - @param[in] Controller Handle of device to stop driver on
> - @param[in] NumberOfChildren Number of Handles in ChildHandleBuffer.
> If number of
> - children is zero stop the entire bus driver.
> - @param[in] ChildHandleBuffer List of Child Handles to Stop.
> -
> - @retval EFI_SUCCESS This driver is removed ControllerHandle
> - @retval other This driver was not removed from this device
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioDriverStop (
> - IN EFI_DRIVER_BINDING_PROTOCOL *This,
> - IN EFI_HANDLE Controller,
> - IN UINTN NumberOfChildren,
> - IN EFI_HANDLE *ChildHandleBuffer
> - )
> -{
> - EFI_STATUS Status;
> - UINTN Index;
> - BOOLEAN AllChildrenStopped;
> -
> - if (NumberOfChildren == 0) {
> - gBS->CloseProtocol (
> - Controller,
> - &gEfiDevicePathProtocolGuid,
> - This->DriverBindingHandle,
> - Controller
> - );
> - gBS->CloseProtocol (
> - Controller,
> - &gEfiPciIoProtocolGuid,
> - This->DriverBindingHandle,
> - Controller
> - );
> - return EFI_SUCCESS;
> - }
> -
> - AllChildrenStopped = TRUE;
> - for (Index = 0; Index < NumberOfChildren; Index++) {
> - Status = SioDestroyDevice (ChildHandleBuffer[Index]);
> - if (EFI_ERROR (Status)) {
> - AllChildrenStopped = FALSE;
> - }
> - }
> -
> - if (AllChildrenStopped) {
> - return EFI_SUCCESS;
> - } else {
> - return EFI_DEVICE_ERROR;
> - }
> -}
> diff --git a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioDriver.h
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioDriver.h
> deleted file mode 100644
> index 2e75871f7f..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioDriver.h
> +++ /dev/null
> @@ -1,134 +0,0 @@
> -/** @file
> - Header file for Driver Binding Protocol.
> -
> - Copyright (c) 2010 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -#ifndef _SIO_DRIVER_H_
> -#define _SIO_DRIVER_H_
> -
> -#include <PiDxe.h>
> -#include <IndustryStandard/Pci.h>
> -#include <Library/BaseLib.h>
> -#include <Library/MemoryAllocationLib.h>
> -#include <Library/BaseMemoryLib.h>
> -#include <Library/DebugLib.h>
> -#include <Library/IoLib.h>
> -#include <Library/S3BootScriptLib.h>
> -#include <Library/PciLib.h>
> -#include <Library/UefiBootServicesTableLib.h>
> -#include <Library/DevicePathLib.h>
> -#include <Library/UefiLib.h>
> -#include <Library/PcdLib.h>
> -
> -//
> -// Driver Consumed Protocol Prototypes
> -//
> -#include <Protocol/DriverBinding.h>
> -#include <Protocol/PciIo.h>
> -#include <Protocol/DevicePath.h>
> -
> -//
> -// Driver Produced Protocol Prototypes
> -//
> -#include <Protocol/SuperIo.h>
> -
> -
> -#include "SioChip.h"
> -#include "SioService.h"
> -#include "ComponentName.h"
> -
> -//
> -// Global Variables definitions
> -//
> -extern EFI_DRIVER_BINDING_PROTOCOL mSioDriver;
> -extern EFI_COMPONENT_NAME_PROTOCOL mSioComponentName;
> -extern EFI_COMPONENT_NAME2_PROTOCOL mSioComponentName2;
> -
> -//
> -// SIO device private data structure
> -//
> -#define SIO_DEV_SIGNATURE SIGNATURE_32 ('_', 'S', 'I', 'O')
> -
> -typedef struct _SIO_DEV {
> - UINT32 Signature;
> - EFI_HANDLE PciHandle;
> - EFI_SIO_ACPI_DEVICE_ID Device;
> - EFI_HANDLE Handle;
> - EFI_SIO_PROTOCOL Sio;
> - EFI_DEVICE_PATH_PROTOCOL *DevicePath;
> - LIST_ENTRY Link;
> -} SIO_DEV;
> -
> -#define SIO_DEV_FROM_THIS(a) CR (a, SIO_DEV, Sio,
> SIO_DEV_SIGNATURE)
> -
> -//
> -// Prototypes for Driver model protocol interface
> -//
> -
> -
> -/**
> - Test to see if this driver supports Controller Handle.
> -
> - @param[in] This Protocol instance pointer.
> - @param[in] Controller Handle of device to test
> - @param[in] RemainingDevicePath Optional parameter use to pick a
> specific child
> - device to start.
> -
> - @retval EFI_SUCCESS This driver supports this device
> - @retval EFI_ALREADY_STARTED This driver is already running on this
> device
> - @retval other This driver does not support this device
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioDriverSupported (
> - IN EFI_DRIVER_BINDING_PROTOCOL *This,
> - IN EFI_HANDLE Controller,
> - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
> - );
> -
> -
> -/**
> - Start this driver on ControllerHandle.
> -
> - @param[in] This Protocol instance pointer.
> - @param[in] Controller Handle of device to bind driver to
> - @param[in] RemainingDevicePath Optional parameter use to pick a
> specific child
> - device to start.
> -
> - @retval EFI_SUCCESS This driver is added to ControllerHandle
> - @retval EFI_ALREADY_STARTED This driver is already running on
> ControllerHandle
> - @retval other This driver does not support this device
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioDriverStart (
> - IN EFI_DRIVER_BINDING_PROTOCOL *This,
> - IN EFI_HANDLE Controller,
> - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
> - );
> -
> -
> -/**
> - Stop this driver on ControllerHandle.
> -
> - @param[in] This Protocol instance pointer.
> - @param[in] Controller Handle of device to stop driver on
> - @param[in] NumberOfChildren Number of Handles in ChildHandleBuffer.
> If number of
> - children is zero stop the entire bus driver.
> - @param[in] ChildHandleBuffer List of Child Handles to Stop.
> -
> - @retval EFI_SUCCESS This driver is removed ControllerHandle
> - @retval other This driver was not removed from this device
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioDriverStop (
> - IN EFI_DRIVER_BINDING_PROTOCOL *This,
> - IN EFI_HANDLE Controller,
> - IN UINTN NumberOfChildren,
> - IN EFI_HANDLE *ChildHandleBuffer
> - );
> -#endif
> diff --git a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioService.c
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioService.c
> deleted file mode 100644
> index 379002b833..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioService.c
> +++ /dev/null
> @@ -1,249 +0,0 @@
> -/** @file
> - Super I/O Interface implementation.
> -
> - Copyright (c) 2010 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -#include "SioDriver.h"
> -
> -
> -/**
> - Provides an interface to get a list of the current resources consumed by the
> device in the ACPI
> - Resource Descriptor format.
> -
> - GetResources() returns a list of resources currently consumed by the
> device. The
> - ResourceList is a pointer to the buffer containing resource descriptors for
> the device. The
> - descriptors are in the format of Small or Large ACPI resource descriptor as
> defined by ACPI
> - specification (2.0 & 3.0). The buffer of resource descriptors is terminated
> with the 'End tag'
> - resource descriptor.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[out] ResourceList A pointer to an ACPI resource descriptor list
> that defines the current resources
> - used by the device. Type ACPI_RESOURCE_HEADER_PTR is
> defined in the "Related
> - Definitions" below.
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER ResourceList is NULL
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioGetResources (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - OUT ACPI_RESOURCE_HEADER_PTR *ResourceList
> - )
> -{
> - SIO_DEV *SioDev;
> -
> - if (ResourceList == NULL) {
> - return EFI_INVALID_PARAMETER;
> - }
> -
> - SioDev = SIO_DEV_FROM_THIS (This);
> -
> - return DeviceGetResources (&SioDev->Device, ResourceList);
> -}
> -
> -
> -/**
> - Provides a collection of resource descriptor lists. Each resource descriptor
> list in the collection
> - defines a combination of resources that can potentially be used by the
> device.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[out] ResourceCollection Collection of the resource descriptor
> lists.
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER ResourceCollection is NULL
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioPossibleResources (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - OUT ACPI_RESOURCE_HEADER_PTR *ResourceCollection
> - )
> -{
> - SIO_DEV *SioDev;
> -
> - if (ResourceCollection == NULL) {
> - return EFI_INVALID_PARAMETER;
> - }
> -
> - SioDev = SIO_DEV_FROM_THIS (This);
> -
> - return DevicePossibleResources (&SioDev->Device, ResourceCollection);
> -}
> -
> -
> -/**
> - Sets the resources for the device.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[in] ResourceList Pointer to the ACPI resource descriptor list.
> Type ACPI_RESOURCE_HEADER_PTR
> - is defined in the "Related Definitions" section of
> - EFI_SIO_PROTOCOL.GetResources().
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER ResourceList is invalid
> - @retval EFI_ACCESS_DENIED Some of the resources in ResourceList are
> in use
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioSetResources (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - IN ACPI_RESOURCE_HEADER_PTR ResourceList
> - )
> -{
> - SIO_DEV *SioDev;
> - ACPI_RESOURCE_HEADER_PTR ResourcePtr;
> - ACPI_RESOURCE_HEADER_PTR ResourceCollection;
> - ACPI_RESOURCE_HEADER_PTR ResourcePtr2;
> - BOOLEAN Found;
> -
> - ResourcePtr = ResourceList;
> - SioDev = SIO_DEV_FROM_THIS (This);
> -
> - //
> - // Check whether the resource is in the possible resource collection
> - //
> - DevicePossibleResources (&SioDev->Device, &ResourceCollection);
> -
> - while (ResourcePtr.SmallHeader->Byte != ACPI_END_TAG_DESCRIPTOR) {
> -
> - Found = FALSE;
> - ResourcePtr2 = ResourceCollection;
> - while (ResourcePtr2.SmallHeader->Byte != ACPI_END_TAG_DESCRIPTOR)
> {
> - if (ResourcePtr2.SmallHeader->Bits.Type == 0) {
> - //
> - // Small Header
> - //
> - if (CompareMem (
> - ResourcePtr2.SmallHeader,
> - ResourcePtr.SmallHeader,
> - ResourcePtr2.SmallHeader->Bits.Length + sizeof
> (*ResourcePtr2.SmallHeader)
> - ) == 0) {
> - Found = TRUE;
> - break;
> - }
> -
> - ResourcePtr2.SmallHeader = (ACPI_SMALL_RESOURCE_HEADER *)
> ((UINT8 *) ResourcePtr2.SmallHeader
> - + ResourcePtr2.SmallHeader->Bits.Length
> - + sizeof (*ResourcePtr2.SmallHeader));
> -
> - } else {
> - //
> - // Large Header
> - //
> - if (CompareMem (
> - ResourcePtr2.LargeHeader,
> - ResourcePtr.LargeHeader,
> - ResourcePtr2.LargeHeader->Length + sizeof
> (*ResourcePtr2.LargeHeader)
> - ) == 0) {
> - Found = TRUE;
> - break;
> - }
> -
> - ResourcePtr2.LargeHeader = (ACPI_LARGE_RESOURCE_HEADER *)
> ((UINT8 *) ResourcePtr2.LargeHeader
> - + ResourcePtr2.LargeHeader->Length
> - + sizeof (*ResourcePtr2.LargeHeader));
> - }
> - }
> -
> - if (!Found) {
> - return EFI_ACCESS_DENIED;
> - }
> -
> - if (ResourcePtr.SmallHeader->Bits.Type == 0) {
> - ResourcePtr.SmallHeader = (ACPI_SMALL_RESOURCE_HEADER *)
> ((UINT8 *) ResourcePtr.SmallHeader
> - + ResourcePtr.SmallHeader->Bits.Length
> - + sizeof (*ResourcePtr.SmallHeader));
> - } else {
> - ResourcePtr.LargeHeader = (ACPI_LARGE_RESOURCE_HEADER *)
> ((UINT8 *) ResourcePtr.LargeHeader
> - + ResourcePtr.LargeHeader->Length
> - + sizeof (*ResourcePtr.LargeHeader));
> - }
> - }
> -
> - //
> - // ResourceList can be set
> - //
> - return DeviceSetResources (&SioDev->Device, ResourceList);
> -}
> -
> -
> -/**
> - Provides a low level access to the registers for the Super I/O.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[in] Write Specifies the type of the register operation.
> If this parameter is TRUE,
> - Value is interpreted as an input parameter and the
> operation is a register write.
> - If this parameter is FALSE, Value is interpreted as an
> output parameter and the
> - operation is a register read.
> - @param[in] ExitCfgMode Exit Configuration Mode Indicator. If this
> parameter is set to TRUE, the
> - Super I/O driver will turn off configuration mode of the
> Super I/O prior to returning
> - from this function. If this parameter is set to FALSE, the
> Super I/O driver will
> - leave Super I/O in the configuration mode.
> - The Super I/O driver must track the current state of the
> Super I/O and enable the
> - configuration mode of Super I/O if necessary prior to
> register access.
> - @param[in] Register Register number.
> - @param[in, out] Value If Write is TRUE, Value is a pointer to the
> buffer containing the byte of data to be
> - written to the Super I/O register. If Write is FALSE,
> Value is a pointer to the
> - destination buffer for the byte of data to be read from
> the Super I/O register.
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER The Value is NULL
> - @retval EFI_INVALID_PARAMETER Invalid Register number
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioRegisterAccess (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - IN BOOLEAN Write,
> - IN BOOLEAN ExitCfgMode,
> - IN UINT8 Register,
> - IN OUT UINT8 *Value
> - )
> -{
> - if (Value == NULL) {
> - return EFI_INVALID_PARAMETER;
> - }
> -
> - return EFI_SUCCESS;
> -}
> -
> -
> -/**
> - Provides an interface for a table based programming of the Super I/O
> registers.
> -
> - The Modify() function provides an interface for table based programming
> of the Super I/O
> - registers. This function can be used to perform programming of multiple
> Super I/O registers with a
> - single function call. For each table entry, the Register is read, its content is
> bitwise ANDed with
> - AndMask, and then ORed with OrMask before being written back to the
> Register. The Super
> - I/O driver must track the current state of the Super I/O and enable the
> configuration mode of Super I/
> - O if necessary prior to table processing. Once the table is processed, the
> Super I/O device has to be
> - returned to the original state.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[in] Command A pointer to an array of
> NumberOfCommands EFI_SIO_REGISTER_MODIFY
> - structures. Each structure specifies a single Super I/O
> register modify operation.
> - Type EFI_SIO_REGISTER_MODIFY is defined in the
> "Related Definitions" below.
> - @param[in] NumberOfCommands Number of elements in the
> Command array.
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER Command is NULL
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioModify (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - IN CONST EFI_SIO_REGISTER_MODIFY *Command,
> - IN UINTN NumberOfCommands
> - )
> -{
> -
> - if (Command == NULL) {
> - return EFI_INVALID_PARAMETER;
> - }
> -
> - return EFI_SUCCESS;
> -}
> diff --git a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioService.h
> b/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioService.h
> deleted file mode 100644
> index 6a8081dc6e..0000000000
> --- a/Platform/Intel/SimicsOpenBoardPkg/LegacySioDxe/SioService.h
> +++ /dev/null
> @@ -1,143 +0,0 @@
> -/** @file
> - Super I/O Interface function declarations.
> -
> - Copyright (c) 2010 - 2019 Intel Corporation. All rights reserved. <BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -**/
> -
> -#ifndef _SIO_ACPI_H_
> -#define _SIO_ACPI_H_
> -
> -//
> -// Prototypes for the SIO protocol interface
> -//
> -
> -
> -/**
> - Provides an interface to get a list of the current resources consumed by the
> device in the ACPI
> - Resource Descriptor format.
> -
> - GetResources() returns a list of resources currently consumed by the
> device. The
> - ResourceList is a pointer to the buffer containing resource descriptors for
> the device. The
> - descriptors are in the format of Small or Large ACPI resource descriptor as
> defined by ACPI
> - specification (2.0 & 3.0). The buffer of resource descriptors is terminated
> with the 'End tag'
> - resource descriptor.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[out] ResourceList A pointer to an ACPI resource descriptor
> list that defines the current resources
> - used by the device. Type ACPI_RESOURCE_HEADER_PTR
> is defined in the "Related
> - Definitions" below.
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER ResourceList is NULL
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioGetResources (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - OUT ACPI_RESOURCE_HEADER_PTR *ResourceList
> - );
> -
> -
> -/**
> - Sets the resources for the device.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[in] ResourceList Pointer to the ACPI resource descriptor list.
> Type ACPI_RESOURCE_HEADER_PTR
> - is defined in the "Related Definitions" section of
> - EFI_SIO_PROTOCOL.GetResources().
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER ResourceList is invalid
> - @retval EFI_ACCESS_DENIED Some of the resources in ResourceList are
> in use
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioSetResources (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - IN ACPI_RESOURCE_HEADER_PTR ResourceList
> - );
> -
> -
> -/**
> - Provides a collection of resource descriptor lists. Each resource descriptor
> list in the collection
> - defines a combination of resources that can potentially be used by the
> device.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[out] ResourceCollection Collection of the resource descriptor
> lists.
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER ResourceCollection is NULL
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioPossibleResources (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - OUT ACPI_RESOURCE_HEADER_PTR *ResourceCollection
> - );
> -
> -
> -/**
> - Provides a low level access to the registers for the Super I/O.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[in] Write Specifies the type of the register operation.
> If this parameter is TRUE,
> - Value is interpreted as an input parameter and the
> operation is a register write.
> - If this parameter is FALSE, Value is interpreted as an
> output parameter and the
> - operation is a register read.
> - @param[in] ExitCfgMode Exit Configuration Mode Indicator. If this
> parameter is set to TRUE, the
> - Super I/O driver will turn off configuration mode of the
> Super I/O prior to returning
> - from this function. If this parameter is set to FALSE, the
> Super I/O driver will
> - leave Super I/O in the configuration mode.
> - The Super I/O driver must track the current state of the
> Super I/O and enable the
> - configuration mode of Super I/O if necessary prior to
> register access.
> - @param[in] Register Register number.
> - @param[in, out] Value If Write is TRUE, Value is a pointer to the
> buffer containing the byte of data to be
> - written to the Super I/O register. If Write is FALSE,
> Value is a pointer to the
> - destination buffer for the byte of data to be read from
> the Super I/O register.
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER The Value is NULL
> - @retval EFI_INVALID_PARAMETER Invalid Register number
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioRegisterAccess (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - IN BOOLEAN Write,
> - IN BOOLEAN ExitCfgMode,
> - IN UINT8 Register,
> - IN OUT UINT8 *Value
> - );
> -
> -
> -/**
> - Provides an interface for a table based programming of the Super I/O
> registers.
> -
> - The Modify() function provides an interface for table based programming
> of the Super I/O
> - registers. This function can be used to perform programming of multiple
> Super I/O registers with a
> - single function call. For each table entry, the Register is read, its content is
> bitwise ANDed with
> - AndMask, and then ORed with OrMask before being written back to the
> Register. The Super
> - I/O driver must track the current state of the Super I/O and enable the
> configuration mode of Super I/
> - O if necessary prior to table processing. Once the table is processed, the
> Super I/O device has to be
> - returned to the original state.
> -
> - @param[in] This Indicates a pointer to the calling context.
> - @param[in] Command A pointer to an array of
> NumberOfCommands EFI_SIO_REGISTER_MODIFY
> - structures. Each structure specifies a single Super I/O
> register modify operation.
> - Type EFI_SIO_REGISTER_MODIFY is defined in the
> "Related Definitions" below.
> - @param[in] NumberOfCommands Number of elements in the
> Command array.
> -
> - @retval EFI_SUCCESS The operation completed successfully
> - @retval EFI_INVALID_PARAMETER Command is NULL
> -**/
> -EFI_STATUS
> -EFIAPI
> -SioModify (
> - IN CONST EFI_SIO_PROTOCOL *This,
> - IN CONST EFI_SIO_REGISTER_MODIFY *Command,
> - IN UINTN NumberOfCommands
> - );
> -
> -#endif
> --
> 2.19.1.windows.1
next prev parent reply other threads:[~2019-11-07 0:49 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-06 1:25 [edk2-platforms] [Patch v2 0/9] Enable Ps2 keyboard Agyeman, Prince
2019-11-06 1:25 ` [edk2-platforms] [Patch v2 1/9] BoardModulePkg: Add gBoardModulePkgTokenSpaceGuid Agyeman, Prince
2019-11-06 2:07 ` Chiu, Chasel
2019-11-06 22:38 ` Nate DeSimone
2019-11-07 0:49 ` Kubacki, Michael A
2019-11-06 1:25 ` [edk2-platforms] [Patch v2 2/9] SimicsOpenBoardPkg: Remove Super I/O DXE driver Agyeman, Prince
2019-11-06 2:07 ` Chiu, Chasel
2019-11-06 22:39 ` Nate DeSimone
2019-11-07 0:49 ` Kubacki, Michael A [this message]
2019-11-06 1:25 ` [edk2-platforms] [Patch v2 3/9] BoardModulePkg: Add Super I/O driver Agyeman, Prince
2019-11-06 2:07 ` Chiu, Chasel
2019-11-06 22:39 ` Nate DeSimone
2019-11-07 0:49 ` Kubacki, Michael A
2019-11-06 1:25 ` [edk2-platforms] [Patch v2 4/9] BoardModulePkg: Add fix at build Pcds Agyeman, Prince
2019-11-06 2:07 ` Chiu, Chasel
2019-11-06 22:39 ` Nate DeSimone
2019-11-07 0:49 ` Kubacki, Michael A
2019-11-06 1:25 ` [edk2-platforms] [Patch v2 5/9] BoardModulePkg: Added Pcds to Super I/O driver Agyeman, Prince
2019-11-06 2:08 ` Chiu, Chasel
2019-11-06 22:39 ` Nate DeSimone
2019-11-07 0:49 ` Kubacki, Michael A
2019-11-06 1:26 ` [edk2-platforms] [Patch v2 6/9] BoardModulePkg: Add Ps2 Keyboard Library Agyeman, Prince
2019-11-06 2:08 ` Chiu, Chasel
2019-11-06 22:39 ` Nate DeSimone
2019-11-07 0:49 ` Kubacki, Michael A
2019-11-06 1:26 ` [edk2-platforms] [Patch v2 7/9] KabylakeOpenBoardPkg: Add Ps2 Keyboard Support Agyeman, Prince
2019-11-06 2:08 ` [edk2-devel] " Chiu, Chasel
2019-11-06 22:39 ` Nate DeSimone
2019-11-07 0:50 ` Kubacki, Michael A
2019-11-06 1:26 ` [edk2-platforms] [Patch v2 8/9] SimicsOpenBoardPkg: Add Ps2 keyboard Support Agyeman, Prince
2019-11-06 2:09 ` Chiu, Chasel
2019-11-06 22:39 ` Nate DeSimone
2019-11-07 0:50 ` Kubacki, Michael A
2019-11-06 1:26 ` [edk2-platforms] [Patch v2 9/9] WhiskeylakeOpenBoardPkg: Add Ps2 Keyboard Support Agyeman, Prince
2019-11-06 2:09 ` Chiu, Chasel
2019-11-06 22:39 ` Nate DeSimone
2019-11-07 0:50 ` Kubacki, Michael A
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BY5PR11MB44840DF950BBE42343C13E26B5780@BY5PR11MB4484.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox