|
@@ -91,13 +91,15 @@ static EFI_GUID efi_component_name2_protocol_guid
|
91
|
91
|
static EFI_GUID efi_device_path_protocol_guid
|
92
|
92
|
= EFI_DEVICE_PATH_PROTOCOL_GUID;
|
93
|
93
|
|
94
|
|
-/** Efi network interface identifier GUID */
|
95
|
|
-static EFI_GUID efi_nii_protocol_guid = {
|
96
|
|
- /* No, this isn't the GUID defined as
|
97
|
|
- * EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID in
|
98
|
|
- * Protocol/NetworkInterfaceIdentifier.h. That GUID gets
|
99
|
|
- * ignored by the EFI network stack. You have to use this one
|
100
|
|
- * instead.
|
|
94
|
+/** EFI network interface identifier GUID */
|
|
95
|
+static EFI_GUID efi_nii_protocol_guid
|
|
96
|
+ = EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID;
|
|
97
|
+
|
|
98
|
+/** EFI network interface identifier GUID (extra special version) */
|
|
99
|
+static EFI_GUID efi_nii31_protocol_guid = {
|
|
100
|
+ /* At some point, it seems that someone decided to change the
|
|
101
|
+ * GUID. Current EFI builds ignore the older GUID, older EFI
|
|
102
|
+ * builds ignore the newer GUID, so we have to expose both.
|
101
|
103
|
*/
|
102
|
104
|
0x1ACED566, 0x76ED, 0x4218,
|
103
|
105
|
{ 0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 }
|
|
@@ -987,6 +989,7 @@ efi_snp_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver,
|
987
|
989
|
&efi_simple_network_protocol_guid, &snpdev->snp,
|
988
|
990
|
&efi_device_path_protocol_guid, &snpdev->path,
|
989
|
991
|
&efi_nii_protocol_guid, &snpdev->nii,
|
|
992
|
+ &efi_nii31_protocol_guid, &snpdev->nii,
|
990
|
993
|
NULL ) ) != 0 ) {
|
991
|
994
|
DBGC ( snpdev, "SNPDEV %p could not install protocols: "
|
992
|
995
|
"%s\n", snpdev, efi_strerror ( efirc ) );
|
|
@@ -1002,6 +1005,7 @@ efi_snp_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver,
|
1002
|
1005
|
&efi_simple_network_protocol_guid, &snpdev->snp,
|
1003
|
1006
|
&efi_device_path_protocol_guid, &snpdev->path,
|
1004
|
1007
|
&efi_nii_protocol_guid, &snpdev->nii,
|
|
1008
|
+ &efi_nii31_protocol_guid, &snpdev->nii,
|
1005
|
1009
|
NULL );
|
1006
|
1010
|
err_install_protocol_interface:
|
1007
|
1011
|
bs->CloseEvent ( snpdev->snp.WaitForPacket );
|
|
@@ -1051,6 +1055,7 @@ efi_snp_driver_stop ( EFI_DRIVER_BINDING_PROTOCOL *driver,
|
1051
|
1055
|
&efi_simple_network_protocol_guid, &snpdev->snp,
|
1052
|
1056
|
&efi_device_path_protocol_guid, &snpdev->path,
|
1053
|
1057
|
&efi_nii_protocol_guid, &snpdev->nii,
|
|
1058
|
+ &efi_nii31_protocol_guid, &snpdev->nii,
|
1054
|
1059
|
NULL );
|
1055
|
1060
|
bs->CloseEvent ( snpdev->snp.WaitForPacket );
|
1056
|
1061
|
netdev_put ( snpdev->netdev );
|