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(&gEfiSimpleNetworkProtocolGuid, NULL, (VOID 
**)&SnpProtocol);
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

Reply via email to