[efi] Update to current EDK2 headers

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/1174/head
Michael Brown 2024-03-11 12:12:31 +00:00
parent 226531ed36
commit df2f23e333
12 changed files with 421 additions and 11 deletions

View File

@ -49,6 +49,7 @@ typedef struct {
UINT64 Attribute;
///
/// The Null-terminated name of the file.
/// For a root directory, the name is an empty string.
///
CHAR16 FileName[1];
} EFI_FILE_INFO;

View File

@ -19,6 +19,20 @@ FILE_LICENCE ( BSD2_PATENT );
#define ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR 0x8B
///
/// C-state Coordination Types
/// See s8.4.2.2 _CSD (C-State Dependency)
///
#define ACPI_AML_COORD_TYPE_SW_ALL 0xFC
#define ACPI_AML_COORD_TYPE_SW_ANY 0xFD
#define ACPI_AML_COORD_TYPE_HW_ALL 0xFE
///
/// _PSD Revision for ACPI 3.0
// See s8.4.4.5 _PSD (P-State Dependency)
///
#define EFI_ACPI_3_0_AML_PSD_REVISION 0
//
// Ensure proper structure formats
//

View File

@ -12,6 +12,11 @@ FILE_LICENCE ( BSD2_PATENT );
#include <ipxe/efi/IndustryStandard/Acpi30.h>
///
/// _PSD Revision for ACPI 4.0
///
#define EFI_ACPI_4_0_AML_PSD_REVISION 0
//
// Ensure proper structure formats
//

View File

@ -25,6 +25,16 @@ FILE_LICENCE ( BSD2_PATENT );
#define ACPI_GPIO_CONNECTION_DESCRIPTOR 0x8C
#define ACPI_GENERIC_SERIAL_BUS_CONNECTION_DESCRIPTOR 0x8E
///
/// _PSD Revision for ACPI 5.0
///
#define EFI_ACPI_5_0_AML_PSD_REVISION 0
///
/// _CPC Revision for ACPI 5.0
///
#define EFI_ACPI_5_0_AML_CPC_REVISION 1
#pragma pack(1)
///

View File

@ -15,6 +15,16 @@ FILE_LICENCE ( BSD2_PATENT );
#include <ipxe/efi/IndustryStandard/Acpi50.h>
///
/// _PSD Revision for ACPI 5.1
///
#define EFI_ACPI_5_1_AML_PSD_REVISION 0
///
/// _CPC Revision for ACPI 5.1
///
#define EFI_ACPI_5_1_AML_CPC_REVISION 2
//
// Ensure proper structure formats
//

View File

@ -14,6 +14,16 @@ FILE_LICENCE ( BSD2_PATENT );
#include <ipxe/efi/IndustryStandard/Acpi51.h>
///
/// _PSD Revision for ACPI 6.0
///
#define EFI_ACPI_6_0_AML_PSD_REVISION 0
///
/// _CPC Revision for ACPI 6.0
///
#define EFI_ACPI_6_0_AML_CPC_REVISION 2
//
// Ensure proper structure formats
//

View File

