Setting fuses with avrdude

Question regarding the display of the fuses set on the Mega 2560. The following is what I get:

E:\Work>avrdude -c arduinoisp -p m2560 -P usb -b 57600 -u -e -U lock:w:0x3F:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m -U efuse:w:0xFD:m cygwin warning: MS-DOS style path detected: C:\WinAVR-20100110\bin\avrdude.conf Preferred POSIX equivalent is: /usr/bin/avrdude.conf CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% -0.00s

avrdude: Device signature = 0x1e9801 avrdude: erasing chip avrdude: reading input file "0x3F" avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lock written avrdude: verifying lock memory against 0x3F: avrdude: load data lock data from input file 0x3F: avrdude: input file 0x3F contains 1 bytes avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ... avrdude: 1 bytes of lock verified avrdude: reading input file "0xD8" avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of hfuse written avrdude: verifying hfuse memory against 0xD8: avrdude: load data hfuse data from input file 0xD8: avrdude: input file 0xD8 contains 1 bytes avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ... avrdude: 1 bytes of hfuse verified avrdude: reading input file "0xFF" avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of lfuse written avrdude: verifying lfuse memory against 0xFF: avrdude: load data lfuse data from input file 0xFF: avrdude: input file 0xFF contains 1 bytes avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% -0.00s

avrdude: verifying ... avrdude: 1 bytes of lfuse verified avrdude: reading input file "0xFD" avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% -0.00s

avrdude: 1 bytes of efuse written avrdude: verifying efuse memory against 0xFD: avrdude: load data efuse data from input file 0xFD: avrdude: input file 0xFD contains 1 bytes avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ... avrdude: 1 bytes of efuse verified

avrdude done. Thank you.

E:\Work>avrdude -c arduinoisp -p m2560 cygwin warning: MS-DOS style path detected: C:\WinAVR-20100110\bin\avrdude.conf Preferred POSIX equivalent is: /usr/bin/avrdude.conf CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% -0.00s

avrdude: Device signature = 0x1e9801

avrdude: safemode: Fuses OK (H:FD, E:D8, L:FF)

avrdude done. Thank you.

E:\Work>echo off

E:\Work>

Apparently the avrdude command to set the fuses is being reported as successful, but the following command shows the efuse and hfuse values reversed: efuse should be FD but is D8 and hfuse should be D8 but is FD. I thought maybe they weren't actually being set, but I changed the values and again the display shows them being reversed. What do I believe?

You're fine, it's a bug in avrdude.