Hi Sam
I have experienced some DHCP servers that will ignore MAC address 00:00:00:00:00:00 but not routers, but I don't exclude things like this.
There is a "secret" command to set the MAC address via UART.
If you look in the file debug.c you can see it:
// Special secret menu - not displayed as menu...
//
static const DEBUG_COMMAND tSecretCommands[] = {
{"MAC", 0, DO_IP, DO_SET_MAC },
};
You need to enter the command "MAC 00-11-22-33-44-55" (note that the delimiter '-' is used rather than ':' although this is defined in config.h:
#define MAC_DELIMITER '-' // used for display and entry of mac addresses
so can be changed to your favorite if required.
This will cause the MAC address to be programmed to FLASH and the command will no longer allow further changes (it will subsequently give the error message "MAC may not be modified!!"). The idea behind it is that it could be useful to set a one-time programmable address in production environments but not allow users to change it later.
It can, of course, be reset by deleting all FLASH memory.
Usually, when Ethernet is possible with zeroed MAC, the same command can be used via TELNET or the setting modified (also one-shot) on the LAN web page (this is what is used for discussion in the tutorial).
Regards
Mark
PS. Is your name derived from the ATMEL SAM7X, or are you a proud 512BB owner?? ;-)