27#define EFI_SAL_SUCCESS ((EFI_SAL_STATUS) 0)
31#define EFI_SAL_OVERFLOW ((EFI_SAL_STATUS) 1)
35#define EFI_SAL_WARM_BOOT_NEEDED ((EFI_SAL_STATUS) 2)
39#define EFI_SAL_MORE_RECORDS ((EFI_SAL_STATUS) 3)
43#define EFI_SAL_NOT_IMPLEMENTED ((EFI_SAL_STATUS) - 1)
47#define EFI_SAL_INVALID_ARGUMENT ((EFI_SAL_STATUS) - 2)
51#define EFI_SAL_ERROR ((EFI_SAL_STATUS) - 3)
55#define EFI_SAL_VIRTUAL_ADDRESS_ERROR ((EFI_SAL_STATUS) - 4)
59#define EFI_SAL_NO_INFORMATION ((EFI_SAL_STATUS) - 5)
63#define EFI_SAL_NOT_ENOUGH_SCRATCH ((EFI_SAL_STATUS) - 9)
132#define EFI_SAL_SET_VECTORS 0x01000000
136#define EFI_SAL_GET_STATE_INFO 0x01000001
140#define EFI_SAL_GET_STATE_INFO_SIZE 0x01000002
144#define EFI_SAL_CLEAR_STATE_INFO 0x01000003
148#define EFI_SAL_MC_RENDEZ 0x01000004
152#define EFI_SAL_MC_SET_PARAMS 0x01000005
156#define EFI_SAL_REGISTER_PHYSICAL_ADDR 0x01000006
160#define EFI_SAL_CACHE_FLUSH 0x01000008
164#define EFI_SAL_CACHE_INIT 0x01000009
168#define EFI_SAL_PCI_CONFIG_READ 0x01000010
172#define EFI_SAL_PCI_CONFIG_WRITE 0x01000011
176#define EFI_SAL_FREQ_BASE 0x01000012
180#define EFI_SAL_PHYSICAL_ID_INFO 0x01000013
184#define EFI_SAL_UPDATE_PAL 0x01000020
186#define EFI_SAL_FUNCTION_ID_MASK 0x0000ffff
187#define EFI_SAL_MAX_SAL_FUNCTION_ID 0x00000021
200#define EFI_SAL_SET_MCA_VECTOR 0x0
201#define EFI_SAL_SET_INIT_VECTOR 0x1
202#define EFI_SAL_SET_BOOT_RENDEZ_VECTOR 0x2
219#define EFI_SAL_MCA_STATE_INFO 0x0
220#define EFI_SAL_INIT_STATE_INFO 0x1
221#define EFI_SAL_CMC_STATE_INFO 0x2
222#define EFI_SAL_CP_STATE_INFO 0x3
229#define EFI_SAL_MC_SET_RENDEZ_PARAM 0x1
230#define EFI_SAL_MC_SET_WAKEUP_PARAM 0x2
231#define EFI_SAL_MC_SET_CPE_PARAM 0x3
236#define EFI_SAL_MC_SET_INTR_PARAM 0x1
237#define EFI_SAL_MC_SET_MEM_PARAM 0x2
244#define EFI_SAL_REGISTER_PAL_ADDR 0x0
251#define EFI_SAL_FLUSH_I_CACHE 0x01
252#define EFI_SAL_FLUSH_D_CACHE 0x02
253#define EFI_SAL_FLUSH_BOTH_CACHE 0x03
254#define EFI_SAL_FLUSH_MAKE_COHERENT 0x04
261#define EFI_SAL_PCI_CONFIG_ONE_BYTE 0x1
262#define EFI_SAL_PCI_CONFIG_TWO_BYTES 0x2
263#define EFI_SAL_PCI_CONFIG_FOUR_BYTES 0x4
267#define EFI_SAL_PCI_COMPATIBLE_ADDRESS 0x0
268#define EFI_SAL_PCI_EXTENDED_REGISTER_ADDRESS 0x1
298#define EFI_SAL_CPU_INPUT_FREQ_BASE 0x0
299#define EFI_SAL_PLATFORM_IT_FREQ_BASE 0x1
300#define EFI_SAL_PLATFORM_RTC_FREQ_BASE 0x2
309#define EFI_SAL_UPDATE_BAD_PAL_VERSION ((UINT64) -1)
310#define EFI_SAL_UPDATE_PAL_AUTH_FAIL ((UINT64) -2)
311#define EFI_SAL_UPDATE_PAL_BAD_TYPE ((UINT64) -3)
312#define EFI_SAL_UPDATE_PAL_READONLY ((UINT64) -4)
313#define EFI_SAL_UPDATE_PAL_WRITE_FAIL ((UINT64) -10)
314#define EFI_SAL_UPDATE_PAL_ERASE_FAIL ((UINT64) -11)
315#define EFI_SAL_UPDATE_PAL_READ_FAIL ((UINT64) -12)
316#define EFI_SAL_UPDATE_PAL_CANT_FIT ((UINT64) -13)
397#define EFI_SAL_ST_HEADER_SIGNATURE "SST_"
398#define EFI_SAL_REVISION 0x0320
402#define EFI_SAL_ST_ENTRY_POINT 0
403#define EFI_SAL_ST_MEMORY_DESCRIPTOR 1
404#define EFI_SAL_ST_PLATFORM_FEATURES 2
405#define EFI_SAL_ST_TR_USAGE 3
406#define EFI_SAL_ST_PTC 4
407#define EFI_SAL_ST_AP_WAKEUP 5
412#define EFI_SAL_ST_ENTRY_POINT_SIZE 48
413#define EFI_SAL_ST_MEMORY_DESCRIPTOR_SIZE 32
414#define EFI_SAL_ST_PLATFORM_FEATURES_SIZE 16
415#define EFI_SAL_ST_TR_USAGE_SIZE 32
416#define EFI_SAL_ST_PTC_SIZE 16
417#define EFI_SAL_ST_AP_WAKEUP_SIZE 16
443#define SAL_PLAT_FEAT_BUS_LOCK 0x01
444#define SAL_PLAT_FEAT_PLAT_IPI_HINT 0x02
445#define SAL_PLAT_FEAT_PROC_IPI_HINT 0x04
463#define EFI_SAL_ST_TR_USAGE_INSTRUCTION 00
464#define EFI_SAL_ST_TR_USAGE_DATA 01
509#define EFI_SAL_FIT_FIT_HEADER_TYPE 0x00
510#define EFI_SAL_FIT_PAL_B_TYPE 0x01
514#define EFI_SAL_FIT_PROCESSOR_SPECIFIC_PAL_A_TYPE 0x0E
515#define EFI_SAL_FIT_PAL_A_TYPE 0x0F
520#define EFI_SAL_FIT_PEI_CORE_TYPE 0x10
521#define EFI_SAL_FIT_UNUSED_TYPE 0x7F
526#define EFI_SAL_FIT_ENTRY_PTR (0x100000000 - 32)
527#define EFI_SAL_FIT_PALA_ENTRY (0x100000000 - 48)
528#define EFI_SAL_FIT_PALB_TYPE 01
573#define SAL_PROCESSOR_ERROR_RECORD_INFO \
575 0xe429faf1, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
580#define CHECK_INFO_VALID_BIT_MASK 0x1
581#define REQUESTOR_ID_VALID_BIT_MASK 0x2
582#define RESPONDER_ID_VALID_BIT_MASK 0x4
583#define TARGER_ID_VALID_BIT_MASK 0x8
584#define PRECISE_IP_VALID_BIT_MASK 0x10
616#define MIN_STATE_VALID_BIT_MASK 0x1
617#define BR_VALID_BIT_MASK 0x2
618#define CR_VALID_BIT_MASK 0x4
619#define AR_VALID_BIT_MASK 0x8
620#define RR_VALID_BIT_MASK 0x10
621#define FR_VALID_BIT_MASK 0x20
637#define PROC_ERROR_MAP_VALID_BIT_MASK 0x1
638#define PROC_STATE_PARAMETER_VALID_BIT_MASK 0x2
639#define PROC_CR_LID_VALID_BIT_MASK 0x4
640#define PROC_STATIC_STRUCT_VALID_BIT_MASK 0x8
641#define CPU_INFO_VALID_BIT_MASK 0x1000000
663#define SAL_MEMORY_ERROR_RECORD_INFO \
665 0xe429faf2, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
670#define MEMORY_ERROR_STATUS_VALID_BIT_MASK 0x1
671#define MEMORY_PHYSICAL_ADDRESS_VALID_BIT_MASK 0x2
672#define MEMORY_ADDR_BIT_MASK 0x4
673#define MEMORY_NODE_VALID_BIT_MASK 0x8
674#define MEMORY_CARD_VALID_BIT_MASK 0x10
675#define MEMORY_MODULE_VALID_BIT_MASK 0x20
676#define MEMORY_BANK_VALID_BIT_MASK 0x40
677#define MEMORY_DEVICE_VALID_BIT_MASK 0x80
678#define MEMORY_ROW_VALID_BIT_MASK 0x100
679#define MEMORY_COLUMN_VALID_BIT_MASK 0x200
680#define MEMORY_BIT_POSITION_VALID_BIT_MASK 0x400
681#define MEMORY_PLATFORM_REQUESTOR_ID_VALID_BIT_MASK 0x800
682#define MEMORY_PLATFORM_RESPONDER_ID_VALID_BIT_MASK 0x1000
683#define MEMORY_PLATFORM_TARGET_VALID_BIT_MASK 0x2000
684#define MEMORY_PLATFORM_BUS_SPECIFIC_DATA_VALID_BIT_MASK 0x4000
685#define MEMORY_PLATFORM_OEM_ID_VALID_BIT_MASK 0x8000
686#define MEMORY_PLATFORM_OEM_DATA_STRUCT_VALID_BIT_MASK 0x10000
714#define SAL_PCI_BUS_ERROR_RECORD_INFO \
716 0xe429faf4, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
721#define PCI_BUS_ERROR_STATUS_VALID_BIT_MASK 0x1
722#define PCI_BUS_ERROR_TYPE_VALID_BIT_MASK 0x2
723#define PCI_BUS_ID_VALID_BIT_MASK 0x4
724#define PCI_BUS_ADDRESS_VALID_BIT_MASK 0x8
725#define PCI_BUS_DATA_VALID_BIT_MASK 0x10
726#define PCI_BUS_CMD_VALID_BIT_MASK 0x20
727#define PCI_BUS_REQUESTOR_ID_VALID_BIT_MASK 0x40
728#define PCI_BUS_RESPONDER_ID_VALID_BIT_MASK 0x80
729#define PCI_BUS_TARGET_VALID_BIT_MASK 0x100
730#define PCI_BUS_OEM_ID_VALID_BIT_MASK 0x200
731#define PCI_BUS_OEM_DATA_STRUCT_VALID_BIT_MASK 0x400
763#define SAL_PCI_COMP_ERROR_RECORD_INFO \
765 0xe429faf6, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
770#define PCI_COMP_ERROR_STATUS_VALID_BIT_MASK 0x1
771#define PCI_COMP_INFO_VALID_BIT_MASK 0x2
772#define PCI_COMP_MEM_NUM_VALID_BIT_MASK 0x4
773#define PCI_COMP_IO_NUM_VALID_BIT_MASK 0x8
774#define PCI_COMP_REG_DATA_PAIR_VALID_BIT_MASK 0x10
775#define PCI_COMP_OEM_DATA_STRUCT_VALID_BIT_MASK 0x20
805#define SAL_SEL_DEVICE_ERROR_RECORD_INFO \
807 0xe429faf3, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
812#define SEL_RECORD_ID_VALID_BIT_MASK 0x1;
813#define SEL_RECORD_TYPE_VALID_BIT_MASK 0x2;
814#define SEL_GENERATOR_ID_VALID_BIT_MASK 0x4;
815#define SEL_EVM_REV_VALID_BIT_MASK 0x8;
816#define SEL_SENSOR_TYPE_VALID_BIT_MASK 0x10;
817#define SEL_SENSOR_NUM_VALID_BIT_MASK 0x20;
818#define SEL_EVENT_DIR_TYPE_VALID_BIT_MASK 0x40;
819#define SEL_EVENT_DATA1_VALID_BIT_MASK 0x80;
820#define SEL_EVENT_DATA2_VALID_BIT_MASK 0x100;
821#define SEL_EVENT_DATA3_VALID_BIT_MASK 0x200;
844#define SAL_SMBIOS_ERROR_RECORD_INFO \
846 0xe429faf5, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
851#define SMBIOS_EVENT_TYPE_VALID_BIT_MASK 0x1
852#define SMBIOS_LENGTH_VALID_BIT_MASK 0x2
853#define SMBIOS_TIME_STAMP_VALID_BIT_MASK 0x4
854#define SMBIOS_DATA_VALID_BIT_MASK 0x8
869#define SAL_PLATFORM_ERROR_RECORD_INFO \
871 0xe429faf7, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
876#define PLATFORM_ERROR_STATUS_VALID_BIT_MASK 0x1
877#define PLATFORM_REQUESTOR_ID_VALID_BIT_MASK 0x2
878#define PLATFORM_RESPONDER_ID_VALID_BIT_MASK 0x4
879#define PLATFORM_TARGET_VALID_BIT_MASK 0x8
880#define PLATFORM_SPECIFIC_DATA_VALID_BIT_MASK 0x10
881#define PLATFORM_OEM_ID_VALID_BIT_MASK 0x20
882#define PLATFORM_OEM_DATA_STRUCT_VALID_BIT_MASK 0x40
883#define PLATFORM_OEM_DEVICE_PATH_VALID_BIT_MASK 0x80
UINT64 UINTN
Definition ProcessorBind.h:118
INT64 INTN
Definition ProcessorBind.h:124
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
UINT8 Reserved
Definition Acpi30.h:40
#define IN
Definition Base.h:347
uint32_t Size
Definition pe.h:1
SAL_RETURN_REGS(EFIAPI * SAL_PROC)(IN UINT64 FunctionId, IN UINT64 Arg1, IN UINT64 Arg2, IN UINT64 Arg3, IN UINT64 Arg4, IN UINT64 Arg5, IN UINT64 Arg6, IN UINT64 Arg7)
Definition Sal.h:114
struct _SAL_UPDATE_PAL_INFO_BLOCK SAL_UPDATE_PAL_INFO_BLOCK
INTN EFI_SAL_STATUS
Definition Sal.h:22
unsigned short UINT16
Definition actypes.h:237
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239
UINT8 Reserved
Definition Sal.h:606
UINT8 Type
Definition Sal.h:502
UINT8 Reserved
Definition Sal.h:500
UINT64 Address
Definition Sal.h:498
UINT16 Revision
Definition Sal.h:501
UINT8 CheckSum
Definition Sal.h:504
UINT8 CheckSumValid
Definition Sal.h:503
UINT64 FrHigh
Definition Sal.h:611
UINT64 FrLow
Definition Sal.h:610
UINT64 RespValid
Definition Sal.h:591
UINT64 IpValid
Definition Sal.h:593
UINT64 Req
Definition Sal.h:596
UINT64 ReqValid
Definition Sal.h:590
UINT64 InfoValid
Definition Sal.h:589
UINT64 Info
Definition Sal.h:595
UINT64 Resp
Definition Sal.h:597
UINT64 Ip
Definition Sal.h:599
UINT64 TargetValid
Definition Sal.h:592
UINT64 Target
Definition Sal.h:598
UINT64 Reserved
Definition Sal.h:594
UINT8 SegmentNumber
Definition Sal.h:738
UINT8 BusNumber
Definition Sal.h:737
UINT8 BusNumber
Definition Sal.h:785
UINT8 SegmentNumber
Definition Sal.h:786
UINT8 DeviceNumber
Definition Sal.h:784
UINT8 FunctionNumber
Definition Sal.h:783
UINT16 DeviceId
Definition Sal.h:781
UINT16 VendorId
Definition Sal.h:780
UINT64 ValidFieldBits
Definition Sal.h:626
UINT64 LocalIDRegister
Definition Sal.h:471
UINT64 NumberOfProcessors
Definition Sal.h:470
UINT64 ModResponderId
Definition Sal.h:705
UINT64 ValidationBits
Definition Sal.h:692
UINT16 MemNode
Definition Sal.h:696
UINT16 MemRow
Definition Sal.h:701
UINT64 ModTargetId
Definition Sal.h:706
UINT64 MemPhysicalAddressMask
Definition Sal.h:695
UINT64 BusSpecificData
Definition Sal.h:707
SAL_SEC_HEADER SectionHeader
Definition Sal.h:691
UINT16 MemDevice
Definition Sal.h:700
UINT16 MemBank
Definition Sal.h:699
UINT64 ModRequestorId
Definition Sal.h:704
UINT16 MemBitPosition
Definition Sal.h:703
UINT16 MemCard
Definition Sal.h:697
UINT64 MemPhysicalAddress
Definition Sal.h:694
UINT16 MemModule
Definition Sal.h:698
UINT16 MemColumn
Definition Sal.h:702
UINT64 MemErrorStatus
Definition Sal.h:693
UINT64 Reserved
Definition Sal.h:278
UINT64 Register
Definition Sal.h:273
UINT64 Device
Definition Sal.h:275
UINT64 Function
Definition Sal.h:274
UINT64 Segment
Definition Sal.h:277
UINT64 Bus
Definition Sal.h:276
UINT64 PciBusCommand
Definition Sal.h:753
UINT16 PciBusErrorType
Definition Sal.h:748
UINT64 PciBusErrorStatus
Definition Sal.h:747
UINT64 PciBusRequestorId
Definition Sal.h:754
UINT64 ValidationBits
Definition Sal.h:746
UINT64 PciBusAddress
Definition Sal.h:751
UINT64 PciBusData
Definition Sal.h:752
UINT64 PciBusResponderId
Definition Sal.h:755
PCI_BUS_ID PciBusId
Definition Sal.h:749
UINT32 Reserved
Definition Sal.h:750
SAL_SEC_HEADER SectionHeader
Definition Sal.h:745
UINT64 PciBusTargetId
Definition Sal.h:756
UINT64 ValidationBits
Definition Sal.h:794
SAL_SEC_HEADER SectionHeader
Definition Sal.h:793
PCI_COMP_INFO PciComponentInfo
Definition Sal.h:796
UINT64 PciComponentErrorStatus
Definition Sal.h:795
UINT32 PciComponentIoNum
Definition Sal.h:798
UINT32 PciComponentMemNum
Definition Sal.h:797
UINT64 Segment
Definition Sal.h:289
UINT64 Bus
Definition Sal.h:288
UINT64 Device
Definition Sal.h:287
UINT64 Reserved
Definition Sal.h:290
UINT64 Register
Definition Sal.h:284
UINT64 ExtendedRegister
Definition Sal.h:285
UINT64 Function
Definition Sal.h:286
UINT64 ProcStateParameter
Definition Sal.h:649
UINT64 ValidationBits
Definition Sal.h:647
PSI_STATIC_STRUCT PsiValidData
Definition Sal.h:657
UINT64 ProcCrLid
Definition Sal.h:650
UINT64 ProcErrorMap
Definition Sal.h:648
CPUID_INFO CpuInfo
Definition Sal.h:656
SAL_SEC_HEADER SectionHeader
Definition Sal.h:646
UINTN r9
Definition Sal.h:76
EFI_SAL_STATUS Status
Definition Sal.h:72
UINTN r11
Definition Sal.h:84
UINTN r10
Definition Sal.h:80
UINT8 Data1
Definition Sal.h:836
UINT32 TimeStamp
Definition Sal.h:830
UINT8 SensorType
Definition Sal.h:833
UINT8 EventDirType
Definition Sal.h:835
UINT8 SelRecordType
Definition Sal.h:829
UINT16 SelRecordId
Definition Sal.h:828
UINT8 SensorNum
Definition Sal.h:834
UINT16 GeneratorId
Definition Sal.h:831
UINT8 Data3
Definition Sal.h:838
UINT64 ValidationBits
Definition Sal.h:827
SAL_SEC_HEADER SectionHeader
Definition Sal.h:826
UINT8 Data2
Definition Sal.h:837
UINT8 EvmRevision
Definition Sal.h:832
UINT64 ChecksumValid
Definition Sal.h:208
UINT64 ByteChecksum
Definition Sal.h:210
UINT64 Reserved2
Definition Sal.h:211
UINT64 Reserved1
Definition Sal.h:209
UINT64 Length
Definition Sal.h:207
SAL_SEC_HEADER SectionHeader
Definition Sal.h:859
UINT8 SmbiosLength
Definition Sal.h:862
UINT8 SmbiosEventType
Definition Sal.h:861
UINT64 ValidationBits
Definition Sal.h:860
UINT8 Type
Type here should be 5.
Definition Sal.h:488
UINT64 ExternalInterruptVector
Definition Sal.h:491
UINT8 WakeUpType
Definition Sal.h:489
SAL_COHERENCE_DOMAIN_INFO * DomainInformation
Definition Sal.h:481
UINT8 Type
Type here should be 4.
Definition Sal.h:478
UINT32 NumberOfDomains
Definition Sal.h:480
UINT64 SalGlobalDataPointer
Definition Sal.h:427
UINT64 PalProcEntry
Definition Sal.h:425
UINT8 Type
Type here should be 0.
Definition Sal.h:423
UINT64 SalProcEntry
Definition Sal.h:426
UINT64 EncodedPageSize
Definition Sal.h:456
UINT8 TRNumber
Definition Sal.h:453
UINT8 Type
Type here should be 3.
Definition Sal.h:451
UINT8 TRType
Definition Sal.h:452
UINT64 VirtualAddress
Definition Sal.h:455
UINT64 Reserved1
Definition Sal.h:457
UINT8 Year
Definition Sal.h:544
UINT8 Century
Definition Sal.h:545
UINT8 Month
Definition Sal.h:543
UINT8 Hours
Definition Sal.h:540
UINT8 Day
Definition Sal.h:542
UINT8 Seconds
Definition Sal.h:538
UINT8 Reserved
Definition Sal.h:541
UINT8 Minutes
Definition Sal.h:539
UINT16 Version
Definition Sal.h:323
UINT64 FwVendorId
Definition Sal.h:326
UINT8 Reserved2[40]
Definition Sal.h:327
UINT8 Reserved[5]
Definition Sal.h:325
UINT32 Size
Definition Sal.h:321
UINT8 Type
Definition Sal.h:324
UINT32 MmddyyyyDate
Definition Sal.h:322
struct _SAL_UPDATE_PAL_INFO_BLOCK * Next
Definition Sal.h:336
struct SAL_UPDATE_PAL_DATA_BLOCK * DataBlock
Definition Sal.h:337
UINT8 StoreChecksum
Definition Sal.h:338
UINT8 Reserved[15]
Definition Sal.h:339
SAL_PCI_COMPONENT_ERROR_RECORD * SalPciComponentRecord
Definition Sal.h:905
SAL_SEL_DEVICE_ERROR_RECORD * ImpiRecord
Definition Sal.h:906
SAL_MEMORY_ERROR_RECORD * MemoryRecord
Definition Sal.h:909
SAL_PLATFORM_SPECIFIC_ERROR_RECORD * PlatformRecord
Definition Sal.h:908
SAL_PCI_BUS_ERROR_RECORD * SalPciBusRecord
Definition Sal.h:904
SAL_PROCESSOR_ERROR_RECORD * SalProcessorRecord
Definition Sal.h:903
SAL_SMBIOS_DEVICE_ERROR_RECORD * SmbiosRecord
Definition Sal.h:907
SAL_RECORD_HEADER * RecordHeader
Definition Sal.h:902
UINT8 * Raw
Definition Sal.h:910