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