May have a solution, but should be confirmed... Contacted Apple Support who tried, but could not provide a clue. <shrug> This may work for you:
Fixed the issue on my system running 10.11.3 by editing the /System/Library/LaunchDaemon/tftpd.plist.
Old tftpd.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>InitGroups</key>
<true/>
<key>Label</key>
<string>com.apple.tftpd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/tftpd</string>
<string>-s</string>
<string>/private/tftpboot</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>tftp</string>
<key>SockType</key>
<string>dgram</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<true/>
</dict>
</dict>
</plist>
New tftpd.plist:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>InitGroups</key>
<true/>
<key>Label</key>
<string>com.apple.tftpd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/tftpd</string>
<string>-s</string>
<string>/private/tftpboot</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockFamily</key>
<string>IPv4</string>
<key>SockServiceName</key>
<string>tftp</string>
<key>SockType</key>
<string>dgram</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<true/>
</dict>
</dict>
</plist>
Figured out that the launchd was trying to bind tftptd to an IPv6 UDP socket was probably the problem:
That did the trick - either tftpd isn't written to support IPv6 or launchd isn’t handling the IPv6 UDP socket binding correctly. Thus the errors in system.log:
Feb 19 17:19:43 sapphire tftpd[26193]: recvfrom: Resource temporarily unavailable
Feb 19 17:19:43 sapphire com.apple.xpc.launchd[1] (com.apple.tftpd[26193]): Service exited with abnormal code: 1
YMMV