I'm attempting to run a test using the ethernet bootloader on my MSP. I have been successful in running this test on a Windows system, however am running into an error where the bootp request is not being received by the BSL on a Linux box (Fedora 25, 64-bit).
I've made a couple minor changes to the basic ethernet bootloader example code found in SDK 3.2 which allow me to use a static IP setup instead of a DHCP server. I tested this on the Windows system and all was fine and updates were successfully transmitted, so I don't believe these changes are at issue (even when using the code out-of-the-box and employing a DHCP server I met the same results, worked on Windows, not from Linux).
Below is the bash output from my terminal followed by the serial UART output indicating the device is ready to receive the Magic Packet. Note that the IP address given to the MSP is different than the one being assigned by BOOTP, and that address being assigned is pinged unsuccessfully in my console output - as expected - indicating it is a free address to assign for BOOTP.
[pbyers@localhost copy-from-win64]$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::82c6:dad:27bf:9a8d prefixlen 64 scopeid 0x20<link>
ether b8:ae:ed:ec:70:9c txqueuelen 1000 (Ethernet)
RX packets 3401757 bytes 674368494 (643.1 MiB)
RX errors 0 dropped 67545 overruns 0 frame 0
TX packets 206841 bytes 44235969 (42.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xdf100000-df120000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 56927 bytes 5069152 (4.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 56927 bytes 5069152 (4.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.141 netmask 255.255.255.0 broadcast 192.168.7.255
inet6 fe80::d96a:2324:29bf:8e51 prefixlen 64 scopeid 0x20<link>
ether 00:c2:c6:ba:79:6c txqueuelen 1000 (Ethernet)
RX packets 75082 bytes 12532293 (11.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11185 bytes 1369228 (1.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[pbyers@localhost copy-from-win64]$ ping 192.168.1.11
PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data.
From 192.168.1.4 icmp_seq=1 Destination Host Unreachable
From 192.168.1.4 icmp_seq=5 Destination Host Unreachable
From 192.168.1.4 icmp_seq=6 Destination Host Unreachable
From 192.168.1.4 icmp_seq=8 Destination Host Unreachable
From 192.168.1.4 icmp_seq=9 Destination Host Unreachable
^C
--- 192.168.1.11 ping statistics ---
10 packets transmitted, 0 received, +5 errors, 100% packet loss, time 9206ms
pipe 4
[pbyers@localhost copy-from-win64]$ sudo ./bsl-scripter-linux-64 script_emac_app.txt
---------------------------------------------------------
BSL Scripter 3.4.0.1
PC software for BSL programming
2019-Aug-29 11:45:21
---------------------------------------------------------
Input file script is : /home/pbyers/ti-eth-bootstrap-test/copy-from-win64/script_emac_app.txt
//LOG
MODE Ethernet E4xx MAC=70:FF:76:1C:20:11 IPClient=192.168.1.11 IPServer=192.168.1.4
Local IP Address is given in the parameter
Local IP Address of Host: 192.168.1.4
Waiting for BOOTP request!
Waiting for BOOTP request!
Waiting for BOOTP request!
Waiting for BOOTP request!
[ERROR_MESSAGE]No BOOTP request received, exit the BSL-Scripter!
[pbyers@localhost copy-from-win64]$
This is the serial UART output...
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2019.08.29 11:57:20 =~=~=~=~=~=~=~=~=~=~=~= Ethernet Boot Application: Magic Packet Detect to invoke the flash based boot loader... Waiting for IP. IP Address: 192.168.1.50 Device ready for detecting Magic Packet on UDP Port 9
Here is the relative output from a Wireshark log as well...
No. Time Source Destination Protocol Length Info
41 10.350140336 fe80::82c6:dad:27bf:9a8d ff02::2 ICMPv6 62 Router Solicitation
Frame 41: 62 bytes on wire (496 bits), 62 bytes captured (496 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: IPv6mcast_02 (33:33:00:00:00:02)
Internet Protocol Version 6, Src: fe80::82c6:dad:27bf:9a8d, Dst: ff02::2
Internet Control Message Protocol v6
No. Time Source Destination Protocol Length Info
42 17.540301886 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 42: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
43 18.600001421 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 43: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
44 19.623947563 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 44: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
45 20.647991821 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 45: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
46 21.672030536 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 46: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
47 22.695939752 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 47: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
48 23.720054944 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 48: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
49 24.743910104 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 49: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
50 25.768002784 Elitegro_ec:70:9c Broadcast ARP 42 Who has 192.168.1.11? Tell 192.168.1.4
Frame 50: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
No. Time Source Destination Protocol Length Info
51 37.271005974 192.168.1.4 255.255.255.255 UDP 72 9 → 9 Len=30
Frame 51: 72 bytes on wire (576 bits), 72 bytes captured (576 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 192.168.1.4, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 9, Dst Port: 9
Data (30 bytes)
0000 aa aa aa aa aa aa 70 ff 76 1c 20 11 70 ff 76 1c ......p.v. .p.v.
0010 20 11 70 ff 76 1c 20 11 70 ff 76 1c 20 11 .p.v. .p.v. .
No. Time Source Destination Protocol Length Info
52 39.050964013 0.0.0.0 255.255.255.255 BOOTP 342 Boot Request from 70:ff:76:1c:20:11 (TexasIns_1c:20:11)
Frame 52: 342 bytes on wire (2736 bits), 342 bytes captured (2736 bits) on interface 0
Ethernet II, Src: TexasIns_1c:20:11 (70:ff:76:1c:20:11), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 68, Dst Port: 67
Bootstrap Protocol
No. Time Source Destination Protocol Length Info
53 40.071031186 0.0.0.0 255.255.255.255 BOOTP 342 Boot Request from 70:ff:76:1c:20:11 (TexasIns_1c:20:11)
Frame 53: 342 bytes on wire (2736 bits), 342 bytes captured (2736 bits) on interface 0
Ethernet II, Src: TexasIns_1c:20:11 (70:ff:76:1c:20:11), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 68, Dst Port: 67
Bootstrap Protocol
No. Time Source Destination Protocol Length Info
54 42.111006448 0.0.0.0 255.255.255.255 BOOTP 342 Boot Request from 70:ff:76:1c:20:11 (TexasIns_1c:20:11)
Frame 54: 342 bytes on wire (2736 bits), 342 bytes captured (2736 bits) on interface 0
Ethernet II, Src: TexasIns_1c:20:11 (70:ff:76:1c:20:11), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 68, Dst Port: 67
Bootstrap Protocol
No. Time Source Destination Protocol Length Info
55 42.371365166 192.168.1.4 255.255.255.255 UDP 72 9 → 9 Len=30
Frame 55: 72 bytes on wire (576 bits), 72 bytes captured (576 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 192.168.1.4, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 9, Dst Port: 9
Data (30 bytes)
0000 aa aa aa aa aa aa 70 ff 76 1c 20 11 70 ff 76 1c ......p.v. .p.v.
0010 20 11 70 ff 76 1c 20 11 70 ff 76 1c 20 11 .p.v. .p.v. .
No. Time Source Destination Protocol Length Info
56 46.130896226 0.0.0.0 255.255.255.255 BOOTP 342 Boot Request from 70:ff:76:1c:20:11 (TexasIns_1c:20:11)
Frame 56: 342 bytes on wire (2736 bits), 342 bytes captured (2736 bits) on interface 0
Ethernet II, Src: TexasIns_1c:20:11 (70:ff:76:1c:20:11), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 68, Dst Port: 67
Bootstrap Protocol
No. Time Source Destination Protocol Length Info
57 47.471985399 192.168.1.4 255.255.255.255 UDP 72 9 → 9 Len=30
Frame 57: 72 bytes on wire (576 bits), 72 bytes captured (576 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 192.168.1.4, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 9, Dst Port: 9
Data (30 bytes)
0000 aa aa aa aa aa aa 70 ff 76 1c 20 11 70 ff 76 1c ......p.v. .p.v.
0010 20 11 70 ff 76 1c 20 11 70 ff 76 1c 20 11 .p.v. .p.v. .
No. Time Source Destination Protocol Length Info
58 52.572623595 192.168.1.4 255.255.255.255 UDP 72 9 → 9 Len=30
Frame 58: 72 bytes on wire (576 bits), 72 bytes captured (576 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 192.168.1.4, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 9, Dst Port: 9
Data (30 bytes)
0000 aa aa aa aa aa aa 70 ff 76 1c 20 11 70 ff 76 1c ......p.v. .p.v.
0010 20 11 70 ff 76 1c 20 11 70 ff 76 1c 20 11 .p.v. .p.v. .
No. Time Source Destination Protocol Length Info
59 54.170623957 0.0.0.0 255.255.255.255 BOOTP 342 Boot Request from 70:ff:76:1c:20:11 (TexasIns_1c:20:11)
Frame 59: 342 bytes on wire (2736 bits), 342 bytes captured (2736 bits) on interface 0
Ethernet II, Src: TexasIns_1c:20:11 (70:ff:76:1c:20:11), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 68, Dst Port: 67
Bootstrap Protocol
No. Time Source Destination Protocol Length Info
60 57.673284428 192.168.1.4 255.255.255.255 UDP 72 9 → 9 Len=30
Frame 60: 72 bytes on wire (576 bits), 72 bytes captured (576 bits) on interface 0
Ethernet II, Src: Elitegro_ec:70:9c (b8:ae:ed:ec:70:9c), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 192.168.1.4, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 9, Dst Port: 9
Data (30 bytes)
0000 aa aa aa aa aa aa 70 ff 76 1c 20 11 70 ff 76 1c ......p.v. .p.v.
0010 20 11 70 ff 76 1c 20 11 70 ff 76 1c 20 11 .p.v. .p.v. .
No. Time Source Destination Protocol Length Info
61 70.190322544 0.0.0.0 255.255.255.255 BOOTP 342 Boot Request from 70:ff:76:1c:20:11 (TexasIns_1c:20:11)
Frame 61: 342 bytes on wire (2736 bits), 342 bytes captured (2736 bits) on interface 0
Ethernet II, Src: TexasIns_1c:20:11 (70:ff:76:1c:20:11), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 68, Dst Port: 67
Bootstrap Protocol
So you can see that the BOOTP request is being sent, the issue seems to be in the bootloader script receiving the request.
Thanks for any insight you may provide.
Patrick