Re: [edk2] gEfiTcp4ProtocolGuid not found when running application on motherboard

2015-09-24 Thread David Van Arnem
Thanks for the reply.  I was able to locate 
EFI_TCP4_SERVICE_BINDING_PROTOCOL, so I will try following the examples 
you referenced to use TCP.


David

On 09/23/2015 07:18 PM, Ye, Ting wrote:

Hi David,

I don't know which platform are you using but let's assume you already have 
UEFI network stack since you can work with SNP.
The UEFI network stack will produce EFI_TCP4_SERVICE_BINDING_PROTOCOL instead of 
producing EFI_TCP4_PROTOCOL directly. To use TCP4 protocol, you need call 
EFI_TCP4_SERVICE_BINDING_PROTOCOL->CreateChild() to install a TCP4 protocol to 
the system. You could refer to the UEFI network modules (e.g. iSCSI driver) for 
how to use a EFI service binding protocol. Also, the DxeTcpIoLib in MdeModulePkg 
provides helper routines to access TCP service.

Best Regards,
Ye Ting


-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of David 
Van Arnem
Sent: Thursday, September 24, 2015 6:20 AM
To: edk2-devel@lists.01.org
Subject: [edk2] gEfiTcp4ProtocolGuid not found when running application on 
motherboard

Hi all,

I'm trying to implement some networking (sending/receiving a couple
packets) in a UEFI application I'm developing and testing on a
commercial motherboard.  I am able to send a packet if I use SNP, using
(approximately):

gBS->LocateProtocol(, NULL, (VOID
**));
SnpProtocol->Transmit(...)

Instead, though, I would like to send a TCP packet, so I tried locating
the gEfiTcp4ProtocolGuid and using the Transmit from that protocol. The
LocateProtocol function in this case is returning EFI_NOT_FOUND, which
is unfortunate.  Should gEfiTcp4ProtocolGuid be in the motherboard
manufacturer's UEFI implementation (i.e. is it up to the developer to
include it or not)?  I'm not sure how compliance with the spec works, so
I wanted to ask here before I choose an alternative.

David

___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] gEfiTcp4ProtocolGuid not found when running application on motherboard

2015-09-24 Thread David Van Arnem
Thanks for the reply.  I was able to locate 
EFI_TCP4_SERVICE_BINDING_PROTOCOL, so I will try following the examples 
you referenced to use TCP.


David

On 09/23/2015 07:18 PM, Ye, Ting wrote:

Hi David,

I don't know which platform are you using but let's assume you already have 
UEFI network stack since you can work with SNP.
The UEFI network stack will produce EFI_TCP4_SERVICE_BINDING_PROTOCOL instead of 
producing EFI_TCP4_PROTOCOL directly. To use TCP4 protocol, you need call 
EFI_TCP4_SERVICE_BINDING_PROTOCOL->CreateChild() to install a TCP4 protocol to 
the system. You could refer to the UEFI network modules (e.g. iSCSI driver) for 
how to use a EFI service binding protocol. Also, the DxeTcpIoLib in MdeModulePkg 
provides helper routines to access TCP service.

Best Regards,
Ye Ting


-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of David 
Van Arnem
Sent: Thursday, September 24, 2015 6:20 AM
To: edk2-devel@lists.01.org
Subject: [edk2] gEfiTcp4ProtocolGuid not found when running application on 
motherboard

Hi all,

I'm trying to implement some networking (sending/receiving a couple
packets) in a UEFI application I'm developing and testing on a
commercial motherboard.  I am able to send a packet if I use SNP, using
(approximately):

gBS->LocateProtocol(, NULL, (VOID
**));
SnpProtocol->Transmit(...)

Instead, though, I would like to send a TCP packet, so I tried locating
the gEfiTcp4ProtocolGuid and using the Transmit from that protocol. The
LocateProtocol function in this case is returning EFI_NOT_FOUND, which
is unfortunate.  Should gEfiTcp4ProtocolGuid be in the motherboard
manufacturer's UEFI implementation (i.e. is it up to the developer to
include it or not)?  I'm not sure how compliance with the spec works, so
I wanted to ask here before I choose an alternative.

David

___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] gEfiTcp4ProtocolGuid not found when running application on motherboard

2015-09-23 Thread Andrew Fish

