]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/Sal.h
edk2/MdePkg/Include/Ia32/ProcessorBind.h:
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / Sal.h
index 3b023029d929e6dc0e4446ae246c5331d83f5f68..77518321ad30d40f5dfcc61bfa82ad991c23d9d2 100644 (file)
 #ifndef __SAL_API_H__\r
 #define __SAL_API_H__\r
 \r
-//\r
-// FIT Types \r
-// Table 2-2 of Intel Itanium Processor Family System Abstraction Layer Specification December 2003\r
-//\r
+///\r
+/// FIT Types \r
+/// Table 2-2 of Intel Itanium Processor Family System Abstraction Layer Specification December 2003\r
+///\r
 #define EFI_SAL_FIT_FIT_HEADER_TYPE 0x00\r
 #define EFI_SAL_FIT_PAL_B_TYPE      0x01\r
-//\r
-// type from 0x02 to 0x0E is reserved.\r
-//\r
+\r
+///\r
+/// type from 0x02 to 0x0E is reserved.\r
+///\r
 #define EFI_SAL_FIT_PAL_A_TYPE  0x0F\r
-//\r
-// OEM-defined type range is from 0x10 to 0x7E. Here we defined the PEI_CORE type as 0x10\r
-//\r
+\r
+///\r
+/// OEM-defined type range is from 0x10 to 0x7E. Here we defined the PEI_CORE type as 0x10\r
+///\r
 #define EFI_SAL_FIT_PEI_CORE_TYPE 0x10\r
 #define EFI_SAL_FIT_UNUSED_TYPE   0x7F\r
 \r
-//\r
-// EFI_SAL_STATUS \r
-//\r
+///\r
+/// EFI_SAL_STATUS \r
+///\r
 typedef UINTN EFI_SAL_STATUS;\r
 \r
 #define EFI_SAL_SUCCESS               ((EFI_SAL_STATUS) 0)\r
@@ -55,9 +57,9 @@ typedef struct {
   UINTN           r11;\r
 } SAL_RETURN_REGS;\r
 \r
