]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/IScsiBootFirmwareTable.h
edk2/MdePkg/Include/Ia32/ProcessorBind.h:
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / IScsiBootFirmwareTable.h
CommitLineData
e3b1115e 1/** @file\r
2\r
e3b1115e 3 The definition for iSCSI Boot Firmware Table, it's defined in\r
4 Microsoft iBFT document.\r
5\r
c311f86b 6 Copyright (c) 2006 - 2007, Intel Corporation\r
7 All rights reserved. This program and the accompanying materials \r
8 are licensed and made available under the terms and conditions of the BSD License \r
9 which accompanies this distribution. The full text of the license may be found at \r
10 http://opensource.org/licenses/bsd-license.php \r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
14\r
e3b1115e 15**/\r
16\r
17#ifndef _ISCSI_BOOT_FIRMWARE_TABLE_H_\r
18#define _ISCSI_BOOT_FIRMWARE_TABLE_H_\r
19\r
20#include "Acpi3_0.h"\r
21\r
22#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_REVISION 0x01\r
23#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_ALIGNMENT 8\r
24\r
42eedea9 25typedef enum {\r
e3b1115e 26 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_RESERVED_STRUCTURE_ID = 0,\r
27 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_ID,\r
28 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_ID,\r
29 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_ID,\r
30 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_ID,\r
1b2afeaa 31 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_EXTERNSIONS_STRUCTURE_ID\r
42eedea9 32} EFI_ACPI_ISCSI_ID_DEFINITIONS;\r
e3b1115e 33\r
42eedea9 34typedef enum {\r
e3b1115e 35 IpPrefixOriginOther = 0,\r
36 IpPrefixOriginManual,\r
37 IpPrefixOriginWellKnown,\r
38 IpPrefixOriginDhcp,\r
39 IpPrefixOriginRouterAdvertisement,\r
40 IpPrefixOriginUnchanged = 16\r
42eedea9 41} IP_PREFIX_VALUE;\r
e3b1115e 42\r
43#pragma pack(1)\r
44\r
45typedef struct {\r
46 UINT32 Signature;\r
47 UINT32 Length;\r
48 UINT8 Revision;\r
49 UINT8 Checksum;\r
50 UINT8 OemId[6];\r
51 UINT64 OemTableId;\r
52 UINT8 Reserved[24];\r
53} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER;\r
54\r
55typedef struct {\r
56 UINT8 StructureId;\r
57 UINT8 Version;\r
58 UINT16 Length;\r
59 UINT8 Index;\r
60 UINT8 Flags;\r
61} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER;\r
62\r
63#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_VERSION 0x1\r
64#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_FLAG_BOOT_FAILOVER 0x1\r
65\r
66typedef struct {\r
67 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
68 UINT16 Extensions;\r
69 UINT16 InitiatorOffset;\r
70 UINT16 NIC0Offset;\r
71 UINT16 Target0Offset;\r
72 UINT16 NIC1Offset;\r
73 UINT16 Target1Offset; \r
74} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE;\r
75\r
76#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_VERSION 0x1\r
77#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BLOCK_VALID 0x1\r
78#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BOOT_SELECTED 0x2\r
79\r
80typedef struct {\r
81 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
82 EFI_IPv6_ADDRESS ISnsServer;\r
83 EFI_IPv6_ADDRESS SlpServer;\r
84 EFI_IPv6_ADDRESS PrimaryRadiusServer;\r
85 EFI_IPv6_ADDRESS SecondaryRadiusServer;\r
86 UINT16 IScsiNameLength;\r
87 UINT16 IScsiNameOffset;\r
88} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE;\r
89\r
90#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_VERSION 0x1\r
91#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BLOCK_VALID 0x1\r
92#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BOOT_SELECTED 0x2\r
93#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_GLOBAL 0x4\r
94\r
95typedef struct {\r
96 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
97 EFI_IPv6_ADDRESS Ip;\r
98 UINT8 SubnetMaskPrefixLength;\r
99 UINT8 Origin;\r
100 EFI_IPv6_ADDRESS Gateway;\r
101 EFI_IPv6_ADDRESS PrimaryDns;\r
102 EFI_IPv6_ADDRESS SecondaryDns;\r
103 EFI_IPv6_ADDRESS DhcpServer;\r
104 UINT16 VLanTag;\r
105 UINT8 Mac[6];\r
106 UINT16 PciLocation;\r
107 UINT16 HostNameLength;\r
108 UINT16 HostNameOffset;\r
109} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE;\r
110\r
111#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_VERSION 0x1\r
112#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BLOCK_VALID 0x1\r
113#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BOOT_SELECTED 0x2\r
114#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_CHAP 0x4\r
115#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_RCHAP 0x8\r
116\r
117typedef struct {\r
118 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
119 EFI_IPv6_ADDRESS Ip;\r
120 UINT16 Port;\r
121 UINT8 BootLun[8];\r
122 UINT8 CHAPType;\r
123 UINT8 NicIndex;\r
124 UINT16 IScsiNameLength;\r
125 UINT16 IScsiNameOffset;\r
126 UINT16 CHAPNameLength;\r
127 UINT16 CHAPNameOffset;\r
128 UINT16 CHAPSecretLength;\r
129 UINT16 CHAPSecretOffset;\r
130 UINT16 ReverseCHAPNameLength;\r
131 UINT16 ReverseCHAPNameOffset;\r
132 UINT16 ReverseCHAPSecretLength;\r
133 UINT16 ReverseCHAPSecretOffset;\r
134} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE;\r
135\r
136#pragma pack()\r
137\r
138#endif\r
139\r