VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/MdePkg/Include/IndustryStandard/IScsiBootFirmwareTable.h@ 58466

Last change on this file since 58466 was 58466, checked in by vboxsync, 9 years ago

EFI/Firmware: Merged in the svn:eol-style, svn:mime-type and trailing whitespace cleanup that was done after the initial UDK2014.SP1 import: svn merge /vendor/edk2/UDK2014.SP1 /vendor/edk2/current .

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

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette