mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-31 01:24:12 +02:00
OvmfPkg: strip trailing whitespace
Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Anthony Perard <anthony.perard@citrix.com> Cc: Julien Grall <julien.grall@arm.com> Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
This commit is contained in:
parent
ba39402f34
commit
4040754daf
@ -124,7 +124,7 @@ LocateFvInstanceWithTables (
|
||||
|
||||
|
||||
/**
|
||||
Find ACPI tables in an FV and install them.
|
||||
Find ACPI tables in an FV and install them.
|
||||
|
||||
This is now a fall-back path. Normally, we will search for tables provided
|
||||
by the VMM first.
|
||||
@ -132,7 +132,7 @@ LocateFvInstanceWithTables (
|
||||
If that fails, we use this function to load the ACPI tables from an FV. The
|
||||
sources for the FV based tables is located under OvmfPkg/AcpiTables.
|
||||
|
||||
@param AcpiTable Protocol instance pointer
|
||||
@param AcpiTable Protocol instance pointer
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
#include "AcpiPlatform.h"
|
||||
#include <Library/BaseLib.h>
|
||||
@ -151,12 +151,12 @@ InstallXenTables (
|
||||
}
|
||||
|
||||
//
|
||||
// If XSDT table is find, just install its tables.
|
||||
// If XSDT table is find, just install its tables.
|
||||
// Otherwise, try to find and install the RSDT tables.
|
||||
//
|
||||
if (XenAcpiRsdpStructurePtr->XsdtAddress) {
|
||||
//
|
||||
// Retrieve the addresses of XSDT and
|
||||
// Retrieve the addresses of XSDT and
|
||||
// calculate the number of its table entries.
|
||||
//
|
||||
Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN)
|
||||
@ -212,7 +212,7 @@ InstallXenTables (
|
||||
Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN)
|
||||
XenAcpiRsdpStructurePtr->RsdtAddress;
|
||||
NumberOfTableEntries = (Rsdt->Length -
|
||||
sizeof (EFI_ACPI_DESCRIPTION_HEADER)) /
|
||||
sizeof (EFI_ACPI_DESCRIPTION_HEADER)) /
|
||||
sizeof (UINT32);
|
||||
|
||||
//
|
||||
|
@ -1,10 +1,10 @@
|
||||
/** @file
|
||||
FACS Table
|
||||
|
||||
|
||||
Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
#include <IndustryStandard/Acpi.h>
|
||||
|
||||
@ -70,7 +70,7 @@ ReferenceAcpiTable (
|
||||
)
|
||||
{
|
||||
//
|
||||
// Reference the table being generated to prevent the optimizer from removing the
|
||||
// Reference the table being generated to prevent the optimizer from removing the
|
||||
// data structure from the exeutable
|
||||
//
|
||||
return (VOID*)&FACS;
|
||||
|
@ -1,10 +1,10 @@
|
||||
///** @file
|
||||
//
|
||||
//
|
||||
// Browser formset.
|
||||
//
|
||||
//
|
||||
// Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
|
||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
//
|
||||
//
|
||||
//**/
|
||||
|
||||
#include "LegacyBootMaintUiVfr.h"
|
||||
@ -15,15 +15,15 @@ formset
|
||||
title = STRING_TOKEN(STR_LEGACY_BOOT_PROMPT),
|
||||
help = STRING_TOKEN(STR_LEGACY_BOOT_HELP),
|
||||
classguid = EFI_IFR_BOOT_MAINTENANCE_GUID,
|
||||
|
||||
|
||||
varstore LEGACY_BOOT_NV_DATA,
|
||||
varid = VARSTORE_ID_LEGACY_BOOT,
|
||||
name = LegacyBootData,
|
||||
guid = LEGACY_BOOT_OPTION_FORMSET_GUID;
|
||||
|
||||
|
||||
form formid = LEGACY_BOOT_FORM_ID,
|
||||
title = STRING_TOKEN(STR_LEGACY_BOOT_PROMPT);
|
||||
|
||||
|
||||
goto LEGACY_ORDER_CHANGE_FORM_ID,
|
||||
prompt = STRING_TOKEN(STR_FORM_FLOPPY_BOOT_TITLE),
|
||||
help = STRING_TOKEN(STR_FORM_FLOPPY_BOOT_HELP),
|
||||
@ -53,15 +53,15 @@ formset
|
||||
help = STRING_TOKEN(STR_FORM_BEV_BOOT_HELP),
|
||||
flags = INTERACTIVE,
|
||||
key = FORM_BEV_BOOT_ID;
|
||||
|
||||
|
||||
endform;
|
||||
|
||||
form formid = LEGACY_ORDER_CHANGE_FORM_ID,
|
||||
title = STRING_TOKEN(STR_ORDER_CHANGE_PROMPT);
|
||||
|
||||
|
||||
label FORM_BOOT_LEGACY_DEVICE_ID;
|
||||
label FORM_BOOT_LEGACY_LABEL_END;
|
||||
|
||||
|
||||
endform;
|
||||
|
||||
endformset;
|
||||
|
@ -1,8 +1,8 @@
|
||||
/******************************************************************************
|
||||
* xen-x86_32.h
|
||||
*
|
||||
*
|
||||
* Guest OS interface to x86 32-bit Xen.
|
||||
*
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Copyright (c) 2004-2007, K A Fraser
|
||||
|
@ -1,8 +1,8 @@
|
||||
/******************************************************************************
|
||||
* xen-x86_64.h
|
||||
*
|
||||
*
|
||||
* Guest OS interface to x86 64-bit Xen.
|
||||
*
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Copyright (c) 2004-2006, K A Fraser
|
||||
|
@ -1,8 +1,8 @@
|
||||
/******************************************************************************
|
||||
* arch-x86/xen.h
|
||||
*
|
||||
*
|
||||
* Guest OS interface to x86 Xen.
|
||||
*
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Copyright (c) 2004-2006, K A Fraser
|
||||
|
@ -103,7 +103,7 @@
|
||||
*/
|
||||
#define HVM_PARAM_ACPI_IOPORTS_LOCATION 19
|
||||
|
||||
/* Enable blocking memory events, async or sync (pause vcpu until response)
|
||||
/* Enable blocking memory events, async or sync (pause vcpu until response)
|
||||
* onchangeonly indicates messages only on a change of value */
|
||||
#define HVM_PARAM_MEMORY_EVENT_CR0 20
|
||||
#define HVM_PARAM_MEMORY_EVENT_CR3 21
|
||||
|
@ -1,6 +1,6 @@
|
||||
/******************************************************************************
|
||||
* protocols.h
|
||||
*
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/******************************************************************************
|
||||
* ring.h
|
||||
*
|
||||
*
|
||||
* Shared producer-consumer ring macros.
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
@ -31,7 +31,7 @@ typedef UINT32 RING_IDX;
|
||||
/*
|
||||
* Calculate size of a shared ring, given the total available space for the
|
||||
* ring and indexes (_sz), and the name tag of the request/response structure.
|
||||
* A ring contains as many entries as will fit, rounded down to the nearest
|
||||
* A ring contains as many entries as will fit, rounded down to the nearest
|
||||
* power of two (so we can mask with (size-1) to loop around).
|
||||
*/
|
||||
#define __CONST_RING_SIZE(_s, _sz) \
|
||||
@ -45,7 +45,7 @@ typedef UINT32 RING_IDX;
|
||||
|
||||
/*
|
||||
* Macros to make the correct C datatypes for a new kind of ring.
|
||||
*
|
||||
*
|
||||
* To make a new ring datatype, you need to have two message structures,
|
||||
* let's say request_t, and response_t already defined.
|
||||
*
|
||||
@ -55,7 +55,7 @@ typedef UINT32 RING_IDX;
|
||||
*
|
||||
* These expand out to give you a set of types, as you can see below.
|
||||
* The most important of these are:
|
||||
*
|
||||
*
|
||||
* mytag_sring_t - The shared ring.
|
||||
* mytag_front_ring_t - The 'front' half of the ring.
|
||||
* mytag_back_ring_t - The 'back' half of the ring.
|
||||
@ -123,15 +123,15 @@ typedef struct __name##_back_ring __name##_back_ring_t
|
||||
|
||||
/*
|
||||
* Macros for manipulating rings.
|
||||
*
|
||||
* FRONT_RING_whatever works on the "front end" of a ring: here
|
||||
*
|
||||
* FRONT_RING_whatever works on the "front end" of a ring: here
|
||||
* requests are pushed on to the ring and responses taken off it.
|
||||
*
|
||||
* BACK_RING_whatever works on the "back end" of a ring: here
|
||||
*
|
||||
* BACK_RING_whatever works on the "back end" of a ring: here
|
||||
* requests are taken off the ring and responses put on.
|
||||
*
|
||||
* N.B. these macros do NO INTERLOCKS OR FLOW CONTROL.
|
||||
* This is OK in 1-for-1 request-response situations where the
|
||||
*
|
||||
* N.B. these macros do NO INTERLOCKS OR FLOW CONTROL.
|
||||
* This is OK in 1-for-1 request-response situations where the
|
||||
* requestor (front end) never has more than RING_SIZE()-1
|
||||
* outstanding requests.
|
||||
*/
|
||||
@ -219,26 +219,26 @@ typedef struct __name##_back_ring __name##_back_ring_t
|
||||
|
||||
/*
|
||||
* Notification hold-off (req_event and rsp_event):
|
||||
*
|
||||
*
|
||||
* When queueing requests or responses on a shared ring, it may not always be
|
||||
* necessary to notify the remote end. For example, if requests are in flight
|
||||
* in a backend, the front may be able to queue further requests without
|
||||
* notifying the back (if the back checks for new requests when it queues
|
||||
* responses).
|
||||
*
|
||||
*
|
||||
* When enqueuing requests or responses:
|
||||
*
|
||||
*
|
||||
* Use RING_PUSH_{REQUESTS,RESPONSES}_AND_CHECK_NOTIFY(). The second argument
|
||||
* is a boolean return value. True indicates that the receiver requires an
|
||||
* asynchronous notification.
|
||||
*
|
||||
*
|
||||
* After dequeuing requests or responses (before sleeping the connection):
|
||||
*
|
||||
*
|
||||
* Use RING_FINAL_CHECK_FOR_REQUESTS() or RING_FINAL_CHECK_FOR_RESPONSES().
|
||||
* The second argument is a boolean return value. True indicates that there
|
||||
* are pending messages on the ring (i.e., the connection should not be put
|
||||
* to sleep).
|
||||
*
|
||||
*
|
||||
* These macros will set the req_event/rsp_event field to trigger a
|
||||
* notification on the very next message that is enqueued. If you want to
|
||||
* create batches of work (i.e., only receive a notification after several
|
||||
|
@ -1,8 +1,8 @@
|
||||
/******************************************************************************
|
||||
* memory.h
|
||||
*
|
||||
*
|
||||
* Memory reservation and information.
|
||||
*
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Copyright (c) 2005, Keir Fraser <keir@xensource.com>
|
||||
|
@ -1,8 +1,8 @@
|
||||
/******************************************************************************
|
||||
* xen-compat.h
|
||||
*
|
||||
*
|
||||
* Guest OS interface to Xen. Compatibility layer.
|
||||
*
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Copyright (c) 2006, Christian Limpach
|
||||
|
@ -1,8 +1,8 @@
|
||||
/******************************************************************************
|
||||
* xen.h
|
||||
*
|
||||
*
|
||||
* Guest OS interface to Xen.
|
||||
*
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Copyright (c) 2004, K A Fraser
|
||||
@ -203,7 +203,7 @@ typedef struct vcpu_time_info vcpu_time_info_t;
|
||||
struct vcpu_info {
|
||||
/*
|
||||
* 'evtchn_upcall_pending' is written non-zero by Xen to indicate
|
||||
* a pending notification for a particular VCPU. It is then cleared
|
||||
* a pending notification for a particular VCPU. It is then cleared
|
||||
* by the guest OS /before/ checking for pending work, thus avoiding
|
||||
* a set-and-check race. Note that the mask is only accessed by Xen
|
||||
* on the CPU that is currently hosting the VCPU. This means that the
|
||||
@ -266,7 +266,7 @@ struct shared_info {
|
||||
* 3. Virtual interrupts ('events'). A domain can bind an event-channel
|
||||
* port to a virtual interrupt source, such as the virtual-timer
|
||||
* device or the emergency console.
|
||||
*
|
||||
*
|
||||
* Event channels are addressed by a "port index". Each channel is
|
||||
* associated with two bits of information:
|
||||
* 1. PENDING -- notifies the domain that there is a pending notification
|
||||
@ -277,7 +277,7 @@ struct shared_info {
|
||||
* becomes pending while the channel is masked then the 'edge' is lost
|
||||
* (i.e., when the channel is unmasked, the guest must manually handle
|
||||
* pending notifications as no upcall will be scheduled by Xen).
|
||||
*
|
||||
*
|
||||
* To expedite scanning of pending notifications, any 0->1 pending
|
||||
* transition on an unmasked channel causes a corresponding bit in a
|
||||
* per-vcpu selector word to be set. Each bit in the selector covers a
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
SMRAM Save State Map Definitions.
|
||||
|
||||
SMRAM Save State Map definitions based on contents of the
|
||||
SMRAM Save State Map definitions based on contents of the
|
||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual
|
||||
Volume 3C, Section 34.4 SMRAM
|
||||
Volume 3C, Section 34.5 SMI Handler Execution Environment
|
||||
|
@ -39,19 +39,19 @@ InitializeConfigAccessMethod (
|
||||
}
|
||||
|
||||
/**
|
||||
Registers a PCI device so PCI configuration registers may be accessed after
|
||||
Registers a PCI device so PCI configuration registers may be accessed after
|
||||
SetVirtualAddressMap().
|
||||
|
||||
Registers the PCI device specified by Address so all the PCI configuration registers
|
||||
|
||||
Registers the PCI device specified by Address so all the PCI configuration registers
|
||||
associated with that PCI device may be accessed after SetVirtualAddressMap() is called.
|
||||
|
||||
|
||||
If Address > 0x0FFFFFFF, then ASSERT().
|
||||
|
||||
@param Address The address that encodes the PCI Bus, Device, Function and
|
||||
Register.
|
||||
|
||||
|
||||
@retval RETURN_SUCCESS The PCI device was registered for runtime access.
|
||||
@retval RETURN_UNSUPPORTED An attempt was made to call this function
|
||||
@retval RETURN_UNSUPPORTED An attempt was made to call this function
|
||||
after ExitBootServices().
|
||||
@retval RETURN_UNSUPPORTED The resources required to access the PCI device
|
||||
at runtime could not be mapped.
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
@param MemoryType Memory type of memory to allocate.
|
||||
@param Size Size of memory to allocate.
|
||||
|
||||
|
||||
@return Allocated address for output.
|
||||
|
||||
**/
|
||||
|
@ -48,7 +48,7 @@ LockBoxLibInitialize (
|
||||
StartOfEntries = ((LOCK_BOX_ENTRY *) (mLockBoxGlobal + 1));
|
||||
NumEntries = ((PcdGet32 (PcdOvmfLockBoxStorageSize) - sizeof (LOCK_BOX_GLOBAL)) /
|
||||
sizeof (LOCK_BOX_ENTRY));
|
||||
EndOfEntries = StartOfEntries + NumEntries;
|
||||
EndOfEntries = StartOfEntries + NumEntries;
|
||||
if (mLockBoxGlobal->Signature != LOCK_BOX_GLOBAL_SIGNATURE) {
|
||||
//
|
||||
// Note: This code depends on the lock box being cleared in early
|
||||
|
@ -1,5 +1,5 @@
|
||||
/** @file
|
||||
|
||||
|
||||
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
@ -10,7 +10,7 @@
|
||||
/**
|
||||
|
||||
This function provides a platform-specific method to detect whether the platform
|
||||
is operating by a physically present user.
|
||||
is operating by a physically present user.
|
||||
|
||||
Programmatic changing of platform security policy (such as disable Secure Boot,
|
||||
or switch between Standard/Custom Secure Boot mode) MUST NOT be possible during
|
||||
@ -19,7 +19,7 @@
|
||||
|
||||
NOTE THAT: This function cannot depend on any EFI Variable Service since they are
|
||||
not available when this function is called in AuthenticateVariable driver.
|
||||
|
||||
|
||||
@retval TRUE The platform is operated by a physically present user.
|
||||
@retval FALSE The platform is NOT operated by a physically present user.
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
/**
|
||||
Selects a firmware configuration item for reading.
|
||||
|
||||
|
||||
Following this call, any data read from this item will start from
|
||||
the beginning of the configuration item's data.
|
||||
|
||||
|
@ -102,7 +102,7 @@ XenIoMmioInstall (
|
||||
*Handle = OutHandle;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
DEBUG ((EFI_D_ERROR, "%a: Failed to install the EFI_DEVICE_PATH and "
|
||||
"XENIO_PROTOCOL protocols on handle %p (Status == %r)\n",
|
||||
__FUNCTION__, OutHandle, Status));
|
||||
|
@ -64,7 +64,7 @@ XenGetE820Map (
|
||||
|
||||
/**
|
||||
Connects to the Hypervisor.
|
||||
|
||||
|
||||
@param XenLeaf CPUID index used to connect.
|
||||
|
||||
@return EFI_STATUS
|
||||
|
@ -66,7 +66,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mSataControllerController
|
||||
@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.
|
||||
@ -94,7 +94,7 @@ SataControllerComponentNameGetDriverName (
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the controller
|
||||
that is being managed by an UEFI Driver.
|
||||
that is being managed by an UEFI Driver.
|
||||
|
||||
@param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.
|
||||
@param ControllerHandle The handle of a controller that the driver specified by
|
||||
@ -117,7 +117,7 @@ SataControllerComponentNameGetDriverName (
|
||||
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.
|
||||
|
@ -39,7 +39,7 @@ AhciReadReg (
|
||||
UINT32 Data;
|
||||
|
||||
ASSERT (PciIo != NULL);
|
||||
|
||||
|
||||
Data = 0;
|
||||
|
||||
PciIo->Mem.Read (
|
||||
@ -265,9 +265,9 @@ CalculateBestUdmaMode (
|
||||
/**
|
||||
The Entry Point of module. It follows the standard UEFI driver model.
|
||||
|
||||
@param[in] ImageHandle The firmware allocated handle for the EFI image.
|
||||
@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.
|
||||
|
||||
@ -361,7 +361,7 @@ SataControllerSupported (
|
||||
}
|
||||
|
||||
/**
|
||||
This routine is called right after the .Supported() called and
|
||||
This routine is called right after the .Supported() called and
|
||||
Start this driver on ControllerHandle.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@ -680,34 +680,34 @@ FlatDeviceIndex (
|
||||
//
|
||||
/**
|
||||
Returns the information about the specified IDE channel.
|
||||
|
||||
|
||||
This function can be used to obtain information about a particular IDE channel.
|
||||
The driver entity uses this information during the enumeration process.
|
||||
|
||||
If Enabled is set to FALSE, the driver entity will not scan the channel. Note
|
||||
The driver entity uses this information during the enumeration process.
|
||||
|
||||
If Enabled is set to FALSE, the driver entity will not scan the channel. Note
|
||||
that it will not prevent an operating system driver from scanning the channel.
|
||||
|
||||
For most of today's controllers, MaxDevices will either be 1 or 2. For SATA
|
||||
controllers, this value will always be 1. SATA configurations can contain SATA
|
||||
|
||||
For most of today's controllers, MaxDevices will either be 1 or 2. For SATA
|
||||
controllers, this value will always be 1. SATA configurations can contain SATA
|
||||
port multipliers. SATA port multipliers behave like SATA bridges and can support
|
||||
up to 16 devices on the other side. If a SATA port out of the IDE controller
|
||||
is connected to a port multiplier, MaxDevices will be set to the number of SATA
|
||||
devices that the port multiplier supports. Because today's port multipliers
|
||||
support up to fifteen SATA devices, this number can be as large as fifteen. The IDE
|
||||
bus driver is required to scan for the presence of port multipliers behind an SATA
|
||||
controller and enumerate up to MaxDevices number of devices behind the port
|
||||
multiplier.
|
||||
|
||||
In this context, the devices behind a port multiplier constitute a channel.
|
||||
|
||||
up to 16 devices on the other side. If a SATA port out of the IDE controller
|
||||
is connected to a port multiplier, MaxDevices will be set to the number of SATA
|
||||
devices that the port multiplier supports. Because today's port multipliers
|
||||
support up to fifteen SATA devices, this number can be as large as fifteen. The IDE
|
||||
bus driver is required to scan for the presence of port multipliers behind an SATA
|
||||
controller and enumerate up to MaxDevices number of devices behind the port
|
||||
multiplier.
|
||||
|
||||
In this context, the devices behind a port multiplier constitute a channel.
|
||||
|
||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Channel Zero-based channel number.
|
||||
@param[out] Enabled TRUE if this channel is enabled. Disabled channels
|
||||
@param[out] Enabled TRUE if this channel is enabled. Disabled channels
|
||||
are not scanned to see if any devices are present.
|
||||
@param[out] MaxDevices The maximum number of IDE devices that the bus driver
|
||||
can expect on this channel. For the ATA/ATAPI
|
||||
specification, version 6, this number will either be
|
||||
one or two. For Serial ATA (SATA) configurations with a
|
||||
can expect on this channel. For the ATA/ATAPI
|
||||
specification, version 6, this number will either be
|
||||
one or two. For Serial ATA (SATA) configurations with a
|
||||
port multiplier, this number can be as large as fifteen.
|
||||
|
||||
@retval EFI_SUCCESS Information was returned without any errors.
|
||||
@ -740,13 +740,13 @@ IdeInitGetChannelInfo (
|
||||
/**
|
||||
The notifications from the driver entity that it is about to enter a certain
|
||||
phase of the IDE channel enumeration process.
|
||||
|
||||
This function can be used to notify the IDE controller driver to perform
|
||||
specific actions, including any chipset-specific initialization, so that the
|
||||
chipset is ready to enter the next phase. Seven notification points are defined
|
||||
at this time.
|
||||
|
||||
More synchronization points may be added as required in the future.
|
||||
|
||||
This function can be used to notify the IDE controller driver to perform
|
||||
specific actions, including any chipset-specific initialization, so that the
|
||||
chipset is ready to enter the next phase. Seven notification points are defined
|
||||
at this time.
|
||||
|
||||
More synchronization points may be added as required in the future.
|
||||
|
||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Phase The phase during enumeration.
|
||||
@ -755,9 +755,9 @@ IdeInitGetChannelInfo (
|
||||
@retval EFI_SUCCESS The notification was accepted without any errors.
|
||||
@retval EFI_UNSUPPORTED Phase is not supported.
|
||||
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
|
||||
@retval EFI_NOT_READY This phase cannot be entered at this time; for
|
||||
example, an attempt was made to enter a Phase
|
||||
without having entered one or more previous
|
||||
@retval EFI_NOT_READY This phase cannot be entered at this time; for
|
||||
example, an attempt was made to enter a Phase
|
||||
without having entered one or more previous
|
||||
Phase.
|
||||
|
||||
**/
|
||||
@ -775,32 +775,32 @@ IdeInitNotifyPhase (
|
||||
/**
|
||||
Submits the device information to the IDE controller driver.
|
||||
|
||||
This function is used by the driver entity to pass detailed information about
|
||||
a particular device to the IDE controller driver. The driver entity obtains
|
||||
This function is used by the driver entity to pass detailed information about
|
||||
a particular device to the IDE controller driver. The driver entity obtains
|
||||
this information by issuing an ATA or ATAPI IDENTIFY_DEVICE command. IdentifyData
|
||||
is the pointer to the response data buffer. The IdentifyData buffer is owned
|
||||
by the driver entity, and the IDE controller driver must make a local copy
|
||||
of the entire buffer or parts of the buffer as needed. The original IdentifyData
|
||||
is the pointer to the response data buffer. The IdentifyData buffer is owned
|
||||
by the driver entity, and the IDE controller driver must make a local copy
|
||||
of the entire buffer or parts of the buffer as needed. The original IdentifyData
|
||||
buffer pointer may not be valid when
|
||||
|
||||
|
||||
- EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() or
|
||||
- EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode() is called at a later point.
|
||||
|
||||
The IDE controller driver may consult various fields of EFI_IDENTIFY_DATA to
|
||||
compute the optimum mode for the device. These fields are not limited to the
|
||||
timing information. For example, an implementation of the IDE controller driver
|
||||
may examine the vendor and type/mode field to match known bad drives.
|
||||
|
||||
The driver entity may submit drive information in any order, as long as it
|
||||
submits information for all the devices belonging to the enumeration group
|
||||
|
||||
The IDE controller driver may consult various fields of EFI_IDENTIFY_DATA to
|
||||
compute the optimum mode for the device. These fields are not limited to the
|
||||
timing information. For example, an implementation of the IDE controller driver
|
||||
may examine the vendor and type/mode field to match known bad drives.
|
||||
|
||||
The driver entity may submit drive information in any order, as long as it
|
||||
submits information for all the devices belonging to the enumeration group
|
||||
before EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() is called for any device
|
||||
in that enumeration group. If a device is absent, EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
should be called with IdentifyData set to NULL. The IDE controller driver may
|
||||
not have any other mechanism to know whether a device is present or not. Therefore,
|
||||
setting IdentifyData to NULL does not constitute an error condition.
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData() can be called only once for a
|
||||
given (Channel, Device) pair.
|
||||
|
||||
should be called with IdentifyData set to NULL. The IDE controller driver may
|
||||
not have any other mechanism to know whether a device is present or not. Therefore,
|
||||
setting IdentifyData to NULL does not constitute an error condition.
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData() can be called only once for a
|
||||
given (Channel, Device) pair.
|
||||
|
||||
@param[in] This A pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Channel Zero-based channel number.
|
||||
@param[in] Device Zero-based device number on the Channel.
|
||||
@ -853,31 +853,31 @@ IdeInitSubmitData (
|
||||
/**
|
||||
Disqualifies specific modes for an IDE device.
|
||||
|
||||
This function allows the driver entity or other drivers (such as platform
|
||||
This function allows the driver entity or other drivers (such as platform
|
||||
drivers) to reject certain timing modes and request the IDE controller driver
|
||||
to recalculate modes. This function allows the driver entity and the IDE
|
||||
controller driver to negotiate the timings on a per-device basis. This function
|
||||
is useful in the case of drives that lie about their capabilities. An example
|
||||
is when the IDE device fails to accept the timing modes that are calculated
|
||||
to recalculate modes. This function allows the driver entity and the IDE
|
||||
controller driver to negotiate the timings on a per-device basis. This function
|
||||
is useful in the case of drives that lie about their capabilities. An example
|
||||
is when the IDE device fails to accept the timing modes that are calculated
|
||||
by the IDE controller driver based on the response to the Identify Drive command.
|
||||
|
||||
If the driver entity does not want to limit the ATA timing modes and leave that
|
||||
decision to the IDE controller driver, it can either not call this function for
|
||||
the given device or call this function and set the Valid flag to FALSE for all
|
||||
If the driver entity does not want to limit the ATA timing modes and leave that
|
||||
decision to the IDE controller driver, it can either not call this function for
|
||||
the given device or call this function and set the Valid flag to FALSE for all
|
||||
modes that are listed in EFI_ATA_COLLECTIVE_MODE.
|
||||
|
||||
The driver entity may disqualify modes for a device in any order and any number
|
||||
|
||||
The driver entity may disqualify modes for a device in any order and any number
|
||||
of times.
|
||||
|
||||
This function can be called multiple times to invalidate multiple modes of the
|
||||
same type (e.g., Programmed Input/Output [PIO] modes 3 and 4). See the ATA/ATAPI
|
||||
specification for more information on PIO modes.
|
||||
|
||||
|
||||
This function can be called multiple times to invalidate multiple modes of the
|
||||
same type (e.g., Programmed Input/Output [PIO] modes 3 and 4). See the ATA/ATAPI
|
||||
specification for more information on PIO modes.
|
||||
|
||||
For Serial ATA (SATA) controllers, this member function can be used to disqualify
|
||||
a higher transfer rate mode on a given channel. For example, a platform driver
|
||||
may inform the IDE controller driver to not use second-generation (Gen2) speeds
|
||||
may inform the IDE controller driver to not use second-generation (Gen2) speeds
|
||||
for a certain SATA drive.
|
||||
|
||||
|
||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Channel The zero-based channel number.
|
||||
@param[in] Device The zero-based device number on the Channel.
|
||||
@ -888,7 +888,7 @@ IdeInitSubmitData (
|
||||
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
|
||||
@retval EFI_INVALID_PARAMETER Device is invalid.
|
||||
@retval EFI_INVALID_PARAMETER IdentifyData is NULL.
|
||||
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
@ -928,39 +928,39 @@ IdeInitDisqualifyMode (
|
||||
Returns the information about the optimum modes for the specified IDE device.
|
||||
|
||||
This function is used by the driver entity to obtain the optimum ATA modes for
|
||||
a specific device. The IDE controller driver takes into account the following
|
||||
a specific device. The IDE controller driver takes into account the following
|
||||
while calculating the mode:
|
||||
- The IdentifyData inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
- The BadModes inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode()
|
||||
|
||||
The driver entity is required to call EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
for all the devices that belong to an enumeration group before calling
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() for any device in the same group.
|
||||
|
||||
The IDE controller driver will use controller- and possibly platform-specific
|
||||
algorithms to arrive at SupportedModes. The IDE controller may base its
|
||||
decision on user preferences and other considerations as well. This function
|
||||
may be called multiple times because the driver entity may renegotiate the mode
|
||||
The driver entity is required to call EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
for all the devices that belong to an enumeration group before calling
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() for any device in the same group.
|
||||
|
||||
The IDE controller driver will use controller- and possibly platform-specific
|
||||
algorithms to arrive at SupportedModes. The IDE controller may base its
|
||||
decision on user preferences and other considerations as well. This function
|
||||
may be called multiple times because the driver entity may renegotiate the mode
|
||||
with the IDE controller driver using EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode().
|
||||
|
||||
The driver entity may collect timing information for various devices in any
|
||||
|
||||
The driver entity may collect timing information for various devices in any
|
||||
order. The driver entity is responsible for making sure that all the dependencies
|
||||
are satisfied. For example, the SupportedModes information for device A that
|
||||
was previously returned may become stale after a call to
|
||||
are satisfied. For example, the SupportedModes information for device A that
|
||||
was previously returned may become stale after a call to
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode() for device B.
|
||||
|
||||
The buffer SupportedModes is allocated by the callee because the caller does
|
||||
not necessarily know the size of the buffer. The type EFI_ATA_COLLECTIVE_MODE
|
||||
is defined in a way that allows for future extensibility and can be of variable
|
||||
length. This memory pool should be deallocated by the caller when it is no
|
||||
longer necessary.
|
||||
|
||||
The IDE controller driver for a Serial ATA (SATA) controller can use this
|
||||
member function to force a lower speed (first-generation [Gen1] speeds on a
|
||||
second-generation [Gen2]-capable hardware). The IDE controller driver can
|
||||
also allow the driver entity to stay with the speed that has been negotiated
|
||||
|
||||
The buffer SupportedModes is allocated by the callee because the caller does
|
||||
not necessarily know the size of the buffer. The type EFI_ATA_COLLECTIVE_MODE
|
||||
is defined in a way that allows for future extensibility and can be of variable
|
||||
length. This memory pool should be deallocated by the caller when it is no
|
||||
longer necessary.
|
||||
|
||||
The IDE controller driver for a Serial ATA (SATA) controller can use this
|
||||
member function to force a lower speed (first-generation [Gen1] speeds on a
|
||||
second-generation [Gen2]-capable hardware). The IDE controller driver can
|
||||
also allow the driver entity to stay with the speed that has been negotiated
|
||||
by the physical layer.
|
||||
|
||||
|
||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Channel A zero-based channel number.
|
||||
@param[in] Device A zero-based device number on the Channel.
|
||||
@ -968,13 +968,13 @@ IdeInitDisqualifyMode (
|
||||
|
||||
@retval EFI_SUCCESS SupportedModes was returned.
|
||||
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
|
||||
@retval EFI_INVALID_PARAMETER Device is invalid.
|
||||
@retval EFI_INVALID_PARAMETER Device is invalid.
|
||||
@retval EFI_INVALID_PARAMETER SupportedModes is NULL.
|
||||
@retval EFI_NOT_READY Modes cannot be calculated due to a lack of
|
||||
data. This error may happen if
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
and EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyData()
|
||||
were not called for at least one drive in the
|
||||
@retval EFI_NOT_READY Modes cannot be calculated due to a lack of
|
||||
data. This error may happen if
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
and EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyData()
|
||||
were not called for at least one drive in the
|
||||
same enumeration group.
|
||||
|
||||
**/
|
||||
@ -1061,9 +1061,9 @@ IdeInitCalculateMode (
|
||||
Commands the IDE controller driver to program the IDE controller hardware
|
||||
so that the specified device can operate at the specified mode.
|
||||
|
||||
This function is used by the driver entity to instruct the IDE controller
|
||||
driver to program the IDE controller hardware to the specified modes. This
|
||||
function can be called only once for a particular device. For a Serial ATA
|
||||
This function is used by the driver entity to instruct the IDE controller
|
||||
driver to program the IDE controller hardware to the specified modes. This
|
||||
function can be called only once for a particular device. For a Serial ATA
|
||||
(SATA) Advanced Host Controller Interface (AHCI) controller, no controller-
|
||||
specific programming may be required.
|
||||
|
||||
|
@ -132,7 +132,7 @@ SataControllerSupported (
|
||||
;
|
||||
|
||||
/**
|
||||
This routine is called right after the .Supported() called and
|
||||
This routine is called right after the .Supported() called and
|
||||
Start this driver on ControllerHandle.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@ -181,34 +181,34 @@ SataControllerStop (
|
||||
//
|
||||
/**
|
||||
Returns the information about the specified IDE channel.
|
||||
|
||||
|
||||
This function can be used to obtain information about a particular IDE channel.
|
||||
The driver entity uses this information during the enumeration process.
|
||||
|
||||
If Enabled is set to FALSE, the driver entity will not scan the channel. Note
|
||||
The driver entity uses this information during the enumeration process.
|
||||
|
||||
If Enabled is set to FALSE, the driver entity will not scan the channel. Note
|
||||
that it will not prevent an operating system driver from scanning the channel.
|
||||
|
||||
For most of today's controllers, MaxDevices will either be 1 or 2. For SATA
|
||||
controllers, this value will always be 1. SATA configurations can contain SATA
|
||||
|
||||
For most of today's controllers, MaxDevices will either be 1 or 2. For SATA
|
||||
controllers, this value will always be 1. SATA configurations can contain SATA
|
||||
port multipliers. SATA port multipliers behave like SATA bridges and can support
|
||||
up to 16 devices on the other side. If a SATA port out of the IDE controller
|
||||
is connected to a port multiplier, MaxDevices will be set to the number of SATA
|
||||
devices that the port multiplier supports. Because today's port multipliers
|
||||
support up to fifteen SATA devices, this number can be as large as fifteen. The IDE
|
||||
bus driver is required to scan for the presence of port multipliers behind an SATA
|
||||
controller and enumerate up to MaxDevices number of devices behind the port
|
||||
multiplier.
|
||||
|
||||
In this context, the devices behind a port multiplier constitute a channel.
|
||||
|
||||
up to 16 devices on the other side. If a SATA port out of the IDE controller
|
||||
is connected to a port multiplier, MaxDevices will be set to the number of SATA
|
||||
devices that the port multiplier supports. Because today's port multipliers
|
||||
support up to fifteen SATA devices, this number can be as large as fifteen. The IDE
|
||||
bus driver is required to scan for the presence of port multipliers behind an SATA
|
||||
controller and enumerate up to MaxDevices number of devices behind the port
|
||||
multiplier.
|
||||
|
||||
In this context, the devices behind a port multiplier constitute a channel.
|
||||
|
||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Channel Zero-based channel number.
|
||||
@param[out] Enabled TRUE if this channel is enabled. Disabled channels
|
||||
@param[out] Enabled TRUE if this channel is enabled. Disabled channels
|
||||
are not scanned to see if any devices are present.
|
||||
@param[out] MaxDevices The maximum number of IDE devices that the bus driver
|
||||
can expect on this channel. For the ATA/ATAPI
|
||||
specification, version 6, this number will either be
|
||||
one or two. For Serial ATA (SATA) configurations with a
|
||||
can expect on this channel. For the ATA/ATAPI
|
||||
specification, version 6, this number will either be
|
||||
one or two. For Serial ATA (SATA) configurations with a
|
||||
port multiplier, this number can be as large as fifteen.
|
||||
|
||||
@retval EFI_SUCCESS Information was returned without any errors.
|
||||
@ -228,13 +228,13 @@ IdeInitGetChannelInfo (
|
||||
/**
|
||||
The notifications from the driver entity that it is about to enter a certain
|
||||
phase of the IDE channel enumeration process.
|
||||
|
||||
This function can be used to notify the IDE controller driver to perform
|
||||
specific actions, including any chipset-specific initialization, so that the
|
||||
chipset is ready to enter the next phase. Seven notification points are defined
|
||||
at this time.
|
||||
|
||||
More synchronization points may be added as required in the future.
|
||||
|
||||
This function can be used to notify the IDE controller driver to perform
|
||||
specific actions, including any chipset-specific initialization, so that the
|
||||
chipset is ready to enter the next phase. Seven notification points are defined
|
||||
at this time.
|
||||
|
||||
More synchronization points may be added as required in the future.
|
||||
|
||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Phase The phase during enumeration.
|
||||
@ -243,9 +243,9 @@ IdeInitGetChannelInfo (
|
||||
@retval EFI_SUCCESS The notification was accepted without any errors.
|
||||
@retval EFI_UNSUPPORTED Phase is not supported.
|
||||
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
|
||||
@retval EFI_NOT_READY This phase cannot be entered at this time; for
|
||||
example, an attempt was made to enter a Phase
|
||||
without having entered one or more previous
|
||||
@retval EFI_NOT_READY This phase cannot be entered at this time; for
|
||||
example, an attempt was made to enter a Phase
|
||||
without having entered one or more previous
|
||||
Phase.
|
||||
|
||||
**/
|
||||
@ -261,32 +261,32 @@ IdeInitNotifyPhase (
|
||||
/**
|
||||
Submits the device information to the IDE controller driver.
|
||||
|
||||
This function is used by the driver entity to pass detailed information about
|
||||
a particular device to the IDE controller driver. The driver entity obtains
|
||||
This function is used by the driver entity to pass detailed information about
|
||||
a particular device to the IDE controller driver. The driver entity obtains
|
||||
this information by issuing an ATA or ATAPI IDENTIFY_DEVICE command. IdentifyData
|
||||
is the pointer to the response data buffer. The IdentifyData buffer is owned
|
||||
by the driver entity, and the IDE controller driver must make a local copy
|
||||
of the entire buffer or parts of the buffer as needed. The original IdentifyData
|
||||
is the pointer to the response data buffer. The IdentifyData buffer is owned
|
||||
by the driver entity, and the IDE controller driver must make a local copy
|
||||
of the entire buffer or parts of the buffer as needed. The original IdentifyData
|
||||
buffer pointer may not be valid when
|
||||
|
||||
|
||||
- EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() or
|
||||
- EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode() is called at a later point.
|
||||
|
||||
The IDE controller driver may consult various fields of EFI_IDENTIFY_DATA to
|
||||
compute the optimum mode for the device. These fields are not limited to the
|
||||
timing information. For example, an implementation of the IDE controller driver
|
||||
may examine the vendor and type/mode field to match known bad drives.
|
||||
|
||||
The driver entity may submit drive information in any order, as long as it
|
||||
submits information for all the devices belonging to the enumeration group
|
||||
|
||||
The IDE controller driver may consult various fields of EFI_IDENTIFY_DATA to
|
||||
compute the optimum mode for the device. These fields are not limited to the
|
||||
timing information. For example, an implementation of the IDE controller driver
|
||||
may examine the vendor and type/mode field to match known bad drives.
|
||||
|
||||
The driver entity may submit drive information in any order, as long as it
|
||||
submits information for all the devices belonging to the enumeration group
|
||||
before EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() is called for any device
|
||||
in that enumeration group. If a device is absent, EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
should be called with IdentifyData set to NULL. The IDE controller driver may
|
||||
not have any other mechanism to know whether a device is present or not. Therefore,
|
||||
setting IdentifyData to NULL does not constitute an error condition.
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData() can be called only once for a
|
||||
given (Channel, Device) pair.
|
||||
|
||||
should be called with IdentifyData set to NULL. The IDE controller driver may
|
||||
not have any other mechanism to know whether a device is present or not. Therefore,
|
||||
setting IdentifyData to NULL does not constitute an error condition.
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData() can be called only once for a
|
||||
given (Channel, Device) pair.
|
||||
|
||||
@param[in] This A pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Channel Zero-based channel number.
|
||||
@param[in] Device Zero-based device number on the Channel.
|
||||
@ -310,31 +310,31 @@ IdeInitSubmitData (
|
||||
/**
|
||||
Disqualifies specific modes for an IDE device.
|
||||
|
||||
This function allows the driver entity or other drivers (such as platform
|
||||
This function allows the driver entity or other drivers (such as platform
|
||||
drivers) to reject certain timing modes and request the IDE controller driver
|
||||
to recalculate modes. This function allows the driver entity and the IDE
|
||||
controller driver to negotiate the timings on a per-device basis. This function
|
||||
is useful in the case of drives that lie about their capabilities. An example
|
||||
is when the IDE device fails to accept the timing modes that are calculated
|
||||
to recalculate modes. This function allows the driver entity and the IDE
|
||||
controller driver to negotiate the timings on a per-device basis. This function
|
||||
is useful in the case of drives that lie about their capabilities. An example
|
||||
is when the IDE device fails to accept the timing modes that are calculated
|
||||
by the IDE controller driver based on the response to the Identify Drive command.
|
||||
|
||||
If the driver entity does not want to limit the ATA timing modes and leave that
|
||||
decision to the IDE controller driver, it can either not call this function for
|
||||
the given device or call this function and set the Valid flag to FALSE for all
|
||||
If the driver entity does not want to limit the ATA timing modes and leave that
|
||||
decision to the IDE controller driver, it can either not call this function for
|
||||
the given device or call this function and set the Valid flag to FALSE for all
|
||||
modes that are listed in EFI_ATA_COLLECTIVE_MODE.
|
||||
|
||||
The driver entity may disqualify modes for a device in any order and any number
|
||||
|
||||
The driver entity may disqualify modes for a device in any order and any number
|
||||
of times.
|
||||
|
||||
This function can be called multiple times to invalidate multiple modes of the
|
||||
same type (e.g., Programmed Input/Output [PIO] modes 3 and 4). See the ATA/ATAPI
|
||||
specification for more information on PIO modes.
|
||||
|
||||
|
||||
This function can be called multiple times to invalidate multiple modes of the
|
||||
same type (e.g., Programmed Input/Output [PIO] modes 3 and 4). See the ATA/ATAPI
|
||||
specification for more information on PIO modes.
|
||||
|
||||
For Serial ATA (SATA) controllers, this member function can be used to disqualify
|
||||
a higher transfer rate mode on a given channel. For example, a platform driver
|
||||
may inform the IDE controller driver to not use second-generation (Gen2) speeds
|
||||
may inform the IDE controller driver to not use second-generation (Gen2) speeds
|
||||
for a certain SATA drive.
|
||||
|
||||
|
||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Channel The zero-based channel number.
|
||||
@param[in] Device The zero-based device number on the Channel.
|
||||
@ -345,7 +345,7 @@ IdeInitSubmitData (
|
||||
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
|
||||
@retval EFI_INVALID_PARAMETER Device is invalid.
|
||||
@retval EFI_INVALID_PARAMETER IdentifyData is NULL.
|
||||
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
@ -361,39 +361,39 @@ IdeInitDisqualifyMode (
|
||||
Returns the information about the optimum modes for the specified IDE device.
|
||||
|
||||
This function is used by the driver entity to obtain the optimum ATA modes for
|
||||
a specific device. The IDE controller driver takes into account the following
|
||||
a specific device. The IDE controller driver takes into account the following
|
||||
while calculating the mode:
|
||||
- The IdentifyData inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
- The BadModes inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode()
|
||||
|
||||
The driver entity is required to call EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
for all the devices that belong to an enumeration group before calling
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() for any device in the same group.
|
||||
|
||||
The IDE controller driver will use controller- and possibly platform-specific
|
||||
algorithms to arrive at SupportedModes. The IDE controller may base its
|
||||
decision on user preferences and other considerations as well. This function
|
||||
may be called multiple times because the driver entity may renegotiate the mode
|
||||
The driver entity is required to call EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
for all the devices that belong to an enumeration group before calling
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() for any device in the same group.
|
||||
|
||||
The IDE controller driver will use controller- and possibly platform-specific
|
||||
algorithms to arrive at SupportedModes. The IDE controller may base its
|
||||
decision on user preferences and other considerations as well. This function
|
||||
may be called multiple times because the driver entity may renegotiate the mode
|
||||
with the IDE controller driver using EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode().
|
||||
|
||||
The driver entity may collect timing information for various devices in any
|
||||
|
||||
The driver entity may collect timing information for various devices in any
|
||||
order. The driver entity is responsible for making sure that all the dependencies
|
||||
are satisfied. For example, the SupportedModes information for device A that
|
||||
was previously returned may become stale after a call to
|
||||
are satisfied. For example, the SupportedModes information for device A that
|
||||
was previously returned may become stale after a call to
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode() for device B.
|
||||
|
||||
The buffer SupportedModes is allocated by the callee because the caller does
|
||||
not necessarily know the size of the buffer. The type EFI_ATA_COLLECTIVE_MODE
|
||||
is defined in a way that allows for future extensibility and can be of variable
|
||||
length. This memory pool should be deallocated by the caller when it is no
|
||||
longer necessary.
|
||||
|
||||
The IDE controller driver for a Serial ATA (SATA) controller can use this
|
||||
member function to force a lower speed (first-generation [Gen1] speeds on a
|
||||
second-generation [Gen2]-capable hardware). The IDE controller driver can
|
||||
also allow the driver entity to stay with the speed that has been negotiated
|
||||
|
||||
The buffer SupportedModes is allocated by the callee because the caller does
|
||||
not necessarily know the size of the buffer. The type EFI_ATA_COLLECTIVE_MODE
|
||||
is defined in a way that allows for future extensibility and can be of variable
|
||||
length. This memory pool should be deallocated by the caller when it is no
|
||||
longer necessary.
|
||||
|
||||
The IDE controller driver for a Serial ATA (SATA) controller can use this
|
||||
member function to force a lower speed (first-generation [Gen1] speeds on a
|
||||
second-generation [Gen2]-capable hardware). The IDE controller driver can
|
||||
also allow the driver entity to stay with the speed that has been negotiated
|
||||
by the physical layer.
|
||||
|
||||
|
||||
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
|
||||
@param[in] Channel A zero-based channel number.
|
||||
@param[in] Device A zero-based device number on the Channel.
|
||||
@ -401,13 +401,13 @@ IdeInitDisqualifyMode (
|
||||
|
||||
@retval EFI_SUCCESS SupportedModes was returned.
|
||||
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
|
||||
@retval EFI_INVALID_PARAMETER Device is invalid.
|
||||
@retval EFI_INVALID_PARAMETER Device is invalid.
|
||||
@retval EFI_INVALID_PARAMETER SupportedModes is NULL.
|
||||
@retval EFI_NOT_READY Modes cannot be calculated due to a lack of
|
||||
data. This error may happen if
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
and EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyData()
|
||||
were not called for at least one drive in the
|
||||
@retval EFI_NOT_READY Modes cannot be calculated due to a lack of
|
||||
data. This error may happen if
|
||||
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
|
||||
and EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyData()
|
||||
were not called for at least one drive in the
|
||||
same enumeration group.
|
||||
|
||||
**/
|
||||
@ -425,9 +425,9 @@ IdeInitCalculateMode (
|
||||
Commands the IDE controller driver to program the IDE controller hardware
|
||||
so that the specified device can operate at the specified mode.
|
||||
|
||||
This function is used by the driver entity to instruct the IDE controller
|
||||
driver to program the IDE controller hardware to the specified modes. This
|
||||
function can be called only once for a particular device. For a Serial ATA
|
||||
This function is used by the driver entity to instruct the IDE controller
|
||||
driver to program the IDE controller hardware to the specified modes. This
|
||||
function can be called only once for a particular device. For a Serial ATA
|
||||
(SATA) Advanced Host Controller Interface (AHCI) controller, no controller-
|
||||
specific programming may be required.
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
## @file
|
||||
#
|
||||
#
|
||||
# Component description file for the Sata Controller driver.
|
||||
#
|
||||
# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
@ -39,5 +39,5 @@
|
||||
UefiBootServicesTableLib
|
||||
|
||||
[Protocols]
|
||||
gEfiPciIoProtocolGuid
|
||||
gEfiPciIoProtocolGuid
|
||||
gEfiIdeControllerInitProtocolGuid
|
||||
|
@ -51,7 +51,7 @@ TemporaryRamMigration (
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI mTemporaryRamSupportPpi = {
|
||||
TemporaryRamMigration
|
||||
};
|
||||
@ -74,7 +74,7 @@ IA32_IDT_GATE_DESCRIPTOR mIdtEntryTemplate = {
|
||||
0x0, // Reserved_0
|
||||
IA32_IDT_GATE_TYPE_INTERRUPT_32, // GateType
|
||||
0xffff // OffsetHigh
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
@ -685,7 +685,7 @@ FindAndReportEntryPoints (
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
FindPeiCoreImageBase (BootFirmwareVolumePtr, &PeiCoreImageBase);
|
||||
|
||||
|
||||
ZeroMem ((VOID *) &ImageContext, sizeof (PE_COFF_LOADER_IMAGE_CONTEXT));
|
||||
//
|
||||
// Report SEC Core debug information when remote debug is enabled
|
||||
@ -753,7 +753,7 @@ SecCoreStartupWithStack (
|
||||
|
||||
//
|
||||
// Initialize IDT
|
||||
//
|
||||
//
|
||||
IdtTableInStack.PeiService = NULL;
|
||||
for (Index = 0; Index < SEC_IDT_ENTRY_COUNT; Index ++) {
|
||||
CopyMem (&IdtTableInStack.IdtTable[Index], &mIdtEntryTemplate, sizeof (mIdtEntryTemplate));
|
||||
@ -814,13 +814,13 @@ SecCoreStartupWithStack (
|
||||
//
|
||||
InitializeApicTimer (0, MAX_UINT32, TRUE, 5);
|
||||
DisableApicTimerInterrupt ();
|
||||
|
||||
|
||||
//
|
||||
// Initialize Debug Agent to support source level debug in SEC/PEI phases before memory ready.
|
||||
//
|
||||
InitializeDebugAgent (DEBUG_AGENT_INIT_PREMEM_SEC, &SecCoreData, SecStartupPhase2);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Caller provided function to be invoked at the end of InitializeDebugAgent().
|
||||
|
||||
@ -840,9 +840,9 @@ SecStartupPhase2(
|
||||
EFI_SEC_PEI_HAND_OFF *SecCoreData;
|
||||
EFI_FIRMWARE_VOLUME_HEADER *BootFv;
|
||||
EFI_PEI_CORE_ENTRY_POINT PeiCoreEntryPoint;
|
||||
|
||||
|
||||
SecCoreData = (EFI_SEC_PEI_HAND_OFF *) Context;
|
||||
|
||||
|
||||
//
|
||||
// Find PEI Core entry point. It will report SEC and Pei Core debug information if remote debug
|
||||
// is enabled.
|
||||
@ -856,7 +856,7 @@ SecStartupPhase2(
|
||||
// Transfer the control to the PEI core
|
||||
//
|
||||
(*PeiCoreEntryPoint) (SecCoreData, (EFI_PEI_PPI_DESCRIPTOR *)&mPrivateDispatchTable);
|
||||
|
||||
|
||||
//
|
||||
// If we get here then the PEI Core returned, which is not recoverable.
|
||||
//
|
||||
@ -881,23 +881,23 @@ TemporaryRamMigration (
|
||||
DEBUG_AGENT_CONTEXT_POSTMEM_SEC DebugAgentContext;
|
||||
BOOLEAN OldStatus;
|
||||
BASE_LIBRARY_JUMP_BUFFER JumpBuffer;
|
||||
|
||||
|
||||
DEBUG ((EFI_D_INFO,
|
||||
"TemporaryRamMigration(0x%Lx, 0x%Lx, 0x%Lx)\n",
|
||||
TemporaryMemoryBase,
|
||||
PermanentMemoryBase,
|
||||
(UINT64)CopySize
|
||||
));
|
||||
|
||||
|
||||
OldHeap = (VOID*)(UINTN)TemporaryMemoryBase;
|
||||
NewHeap = (VOID*)((UINTN)PermanentMemoryBase + (CopySize >> 1));
|
||||
|
||||
|
||||
OldStack = (VOID*)((UINTN)TemporaryMemoryBase + (CopySize >> 1));
|
||||
NewStack = (VOID*)(UINTN)PermanentMemoryBase;
|
||||
|
||||
DebugAgentContext.HeapMigrateOffset = (UINTN)NewHeap - (UINTN)OldHeap;
|
||||
DebugAgentContext.StackMigrateOffset = (UINTN)NewStack - (UINTN)OldStack;
|
||||
|
||||
|
||||
OldStatus = SaveAndSetDebugTimerInterrupt (FALSE);
|
||||
InitializeDebugAgent (DEBUG_AGENT_INIT_POSTMEM_SEC, (VOID *) &DebugAgentContext, NULL);
|
||||
|
||||
@ -910,7 +910,7 @@ TemporaryRamMigration (
|
||||
// Migrate Stack
|
||||
//
|
||||
CopyMem (NewStack, OldStack, CopySize >> 1);
|
||||
|
||||
|
||||
//
|
||||
// Rebase IDT table in permanent memory
|
||||
//
|
||||
@ -921,16 +921,16 @@ TemporaryRamMigration (
|
||||
|
||||
//
|
||||
// Use SetJump()/LongJump() to switch to a new stack.
|
||||
//
|
||||
//
|
||||
if (SetJump (&JumpBuffer) == 0) {
|
||||
#if defined (MDE_CPU_IA32)
|
||||
JumpBuffer.Esp = JumpBuffer.Esp + DebugAgentContext.StackMigrateOffset;
|
||||
JumpBuffer.Ebp = JumpBuffer.Ebp + DebugAgentContext.StackMigrateOffset;
|
||||
#endif
|
||||
#endif
|
||||
#if defined (MDE_CPU_X64)
|
||||
JumpBuffer.Rsp = JumpBuffer.Rsp + DebugAgentContext.StackMigrateOffset;
|
||||
JumpBuffer.Rbp = JumpBuffer.Rbp + DebugAgentContext.StackMigrateOffset;
|
||||
#endif
|
||||
#endif
|
||||
LongJump (&JumpBuffer, (UINTN)-1);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user