I find that loading over Ethernet is very unreliable (over a direct connection that is used for nothing else).
The host PC always waits until it has seen an expected BOOTP packet before it starts to transmit the program.
I can download a program repeatedly and see all packets going out successfully from the PC (using WireShark), but the results vary:
1: the program loads and executes correctly;
2: the program does not load and the C6678 is still sending BOOTP packets.
3: the program does not load and the C6678 appears to be doing nothing;
Which of 1..3 happens appears to be completely random.
What is the actual behaviour of the Ethernet bootloader when it discovers a faulty/misread packet? The documentation just says the packet is discarded, so is it correct to assume that, in case 3 above, at least the first packet (sequence number 0) has been read successfully? Similarly, does case 2 indicate that the first packet has not been received?
Nothing I have tried (including reducing the rate of sending packets down to one each second) changes the apparently random loading behaviour.
Are there any situations where the bootloader has received some correct packets and then decides to revert to sending BOOTP messages?