This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP432E401Y: error receiving BOOTP request by BSL on Linux system

Part Number: MSP432E401Y


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

  • Hello Patrick,

    Did you compare this Wireshark log with the a Wireshark log for the communication between Windows PC and the MSP432E4? Do they look identical?

    Thanks,

    Sai

  • Sai, sorry for the late reply.

    I found that I had just neglected to open port 68/udp on the firewall to allow the system to listen for the requests.   I opened port 67/udp by mistake.   This was my only issue.   

    Thanks

  • Also, for people reading this post, if you get an error on the TFTP read request being invalid, you probably need to open port 69 as well.

    For my system it was the following commands:

    [user]$ firewall-cmd --list-ports

             ~~ this provides a list of ports that are listening, you'll check if 67/udp  68/udp  and 69/udp   are among them

    for any ports not listed:

    [user]$ firewall-cmd --add-port=67/udp

**Attention** This is a public forum