-//\r
-//  Delivery Mode of IPF CPU.\r
-//\r
+///\r
+///  Delivery Mode of IPF CPU.\r
+///\r
 typedef enum {\r
   EFI_DELIVERY_MODE_INT,\r
   EFI_DELIVERY_MODE_MPreserved1,\r
@@ -96,6 +98,7 @@ typedef SAL_RETURN_REGS (EFIAPI *SAL_PROC)
 #define EFI_SAL_PCI_CONFIG_READ         0x01000010\r
 #define EFI_SAL_PCI_CONFIG_WRITE        0x01000011\r
 #define EFI_SAL_FREQ_BASE               0x01000012\r
+#define EFI_SAL_PHYSICAL_ID_INFO        0x01000013\r
 #define EFI_SAL_UPDATE_PAL              0x01000020\r
 \r
 #define EFI_SAL_FUNCTION_ID_MASK        0x0000ffff\r
@@ -234,6 +237,16 @@ typedef struct {
 #define EFI_SAL_ST_PTC                4\r
 #define EFI_SAL_ST_AP_WAKEUP          5\r
 \r
+//\r
+// SAL System Type Sizes\r
+//\r
+#define EFI_SAL_ST_ENTRY_POINT_SIZE        48\r
+#define EFI_SAL_ST_MEMORY_DESCRIPTOR_SIZE  32\r
+#define EFI_SAL_ST_PLATFORM_FEATURES_SIZE  16\r
+#define EFI_SAL_ST_TR_USAGE_SIZE           32\r
+#define EFI_SAL_ST_PTC_SIZE                16\r
+#define EFI_SAL_ST_AP_WAKEUP_SIZE          16\r
+\r
 #pragma pack(1)\r
 typedef struct {\r
   UINT8   Type; //  Type == 0\r
@@ -244,72 +257,6 @@ typedef struct {
   UINT64  Reserved2[2];\r
 } SAL_ST_ENTRY_POINT_DESCRIPTOR;\r
 \r
-//\r
-// Not needed for Itanium-based OS boot\r
-//\r
-typedef struct {\r
-  UINT8   Type; //  Type == 1\r
-  UINT8   NeedVirtualRegistration;\r
-  UINT8   MemoryAttributes;\r
-  UINT8   PageAccessRights;\r
-  UINT8   SupportedAttributes;\r
-  UINT8   Reserved;\r
-  UINT8   MemoryType;\r
-  UINT8   MemoryUsage;\r
-  UINT64  PhysicalMemoryAddress;\r
-  UINT32  Length;\r
-  UINT32  Reserved1;\r
-  UINT64  OemReserved;\r
-} SAL_ST_MEMORY_DESCRIPTOR_ENTRY;\r
-\r
-#pragma pack()\r
-//\r
-// Memory Attributes\r
-//\r
-#define SAL_MDT_ATTRIB_WB 0x00\r
-//\r
-// #define SAL_MDT_ATTRIB_UC   0x02\r
-//\r
-#define SAL_MDT_ATTRIB_UC   0x04\r
-#define SAL_MDT_ATTRIB_UCE  0x05\r
-#define SAL_MDT_ATTRIB_WC   0x06\r
-\r
-//\r
-// Supported memory Attributes\r
-//\r
-#define SAL_MDT_SUPPORT_WB  0x1\r
-#define SAL_MDT_SUPPORT_UC  0x2\r
-#define SAL_MDT_SUPPORT_UCE 0x4\r
-#define SAL_MDT_SUPPORT_WC  0x8\r
-\r
-//\r
-// Virtual address registration\r
-//\r
-#define SAL_MDT_NO_VA   0x00\r
-#define SAL_MDT_NEED_VA 0x01\r
-//\r
-// MemoryType info\r
-//\r
-#define SAL_REGULAR_MEMORY  0x0000\r
-#define SAL_MMIO_MAPPING    0x0001\r
-#define SAL_SAPIC_IPI_BLOCK 0x0002\r
-#define SAL_IO_PORT_MAPPING 0x0003\r
-#define SAL_FIRMWARE_MEMORY 0x0004\r
-#define SAL_BLACK_HOLE      0x000A\r
-//\r
-// Memory Usage info\r
-//\r
-#define SAL_MDT_USAGE_UNSPECIFIED 0x00\r
-#define SAL_PAL_CODE              0x01\r
-#define SAL_BOOTSERVICE_CODE      0x02\r
-#define SAL_BOOTSERVICE_DATA      0x03\r
-#define SAL_RUNTIMESERVICE_CODE   0x04\r
-#define SAL_RUNTIMESERVICE_DATA   0x05\r
-#define SAL_IA32_OPTIONROM        0x06\r
-#define SAL_IA32_SYSTEMROM        0x07\r
-#define SAL_PMI_CODE              0x0a\r
-#define SAL_PMI_DATA              0x0b\r
-\r
 #pragma pack(1)\r
 typedef struct {\r
   UINT8 Type;                     // Type == 2\r
@@ -671,9 +618,9 @@ typedef struct {
   UINT8           SmbiosBcdTimeStamp[6];\r
 } SAL_SMBIOS_DEVICE_ERROR_RECORD;\r
 \r
-//\r
-//  Sal Platform Specific Errors Info.\r
-//\r
+///\r
+///  Sal Platform Specific Errors Info.\r
+///\r
 #define SAL_PLATFORM_ERROR_RECORD_INFO \\r
   { \\r
     0xe429faf7, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \\r
@@ -699,9 +646,9 @@ typedef struct {
   UINT8           OemComponentId[16];\r
 } SAL_PLATFORM_SPECIFIC_ERROR_RECORD;\r
 \r
-//\r
-// Union of all the possible Sal Record Types\r
-//\r
+///\r
+/// Union of all the possible Sal Record Types\r
+///\r
 typedef union {\r
   SAL_RECORD_HEADER                   *RecordHeader;\r
   SAL_PROCESSOR_ERROR_RECORD          *SalProcessorRecord;\r