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