Thursday, June 7, 2007

Troubleshoot TFTPD32

I'm actually using a very cool software called tftpd32 as DHCP server on my desktop computer, to assign IP address to my embedded board, when I am working out of the office. This software developed by Ph. Jounin (link) is a tftpd client/server, dhcp server and sntp server.

I was using version 3.02 since last week I moved to version 3.22. That new version integrate optimization, and better management of the network resource, but also new functionalities. And if you use it out of the box without looking to the default selected options, you will have troubles with your Windows CE device and Platform Builder. Especially when you will use KITL.
By default that new version enable an automatic ping request before assigning an IP address to make sure that IP is not currently used. The problem is when KITL starts VMINI interface, it asks by default for an IP address using a DHCP request again. As the board already ask for an IP address during the boot process of the bootloader, an IP address is already assign to the MAC address of the board. So TFTPD32 send a ping request to the board IP address with the board MAC address (see TCP/IP protocol specification).
As the network interface of the board is not completely initialized (remember KITL is currently in the initialization process), but receives a ping request and it locks the KITL VMINI initialization.
So to avoid that misunderstood between the device and TFTPD32 you have to disable that functionality.

- Nicolas

No comments: