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