//\r
#define EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE 0x54524457\r
\r
+//\r
+// "iBFT" iSCSI Boot Firmware Table\r
+//\r
+#define EFI_ACPI_3_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE 0x54464269\r
+\r
#pragma pack()\r
\r
#endif\r
--- /dev/null
+/** @file\r
+\r
+Copyright (c) 2005 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+ IScsiBootFirmwareTable.h\r
+\r
+Abstract:\r
+\r
+ The definition for iSCSI Boot Firmware Table, it's defined in\r
+ Microsoft iBFT document.\r
+\r
+**/\r
+\r
+#ifndef _ISCSI_BOOT_FIRMWARE_TABLE_H_\r
+#define _ISCSI_BOOT_FIRMWARE_TABLE_H_\r
+\r
+#include "Acpi3_0.h"\r
+\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_REVISION 0x01\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_ALIGNMENT 8\r
+\r
+enum {\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_RESERVED_STRUCTURE_ID = 0,\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_ID,\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_ID,\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_ID,\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_ID,\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_EXTERNSIONS_STRUCTURE_ID,\r
+};\r
+\r
+enum {\r
+ IpPrefixOriginOther = 0,\r
+ IpPrefixOriginManual,\r
+ IpPrefixOriginWellKnown,\r
+ IpPrefixOriginDhcp,\r
+ IpPrefixOriginRouterAdvertisement,\r
+ IpPrefixOriginUnchanged = 16\r
+};\r
+\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+ UINT32 Signature;\r
+ UINT32 Length;\r
+ UINT8 Revision;\r
+ UINT8 Checksum;\r
+ UINT8 OemId[6];\r
+ UINT64 OemTableId;\r
+ UINT8 Reserved[24];\r
+} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER;\r
+\r
+typedef struct {\r
+ UINT8 StructureId;\r
+ UINT8 Version;\r
+ UINT16 Length;\r
+ UINT8 Index;\r
+ UINT8 Flags;\r
+} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER;\r
+\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_VERSION 0x1\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_FLAG_BOOT_FAILOVER 0x1\r
+\r
+typedef struct {\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
+ UINT16 Extensions;\r
+ UINT16 InitiatorOffset;\r
+ UINT16 NIC0Offset;\r
+ UINT16 Target0Offset;\r
+ UINT16 NIC1Offset;\r
+ UINT16 Target1Offset; \r
+} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE;\r
+\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_VERSION 0x1\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BLOCK_VALID 0x1\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BOOT_SELECTED 0x2\r
+\r
+typedef struct {\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
+ EFI_IPv6_ADDRESS ISnsServer;\r
+ EFI_IPv6_ADDRESS SlpServer;\r
+ EFI_IPv6_ADDRESS PrimaryRadiusServer;\r
+ EFI_IPv6_ADDRESS SecondaryRadiusServer;\r
+ UINT16 IScsiNameLength;\r
+ UINT16 IScsiNameOffset;\r
+} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE;\r
+\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_VERSION 0x1\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BLOCK_VALID 0x1\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BOOT_SELECTED 0x2\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_GLOBAL 0x4\r
+\r
+typedef struct {\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
+ EFI_IPv6_ADDRESS Ip;\r
+ UINT8 SubnetMaskPrefixLength;\r
+ UINT8 Origin;\r
+ EFI_IPv6_ADDRESS Gateway;\r
+ EFI_IPv6_ADDRESS PrimaryDns;\r
+ EFI_IPv6_ADDRESS SecondaryDns;\r
+ EFI_IPv6_ADDRESS DhcpServer;\r
+ UINT16 VLanTag;\r
+ UINT8 Mac[6];\r
+ UINT16 PciLocation;\r
+ UINT16 HostNameLength;\r
+ UINT16 HostNameOffset;\r
+} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE;\r
+\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_VERSION 0x1\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BLOCK_VALID 0x1\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BOOT_SELECTED 0x2\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_CHAP 0x4\r
+#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_RCHAP 0x8\r
+\r
+typedef struct {\r
+ EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
+ EFI_IPv6_ADDRESS Ip;\r
+ UINT16 Port;\r
+ UINT8 BootLun[8];\r
+ UINT8 CHAPType;\r
+ UINT8 NicIndex;\r
+ UINT16 IScsiNameLength;\r
+ UINT16 IScsiNameOffset;\r
+ UINT16 CHAPNameLength;\r
+ UINT16 CHAPNameOffset;\r
+ UINT16 CHAPSecretLength;\r
+ UINT16 CHAPSecretOffset;\r
+ UINT16 ReverseCHAPNameLength;\r
+ UINT16 ReverseCHAPNameOffset;\r
+ UINT16 ReverseCHAPSecretLength;\r
+ UINT16 ReverseCHAPSecretOffset;\r
+} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE;\r
+\r
+#pragma pack()\r
+\r
+#endif\r
+\r
\r
ATAPI_DEVICE_PATH Atapi;\r
SCSI_DEVICE_PATH Scsi;\r
+ ISCSI_DEVICE_PATH Iscsi;\r
FIBRECHANNEL_DEVICE_PATH FibreChannel;\r
\r
F1394_DEVICE_PATH F1394;\r
+++ /dev/null
-/** @file\r
- EFI_ISCSI_INITIATOR_NAME_PROTOCOL as defined in UEFI 2.0.\r
- It rovides the ability to get and set the iSCSI Initiator Name. \r
-\r
- Copyright (c) 2006, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-**/\r
-\r
-#ifndef __ISCSI_INITIATOR_NAME_H__\r
-#define __ISCSI_INITIATOR_NAME_H__\r
-\r
-#define EFI_ISCSI_INITIATOR_NAME_PROTOCOL_GUID \\r
-{ \\r
- 0x59324945, 0xec44, 0x4c0d, {0xb1, 0xcd, 0x9d, 0xb1, 0x39, 0xdf, 0x7, 0xc } \\r
-}\r
-\r
-typedef struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL EFI_ISCSI_INITIATOR_NAME_PROTOCOL;\r
-\r
-/**\r
- Retrieves the current set value of iSCSI Initiator Name.\r
-\r
- @param This Pointer to the EFI_ISCSI_INITIATOR_NAME_PROTOCOL instance.\r
- @param BufferSize Size of the buffer in bytes pointed to by Buffer / Actual size of the\r
- variable data buffer.\r
- @param Buffer Pointer to the buffer for data to be read.\r
-\r
- @retval EFI_SUCCESS Data was successfully retrieved into the provided buffer and the\r
- BufferSize was sufficient to handle the iSCSI initiator name\r
- @retval EFI_BUFFER_TOO_SMALL BufferSize is too small for the result.\r
- @retval EFI_INVALID_PARAMETER BufferSize or Buffer is NULL.\r
- @retval EFI_DEVICE_ERROR The iSCSI initiator name could not be retrieved due to a hardware error.\r
-\r
-**/\r
-typedef \r
-EFI_STATUS\r
-(EFIAPI *EFI_ISCSI_INITIATOR_NAME_GET) (\r
- IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
- IN OUT UINTN *BufferSize,\r
- OUT VOID *Buffer\r
- )\r
-;\r
-\r
- \r
-\r
-/**\r
- Sets the iSCSI Initiator Name.\r
-\r
- @param This Pointer to the EFI_ISCSI_INITIATOR_NAME_PROTOCOL instance.\r
- @param BufferSize Size of the buffer in bytes pointed to by Buffer.\r
- @param Buffer Pointer to the buffer for data to be written.\r
-\r
- @retval EFI_SUCCESS Data was successfully stored by the protocol.\r
- @retval EFI_UNSUPPORTED Platform policies do not allow for data to be written.\r
- @retval EFI_INVALID_PARAMETER BufferSize or Buffer is NULL, or BufferSize exceeds the maximum allowed limit.\r
- @retval EFI_DEVICE_ERROR The data could not be stored due to a hardware error.\r
- @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the data.\r
- @retval EFI_PROTOCOL_ERROR Input iSCSI initiator name does not adhere to RFC 3720\r
- (and other related protocols)\r
-\r
-**/\r
-typedef EFI_STATUS\r
-(EFIAPI *EFI_ISCSI_INITIATOR_NAME_SET) (\r
- IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
- IN OUT UINTN *BufferSize,\r
- IN VOID *Buffer\r
- )\r
-; \r
-\r
-struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL {\r
- EFI_ISCSI_INITIATOR_NAME_GET Get;\r
- EFI_ISCSI_INITIATOR_NAME_SET Set;\r
-};\r
-\r
-extern EFI_GUID gEfiIScsiInitiatorNameProtocolGuid;\r
-\r
-#endif\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
--- /dev/null
+/** @file\r
+ EFI_ISCSI_INITIATOR_NAME_PROTOCOL as defined in UEFI 2.0.\r
+ It rovides the ability to get and set the iSCSI Initiator Name. \r
+\r
+ Copyright (c) 2006, Intel Corporation \r
+ All rights reserved. This program and the accompanying materials \r
+ are licensed and made available under the terms and conditions of the BSD License \r
+ which accompanies this distribution. The full text of the license may be found at \r
+ http://opensource.org/licenses/bsd-license.php \r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+**/\r
+\r
+#ifndef __ISCSI_INITIATOR_NAME_H__\r
+#define __ISCSI_INITIATOR_NAME_H__\r
+\r
+#define EFI_ISCSI_INITIATOR_NAME_PROTOCOL_GUID \\r
+{ \\r
+ 0x59324945, 0xec44, 0x4c0d, {0xb1, 0xcd, 0x9d, 0xb1, 0x39, 0xdf, 0x7, 0xc } \\r
+}\r
+\r
+typedef struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL EFI_ISCSI_INITIATOR_NAME_PROTOCOL;\r
+\r
+/**\r
+ Retrieves the current set value of iSCSI Initiator Name.\r
+\r
+ @param This Pointer to the EFI_ISCSI_INITIATOR_NAME_PROTOCOL instance.\r
+ @param BufferSize Size of the buffer in bytes pointed to by Buffer / Actual size of the\r
+ variable data buffer.\r
+ @param Buffer Pointer to the buffer for data to be read.\r
+\r
+ @retval EFI_SUCCESS Data was successfully retrieved into the provided buffer and the\r
+ BufferSize was sufficient to handle the iSCSI initiator name\r
+ @retval EFI_BUFFER_TOO_SMALL BufferSize is too small for the result.\r
+ @retval EFI_INVALID_PARAMETER BufferSize or Buffer is NULL.\r
+ @retval EFI_DEVICE_ERROR The iSCSI initiator name could not be retrieved due to a hardware error.\r
+\r
+**/\r
+typedef \r
+EFI_STATUS\r
+(EFIAPI *EFI_ISCSI_INITIATOR_NAME_GET) (\r
+ IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ )\r
+;\r
+\r
+ \r
+\r
+/**\r
+ Sets the iSCSI Initiator Name.\r
+\r
+ @param This Pointer to the EFI_ISCSI_INITIATOR_NAME_PROTOCOL instance.\r
+ @param BufferSize Size of the buffer in bytes pointed to by Buffer.\r
+ @param Buffer Pointer to the buffer for data to be written.\r
+\r
+ @retval EFI_SUCCESS Data was successfully stored by the protocol.\r
+ @retval EFI_UNSUPPORTED Platform policies do not allow for data to be written.\r
+ @retval EFI_INVALID_PARAMETER BufferSize or Buffer is NULL, or BufferSize exceeds the maximum allowed limit.\r
+ @retval EFI_DEVICE_ERROR The data could not be stored due to a hardware error.\r
+ @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the data.\r
+ @retval EFI_PROTOCOL_ERROR Input iSCSI initiator name does not adhere to RFC 3720\r
+ (and other related protocols)\r
+\r
+**/\r
+typedef EFI_STATUS\r
+(EFIAPI *EFI_ISCSI_INITIATOR_NAME_SET) (\r
+ IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ IN VOID *Buffer\r
+ )\r
+; \r
+\r
+struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL {\r
+ EFI_ISCSI_INITIATOR_NAME_GET Get;\r
+ EFI_ISCSI_INITIATOR_NAME_SET Set;\r
+};\r
+\r
+extern EFI_GUID gEfiIScsiInitiatorNameProtocolGuid;\r
+\r
+#endif\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r