]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/Acpi10.h
Update DebugLib to provide support for "err" command in the EFI Shell to adjust the...
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / Acpi10.h
index 7bb9d411c22bd87f295172ac0b211b3588856451..fcc9146ca4ae988bd65af6d0a3a7350dfe1c8f9a 100644 (file)
@@ -43,8 +43,15 @@ typedef struct {
 //\r
 // Define for Desriptor\r
 //\r
-#define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A\r
-#define ACPI_END_TAG_DESCRIPTOR       0x79\r
+#define ACPI_DMA_DESCRIPTOR                       0x2A\r
+#define ACPI_IO_PORT_DESCRIPTOR                   0x47\r
+#define ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR    0x4B\r
+#define ACPI_IRQ_NOFLAG_DESCRIPTOR                0x22\r
+#define ACPI_IRQ_DESCRIPTOR                       0x23\r
+#define ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR       0x85\r
+#define ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR 0x86\r
+#define ACPI_ADDRESS_SPACE_DESCRIPTOR             0x8A\r
+#define ACPI_END_TAG_DESCRIPTOR                   0x79\r
 \r
 //\r
 // Resource Type\r
@@ -80,6 +87,94 @@ typedef PACKED struct {
   UINT64  AddrLen;\r
 } EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR;\r
 \r
+typedef PACKED union {\r
+  UINT8     Byte;\r
+  PACKED struct {\r
+    UINT8 Length : 3;\r
+    UINT8 Name : 4;\r
+    UINT8 Type : 1;\r
+  } Bits;\r
+} ACPI_SMALL_RESOURCE_HEADER;\r
+\r
+typedef PACKED struct {\r
+  PACKED union {\r
+    UINT8 Byte;\r
+    PACKED struct {\r
+      UINT8 Name : 7;\r
+      UINT8 Type : 1;\r
+    }Bits;\r
+  } Header;\r
+  UINT16 Length;\r
+} ACPI_LARGE_RESOURCE_HEADER;\r
+\r
+///\r
+/// IRQ Descriptor.\r
+///\r
+typedef PACKED struct {\r
+  ACPI_SMALL_RESOURCE_HEADER   Header;\r
+  UINT16                       Mask;\r
+} EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR;\r
+\r
+///\r
+/// IRQ Descriptor.\r
+///\r
+typedef PACKED struct {\r
+  ACPI_SMALL_RESOURCE_HEADER   Header;\r
+  UINT16                       Mask;\r
+  UINT8                        Information;\r
+} EFI_ACPI_IRQ_DESCRIPTOR;\r
+\r
+///\r
+/// DMA Descriptor.\r
+///\r
+typedef PACKED struct {\r
+  ACPI_SMALL_RESOURCE_HEADER   Header;\r
+  UINT8                        ChannelMask;\r
+  UINT8                        Information;\r
+} EFI_ACPI_DMA_DESCRIPTOR;\r
+\r
+///\r
+/// I/O Port Descriptor\r
+///\r
+typedef PACKED struct {\r
+  ACPI_SMALL_RESOURCE_HEADER   Header;\r
+  UINT8                        Information;\r
+  UINT16                       BaseAddressMin;\r
+  UINT16                       BaseAddressMax;\r
+  UINT8                        Alignment;\r
+  UINT8                        Length;\r
+} EFI_ACPI_IO_PORT_DESCRIPTOR;\r
+\r
+///\r
+/// Fixed Location I/O Port Descriptor.\r
+///\r
+typedef PACKED struct {\r
+  ACPI_SMALL_RESOURCE_HEADER   Header;\r
+  UINT16                       BaseAddress;\r
+  UINT8                        Length;\r
+} EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR;\r
+\r
+///\r
+/// 32-Bit Memory Range Descriptor\r
+///\r
+typedef PACKED struct {\r
+  ACPI_LARGE_RESOURCE_HEADER    Header;\r
+  UINT8                         Information;\r
+  UINT32                        BaseAddressMin;\r
+  UINT32                        BaseAddressMax;\r
+  UINT32                        Alignment;\r
+  UINT32                        Length;\r
+} EFI_ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR;\r
+\r
+///\r
+/// Fixed 32-Bit Fixed Memory Range Descriptor\r
+///\r
+typedef PACKED struct {\r
+  ACPI_LARGE_RESOURCE_HEADER    Header;\r
+  UINT8                         Information;\r
+  UINT32                        BaseAddress;\r
+  UINT32                        Length;\r
+} EFI_ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR;\r
 #pragma pack()\r
 \r
 ///\r
@@ -126,6 +221,55 @@ typedef struct {
 #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION          (1 << 5)\r
 #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC               (0 << 5)\r
 \r
+//\r
+// IRQ Information\r
+// Ref ACPI specification 6.4.2.1\r
+//\r
+#define EFI_ACPI_IRQ_SHARABLE_MASK                      0x10\r
+#define   EFI_ACPI_IRQ_SHARABLE                         0x10\r
+\r
+#define EFI_ACPI_IRQ_POLARITY_MASK                      0x08\r
+#define   EFI_ACPI_IRQ_HIGH_TRUE                        0x00\r
+#define   EFI_ACPI_IRQ_LOW_FALSE                        0x08\r
+\r
+#define EFI_ACPI_IRQ_MODE                               0x01\r
+#define   EFI_ACPI_IRQ_LEVEL_TRIGGERED                  0x00\r
+#define   EFI_ACPI_IRQ_EDGE_TRIGGERED                   0x01\r
+\r
+//\r
+// DMA Information\r
+// Ref ACPI specification 6.4.2.2\r
+//\r
+#define EFI_ACPI_DMA_SPEED_TYPE_MASK                    0x60\r
+#define   EFI_ACPI_DMA_SPEED_TYPE_COMPATIBILITY         0x00\r
+#define   EFI_ACPI_DMA_SPEED_TYPE_A                     0x20\r
+#define   EFI_ACPI_DMA_SPEED_TYPE_B                     0x40\r
+#define   EFI_ACPI_DMA_SPEED_TYPE_F                     0x60\r
+                                               \r
+#define EFI_ACPI_DMA_BUS_MASTER_MASK                    0x04\r
+#define   EFI_ACPI_DMA_BUS_MASTER                       0x04\r
+\r
+#define EFI_ACPI_DMA_TRANSFER_TYPE_MASK                 0x03\r
+#define   EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT              0x00\r
+#define   EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT   0x01\r
+#define   EFI_ACPI_DMA_TRANSFER_TYPE_16_BIT             0x10\r
+\r
+//\r
+// IO Information\r
+// Ref ACPI specification 6.4.2.5\r
+//\r
+#define EFI_ACPI_IO_DECODE_MASK                         0x01\r
+#define   EFI_ACPI_IO_DECODE_16_BIT                     0x01\r
+#define   EFI_ACPI_IO_DECODE_10_BIT                     0x00\r
+\r
+//\r
+// Memory Information\r
+// Ref ACPI specification 6.4.3.4\r
+//\r
+#define EFI_ACPI_MEMORY_WRITE_STATUS_MASK               0x01\r
+#define   EFI_ACPI_MEMORY_WRITABLE                      0x01\r
+#define   EFI_ACPI_MEMORY_NON_WRITABLE                  0x00\r
+\r
 //\r
 // Ensure proper structure formats\r
 //\r