@ -193,6 +193,11 @@ RiscVReadTimer (
VOID
);
VOID
RiscVSetSupervisorTimeCompareRegister (
IN UINT64
);
VOID
RiscVEnableTimerInterrupt (
VOID
@ -208,6 +213,59 @@ RiscVClearPendingTimerInterrupt (
VOID
);
/**
RISC-V invalidate instruction cache.
**/
VOID
EFIAPI
RiscVInvalidateInstCacheFenceAsm (
VOID
);
/**
RISC-V invalidate data cache.
**/
VOID
EFIAPI
RiscVInvalidateDataCacheFenceAsm (
VOID
);
/**
RISC-V flush cache block. Atomically perform a clean operation
followed by an invalidate operation
**/
VOID
EFIAPI
RiscVCpuCacheFlushCmoAsm (
IN UINTN
);
/**
Perform a write transfer to another cache or to memory if the
data in the copy of the cache block have been modified by a store
operation
**/
VOID
EFIAPI
RiscVCpuCacheCleanCmoAsm (
IN UINTN
);
/**
Deallocate the copy of the cache block
**/
VOID
EFIAPI
RiscVCpuCacheInvalCmoAsm (
IN UINTN
);
#endif // defined (MDE_CPU_RISCV64)
#if defined (MDE_CPU_LOONGARCH64)
@ -231,6 +289,227 @@ typedef struct {
#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
/*
* Set the exception base address for LoongArch.
*
* @param ExceptionBaseAddress The exception base address, must be aligned greater than or qeual to 4K .
*/
VOID
SetExceptionBaseAddress (
IN UINT64
);
/*
* Set the TlbRebase address for LoongArch.
*
* @param TlbRebaseAddress The TlbRebase address, must be aligned greater than or qeual to 4K .
*/
VOID
SetTlbRebaseAddress (
IN UINT64
);
/**
Enables local CPU interrupts.
@param Needs to enable local interrupt bit.
**/
VOID
EnableLocalInterrupts (
IN UINT16
);
/**
Disables local CPU interrupts.
@param Needs to disable local interrupt bit.
**/
VOID
DisableLocalInterrupts (
IN UINT16
);
/**
Read CPUCFG register.
@param Index Specifies the register number of the CPUCFG to read the data.
@param Data A pointer to the variable used to store the CPUCFG register value.
**/
VOID
AsmCpucfg (
IN UINT32 Index,
OUT UINT32 *Data
);
/**
Gets the timer count value.
@param[] VOID
@retval timer count value.
**/
UINTN
AsmReadStableCounter (
VOID
);
/**
CSR read operation.
@param[in] Select CSR read instruction select values.
@return The return value of csrrd instruction, return -1 means no CSR instruction
is found.
**/
UINTN
CsrRead (
IN UINT16 Select
);
/**
CSR write operation.
@param[in] Select CSR write instruction select values.
@param[in] Value The csrwr will write the value.
@return The return value of csrwr instruction, that is, store the old value of
the register, return -1 means no CSR instruction is found.
**/
UINTN
CsrWrite (
IN UINT16 Select,
IN UINTN Value
);
/**
CSR exchange operation.
@param[in] Select CSR exchange instruction select values.
@param[in] Value The csrxchg will write the value.
@param[in] Mask The csrxchg mask value.
@return The return value of csrxchg instruction, that is, store the old value of
the register, return -1 means no CSR instruction is found.
**/
UINTN
CsrXChg (
IN UINT16 Select,
IN UINTN Value,
IN UINTN Mask
);
/**
IO CSR read byte operation.
@param[in] Select IO CSR read instruction select values.
@return The return value of iocsrrd.b instruction.
**/
UINT8
IoCsrRead8 (
IN UINTN Select
);
/**
IO CSR read half word operation.
@param[in] Select IO CSR read instruction select values.
@return The return value of iocsrrd.h instruction.
**/
UINT16
IoCsrRead16 (
IN UINTN Select
);
/**
IO CSR read word operation.
@param[in] Select IO CSR read instruction select values.
@return The return value of iocsrrd.w instruction.
**/
UINT32
IoCsrRead32 (
IN UINTN Select
);
/**
IO CSR read double word operation. Only for LoongArch64.
@param[in] Select IO CSR read instruction select values.
@return The return value of iocsrrd.d instruction.
**/
UINT64
IoCsrRead64 (
IN UINTN Select
);
/**
IO CSR write byte operation.
@param[in] Select IO CSR write instruction select values.
@param[in] Value The iocsrwr.b will write the value.
@return VOID.
**/
VOID
IoCsrWrite8 (
IN UINTN Select,
IN UINT8 Value
);
/**
IO CSR write half word operation.
@param[in] Select IO CSR write instruction select values.
@param[in] Value The iocsrwr.h will write the value.
@return VOID.
**/
VOID
IoCsrWrite16 (
IN UINTN Select,
IN UINT16 Value
);
/**
IO CSR write word operation.
@param[in] Select IO CSR write instruction select values.
@param[in] Value The iocsrwr.w will write the value.
@return VOID.
**/
VOID
IoCsrWrite32 (
IN UINTN Select,
IN UINT32 Value
);
/**
IO CSR write double word operation. Only for LoongArch64.
@param[in] Select IO CSR write instruction select values.
@param[in] Value The iocsrwr.d will write the value.
@return VOID.
**/
VOID
IoCsrWrite64 (
IN UINTN Select,
IN UINT64 Value
);
#endif // defined (MDE_CPU_LOONGARCH64)
//
@ -4601,6 +4880,11 @@ CalculateCrc16Ansi (
IN UINT16 InitialValue
);
//
// Initial value for the CRC16-ANSI algorithm, when no prior checksum has been calculated.
//
#define CRC16ANSI_INIT 0xffff
/**
Calculates the CRC32c checksum of the given buffer.

View File

@ -685,6 +685,20 @@ typedef struct {
//
// LoongArch processor exception types.
//
// The exception types is located in the CSR ESTAT
// register offset 16 bits, width 6 bits.
//
// If you want to register an exception hook, you can
// shfit the number left by 16 bits, and the exception
// handler will know the types.
//
// For example:
// mCpu->CpuRegisterInterruptHandler (
// mCpu,
// (EXCEPT_LOONGARCH_PPI << CSR_ESTAT_EXC_SHIFT),
// PpiExceptionHandler
// );
//
#define EXCEPT_LOONGARCH_INT 0
#define EXCEPT_LOONGARCH_PIL 1
#define EXCEPT_LOONGARCH_PIS 2

View File

@ -57,6 +57,7 @@ typedef UINTN EFI_BROWSER_ACTION_REQUEST;
#define EFI_BROWSER_ACTION_REQUEST_FORM_APPLY 6
#define EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD 7
#define EFI_BROWSER_ACTION_REQUEST_RECONNECT 8
#define EFI_BROWSER_ACTION_REQUEST_QUESTION_APPLY 9
/**
Initialize the browser to display the specified configuration forms.
@ -140,10 +141,13 @@ EFI_STATUS
@retval EFI_SUCCESS The results have been distributed or are
awaiting distribution.
@retval EFI_OUT_OF_RESOURCES The ResultsDataSize specified
@retval EFI_BUFFER_TOO_SMALL The ResultsDataSize specified
was too small to contain the
results data.
@retval EFI_UNSUPPORTED Uncommitted browser state is not available
at the current stage of execution.
**/
typedef
EFI_STATUS

View File

@ -104,9 +104,16 @@ typedef UINTN EFI_BROWSER_ACTION;
string.
@retval EFI_INVALID_PARAMETER Unknown name. Progress points
to the & before the name in
to the "&" before the name in
question.
@retval EFI_INVALID_PARAMETER If Results or Progress is NULL.
@retval EFI_ACCESS_DENIED The action violated a system policy.
@retval EFI_DEVICE_ERROR Failed to extract the current configuration
for one or more named elements.
**/
typedef
EFI_STATUS

View File

@ -194,12 +194,12 @@ typedef struct {
BOOLEAN EnableNagle;
///
/// Set it to TRUE to enable TCP timestamps option as defined in
/// RFC1323. Set to FALSE to disable it.
/// RFC7323. Set to FALSE to disable it.
///
BOOLEAN EnableTimeStamp;
///
/// Set it to TRUE to enable TCP window scale option as defined in
/// RFC1323. Set it to FALSE to disable it.
/// RFC7323. Set it to FALSE to disable it.
///
BOOLEAN EnableWindowScaling;
///

View File

@ -112,6 +112,21 @@ typedef enum {
//
#define EFI_MEMORY_RUNTIME 0x8000000000000000ULL
//
// If this flag is set, the memory region is
// described with additional ISA-specific memory attributes
// as specified in EFI_MEMORY_ISA_MASK.
//
#define EFI_MEMORY_ISA_VALID 0x4000000000000000ULL
//
// Defines the bits reserved for describing optional ISA-specific cacheability
// attributes that are not covered by the standard UEFI Memory Attributes cacheability
// bits (EFI_MEMORY_UC, EFI_MEMORY_WC, EFI_MEMORY_WT, EFI_MEMORY_WB and EFI_MEMORY_UCE).
// See Calling Conventions for further ISA-specific enumeration of these bits.
//
#define EFI_MEMORY_ISA_MASK 0x0FFFF00000000000ULL
//
// Attributes bitmasks, grouped by type
//
@ -307,6 +322,9 @@ EFI_STATUS
map that requires a mapping.
@retval EFI_NOT_FOUND A virtual address was supplied for an address that is not found
in the memory map.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -397,11 +415,14 @@ EFI_STATUS
for the new virtual address mappings being applied.
@retval EFI_SUCCESS The pointer pointed to by Address was modified.
@retval EFI_INVALID_PARAMETER 1) Address is NULL.
2) *Address is NULL and DebugDisposition does
not have the EFI_OPTIONAL_PTR bit set.
@retval EFI_NOT_FOUND The pointer pointed to by Address was not found to be part
of the current memory map. This is normally fatal.
@retval EFI_INVALID_PARAMETER Address is NULL.
@retval EFI_INVALID_PARAMETER *Address is NULL and DebugDisposition does
not have the EFI_OPTIONAL_PTR bit set.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -666,6 +687,10 @@ VOID
@retval EFI_INVALID_PARAMETER The DataSize is not too small and Data is NULL.
@retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error.
@retval EFI_SECURITY_VIOLATION The variable could not be retrieved due to an authentication failure.
@retval EFI_UNSUPPORTED After ExitBootServices() has been called, this return code may be returned
if no variable storage is supported. The platform should describe this
runtime service as unsupported at runtime via an EFI_RT_PROPERTIES_TABLE
configuration table.
**/
typedef
@ -702,6 +727,10 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER Null-terminator is not found in the first VariableNameSize bytes of
the input VariableName buffer.
@retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error.
@retval EFI_UNSUPPORTED After ExitBootServices() has been called, this return code may be returned
if no variable storage is supported. The platform should describe this
runtime service as unsupported at runtime via an EFI_RT_PROPERTIES_TABLE
configuration table.
**/
typedef
@ -744,6 +773,9 @@ EFI_STATUS
but the AuthInfo does NOT pass the validation check carried out by the firmware.
@retval EFI_NOT_FOUND The variable trying to be updated or deleted was not found.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -796,6 +828,9 @@ typedef struct {
@retval EFI_SUCCESS The operation completed successfully.
@retval EFI_INVALID_PARAMETER Time is NULL.
@retval EFI_DEVICE_ERROR The time could not be retrieved due to hardware error.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -813,6 +848,9 @@ EFI_STATUS
@retval EFI_SUCCESS The operation completed successfully.
@retval EFI_INVALID_PARAMETER A time field is out of range.
@retval EFI_DEVICE_ERROR The time could not be set due due to hardware error.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -833,7 +871,9 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER Pending is NULL.
@retval EFI_INVALID_PARAMETER Time is NULL.
@retval EFI_DEVICE_ERROR The wakeup time could not be retrieved due to a hardware error.
@retval EFI_UNSUPPORTED A wakeup timer is not supported on this platform.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -855,7 +895,9 @@ EFI_STATUS
Enable is FALSE, then the wakeup alarm was disabled.
@retval EFI_INVALID_PARAMETER A time field is out of range.
@retval EFI_DEVICE_ERROR The wakeup time could not be set due to a hardware error.
@retval EFI_UNSUPPORTED A wakeup timer is not supported on this platform.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -900,7 +942,7 @@ EFI_STATUS
(EFIAPI *EFI_IMAGE_LOAD)(
IN BOOLEAN BootPolicy,
IN EFI_HANDLE ParentImageHandle,
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL,
IN VOID *SourceBuffer OPTIONAL,
IN UINTN SourceSize,
OUT EFI_HANDLE *ImageHandle
@ -1077,6 +1119,9 @@ EFI_STATUS
@retval EFI_SUCCESS The next high monotonic count was returned.
@retval EFI_INVALID_PARAMETER HighCount is NULL.
@retval EFI_DEVICE_ERROR The device is not functioning properly.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -1650,7 +1695,7 @@ typedef struct {
///
UINT32 Flags;
///
/// Size in bytes of the capsule.
/// Size in bytes of the capsule (including capsule header).
///
UINT32 CapsuleImageSize;
} EFI_CAPSULE_HEADER;
@ -1703,6 +1748,9 @@ typedef struct {
in runtime. The caller may resubmit the capsule prior to ExitBootServices().
@retval EFI_OUT_OF_RESOURCES When ExitBootServices() has not been previously called then this error indicates
the capsule is compatible with this platform but there are insufficient resources to process.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef
@ -1734,6 +1782,9 @@ EFI_STATUS
in runtime. The caller may resubmit the capsule prior to ExitBootServices().
@retval EFI_OUT_OF_RESOURCES When ExitBootServices() has not been previously called then this error indicates
the capsule is compatible with this platform but there are insufficient resources to process.
@retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made.
The platform should describe this runtime service as unsupported at runtime
via an EFI_RT_PROPERTIES_TABLE configuration table.
**/
typedef