> On Sep 23, 2015, at 3:20 PM, David Van Arnem  wrote:
> 
> Hi all,
> 
> I'm trying to implement some networking (sending/receiving a couple packets) 
> in a UEFI application I'm developing and testing on a commercial motherboard. 
>  I am able to send a packet if I use SNP, using (approximately):
> 
> gBS->LocateProtocol(, NULL, (VOID 
> **));
> SnpProtocol->Transmit(...)
> 
> Instead, though, I would like to send a TCP packet, so I tried locating the 
> gEfiTcp4ProtocolGuid and using the Transmit from that protocol. The 
> LocateProtocol function in this case is returning EFI_NOT_FOUND, which is 
> unfortunate.  Should gEfiTcp4ProtocolGuid be in the motherboard 
> manufacturer's UEFI implementation (i.e. is it up to the developer to include 
> it or not)?  I'm not sure how compliance with the spec works, so I wanted to 
> ask here before I choose an alternative.
> 

David,

The answer to your spec (UEFI 2.5) question is in:
2.6.2 Platform-Specific Elements 

7.
If a platform supports UEFI general purpose network applications, then the 
EFI_MANAGED_NETWORK_PROTOCOL, EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL, 
EFI_ARP_PROTOCOL, EFI_ARP_SERVICE_BINDING_PROTOCOL, EFI_DHCP4_PROTOCOL, 
EFI_DHCP4_SERVICE_BINDING_PROTOCOL, EFI_TCP4_PROTOCOL, 
EFI_TCP4_SERVICE_BINDING_PROTOCOL, EFI_IP4_SERVICE_BINDING_PROTOCOL, 
EFI_IP4_CONFIG2_PROTOCOL, EFI_UDP4_PROTOCOL, and 
EFI_UDP4_SERVICE_BINDING_PROTOCOL are required. If additional IPv6 support is 
needed for the platform, then EFI_DHCP6_PROTOCOL, 
EFI_DHCP6_SERVICE_BINDING_PROTOCOL, EFI_TCP6_PROTOCOL, 
EFI_TCP6_SERVICE_BINDING_PROTOCOL, EFI_IP6_SERVICE_BINDING_PROTOCOL, 
EFI_IP6_CONFIG_PROTOCOL, EFI_UDP6_PROTOCOL, and 
EFI_UDP6_SERVICE_BINDING_PROTOCOL are additionally required. If the network 
application requires DNS capability, EFI_DNS4_SERVICE_BINDING_PROTOCOL and 
EFI_DNS4_PROTOCOL are required for the IPv4 stack. 
EFI_DNS6_SERVICE_BINDING_PROTOCOL and EFI_DNS6_PROTOCOL are required for the 
IPv6 stack. If the netw
 ork environment requires TLS features, 
EFI_TLS_SERVICE_BINDING_PROTOCOL,EFI_TLS_PROTOCOL and 
EFI_TLS_CONFIGURATION_PROTOCOL are required. If the network environment 
requires VLAN features, EFI_VLAN_CONFIG_PROTOCOL is required.

Thanks,

Andrew Fish


> David
> 
> ___
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel

___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] gEfiTcp4ProtocolGuid not found when running application on motherboard

2015-09-23 Thread Ye, Ting
Hi David,

I don't know which platform are you using but let's assume you already have 
UEFI network stack since you can work with SNP.
The UEFI network stack will produce EFI_TCP4_SERVICE_BINDING_PROTOCOL instead 
of producing EFI_TCP4_PROTOCOL directly. To use TCP4 protocol, you need call 
EFI_TCP4_SERVICE_BINDING_PROTOCOL->CreateChild() to install a TCP4 protocol to 
the system. You could refer to the UEFI network modules (e.g. iSCSI driver) for 
how to use a EFI service binding protocol. Also, the DxeTcpIoLib in 
MdeModulePkg provides helper routines to access TCP service.

Best Regards,
Ye Ting


-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of David 
Van Arnem
Sent: Thursday, September 24, 2015 6:20 AM
To: edk2-devel@lists.01.org
Subject: [edk2] gEfiTcp4ProtocolGuid not found when running application on 
motherboard

Hi all,

I'm trying to implement some networking (sending/receiving a couple 
packets) in a UEFI application I'm developing and testing on a 
commercial motherboard.  I am able to send a packet if I use SNP, using 
(approximately):

gBS->LocateProtocol(, NULL, (VOID 
**));
SnpProtocol->Transmit(...)

Instead, though, I would like to send a TCP packet, so I tried locating 
the gEfiTcp4ProtocolGuid and using the Transmit from that protocol. The 
LocateProtocol function in this case is returning EFI_NOT_FOUND, which 
is unfortunate.  Should gEfiTcp4ProtocolGuid be in the motherboard 
manufacturer's UEFI implementation (i.e. is it up to the developer to 
include it or not)?  I'm not sure how compliance with the spec works, so 
I wanted to ask here before I choose an alternative.

David

___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel