2 The definition for iSCSI Boot Firmware Table, it's defined in Microsoft's
3 iSCSI Boot Firmware Table(iBFT) as Defined in ACPI 3.0b Specification.
5 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
10 #ifndef _ISCSI_BOOT_FIRMWARE_TABLE_H_
11 #define _ISCSI_BOOT_FIRMWARE_TABLE_H_
13 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_REVISION 0x01
14 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_ALIGNMENT 8
19 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_RESERVED_STRUCTURE_ID 0
20 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_ID 1
21 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_ID 2
22 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_ID 3
23 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_ID 4
24 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_EXTERNSIONS_STRUCTURE_ID 5
27 /// from the definition of IP_PREFIX_ORIGIN Enumeration in MSDN,
28 /// not defined in Microsoft iBFT document.
31 IpPrefixOriginOther
= 0,
33 IpPrefixOriginWellKnown
,
35 IpPrefixOriginRouterAdvertisement
,
36 IpPrefixOriginUnchanged
= 16
52 } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER
;
55 /// Common Header of Boot Firmware Table Structure
63 } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER
;
69 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header
;
71 UINT16 InitiatorOffset
;
76 } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE
;
78 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_VERSION 0x1
80 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_FLAG_BOOT_FAILOVER BIT0
83 /// Initiator Structure
86 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header
;
87 EFI_IPv6_ADDRESS ISnsServer
;
88 EFI_IPv6_ADDRESS SlpServer
;
89 EFI_IPv6_ADDRESS PrimaryRadiusServer
;
90 EFI_IPv6_ADDRESS SecondaryRadiusServer
;
91 UINT16 IScsiNameLength
;
92 UINT16 IScsiNameOffset
;
93 } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE
;
95 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_VERSION 0x1
97 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BLOCK_VALID BIT0
98 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BOOT_SELECTED BIT1
104 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header
;
106 UINT8 SubnetMaskPrefixLength
;
108 EFI_IPv6_ADDRESS Gateway
;
109 EFI_IPv6_ADDRESS PrimaryDns
;
110 EFI_IPv6_ADDRESS SecondaryDns
;
111 EFI_IPv6_ADDRESS DhcpServer
;
115 UINT16 HostNameLength
;
116 UINT16 HostNameOffset
;
117 } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE
;
119 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_VERSION 0x1
121 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BLOCK_VALID BIT0
122 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BOOT_SELECTED BIT1
123 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_GLOBAL BIT2
129 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header
;
135 UINT16 IScsiNameLength
;
136 UINT16 IScsiNameOffset
;
137 UINT16 CHAPNameLength
;
138 UINT16 CHAPNameOffset
;
139 UINT16 CHAPSecretLength
;
140 UINT16 CHAPSecretOffset
;
141 UINT16 ReverseCHAPNameLength
;
142 UINT16 ReverseCHAPNameOffset
;
143 UINT16 ReverseCHAPSecretLength
;
144 UINT16 ReverseCHAPSecretOffset
;
145 } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE
;
147 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_VERSION 0x1
149 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BLOCK_VALID BIT0
150 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BOOT_SELECTED BIT1
151 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_CHAP BIT2
152 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_RCHAP BIT3
154 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_NO_CHAP 0
155 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_CHAP 1
156 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_MUTUAL_CHAP 2