To use the above, if you are using my bootloader uploader sketch ( http://www.gammon.com.au/forum/?id=11635 ) you need to change the file "bootloader_atmega1280.h" to read:
// File = optiboot_atmega1280.hex
// Loader start: 1FC00, length: 1024
// MD5 sum = AC F8 70 89 5B 0B BE 36 34 12 BC 66 E7 89 63 7D
byte PROGMEM optiboot_atmega1280_hex [] = {
0x11, 0x24, 0x84, 0xB7, 0x14, 0xBE, 0x81, 0xFF, 0xF2, 0xD0, 0x85, 0xE0, 0x80, 0x93, 0x81, 0x00,
0x82, 0xE0, 0x80, 0x93, 0xC0, 0x00, 0x88, 0xE1, 0x80, 0x93, 0xC1, 0x00, 0x86, 0xE0, 0x80, 0x93,
0xC2, 0x00, 0x80, 0xE1, 0x80, 0x93, 0xC4, 0x00, 0x8E, 0xE0, 0xCB, 0xD0, 0x27, 0x9A, 0x86, 0xE0,
0x20, 0xE3, 0x3C, 0xEF, 0x91, 0xE0, 0x30, 0x93, 0x85, 0x00, 0x20, 0x93, 0x84, 0x00, 0x96, 0xBB,
0xB0, 0x9B, 0xFE, 0xCF, 0x1F, 0x9A, 0xA8, 0x95, 0x81, 0x50, 0xA9, 0xF7, 0xCC, 0x24, 0xDD, 0x24,
0x99, 0x24, 0x93, 0x94, 0xA5, 0xE0, 0xBA, 0x2E, 0xF1, 0xE1, 0xAF, 0x2E, 0xA6, 0xD0, 0x81, 0x34,
0x61, 0xF4, 0xA3, 0xD0, 0x08, 0x2F, 0xB3, 0xD0, 0x02, 0x38, 0x11, 0xF0, 0x01, 0x38, 0x11, 0xF4,
0x84, 0xE0, 0x01, 0xC0, 0x83, 0xE0, 0x91, 0xD0, 0x8D, 0xC0, 0x82, 0x34, 0x11, 0xF4, 0x84, 0xE1,
0x03, 0xC0, 0x85, 0x34, 0x19, 0xF4, 0x85, 0xE0, 0xAA, 0xD0, 0x84, 0xC0, 0x85, 0x35, 0xA1, 0xF4,
0x8C, 0xD0, 0x08, 0x2F, 0x10, 0xE0, 0x89, 0xD0, 0xE8, 0x2E, 0xFF, 0x24, 0xFE, 0x2C, 0xEE, 0x24,
0xE0, 0x2A, 0xF1, 0x2A, 0x8F, 0x2D, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x8B, 0xBF, 0xEE, 0x0C,
0xFF, 0x1C, 0x8D, 0xD0, 0x67, 0x01, 0x6E, 0xC0, 0x86, 0x35, 0x21, 0xF4, 0x84, 0xE0, 0x8F, 0xD0,
0x80, 0xE0, 0xD9, 0xCF, 0x84, 0x36, 0x09, 0xF0, 0x42, 0xC0, 0x6F, 0xD0, 0x6E, 0xD0, 0x08, 0x2F,
0x6C, 0xD0, 0x80, 0xE0, 0xC8, 0x16, 0x80, 0xEE, 0xD8, 0x06, 0x20, 0xF4, 0x83, 0xE0, 0xF6, 0x01,
0x87, 0xBF, 0xE8, 0x95, 0xC0, 0xE0, 0xD2, 0xE0, 0x60, 0xD0, 0x89, 0x93, 0x0C, 0x17, 0xE1, 0xF7,
0xF0, 0xE0, 0xCF, 0x16, 0xF0, 0xEE, 0xDF, 0x06, 0x20, 0xF0, 0x83, 0xE0, 0xF6, 0x01, 0x87, 0xBF,
0xE8, 0x95, 0x65, 0xD0, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xA6, 0x01, 0xA0, 0xE0, 0xB2, 0xE0,
0x2C, 0x91, 0x30, 0xE0, 0x11, 0x96, 0x8C, 0x91, 0x11, 0x97, 0x90, 0xE0, 0x98, 0x2F, 0x88, 0x27,
0x82, 0x2B, 0x93, 0x2B, 0x12, 0x96, 0xFA, 0x01, 0x0C, 0x01, 0x97, 0xBE, 0xE8, 0x95, 0x11, 0x24,
0x4E, 0x5F, 0x5F, 0x4F, 0xF3, 0xE0, 0xA0, 0x30, 0xBF, 0x07, 0x51, 0xF7, 0xF6, 0x01, 0xB7, 0xBE,
0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xA7, 0xBE, 0xE8, 0x95, 0x23, 0xC0, 0x84, 0x37,
0xA1, 0xF4, 0x2B, 0xD0, 0x2A, 0xD0, 0xE8, 0x2E, 0x28, 0xD0, 0x39, 0xD0, 0xE6, 0x01, 0x0E, 0x2D,
0xFE, 0x01, 0x86, 0x91, 0x1A, 0xD0, 0x21, 0x96, 0x01, 0x50, 0xD1, 0xF7, 0x08, 0x94, 0xC1, 0x1C,
0xD1, 0x1C, 0xEA, 0x94, 0xCE, 0x0C, 0xD1, 0x1C, 0x0D, 0xC0, 0x85, 0x37, 0x31, 0xF4, 0x27, 0xD0,
0x8E, 0xE1, 0x0B, 0xD0, 0x87, 0xE9, 0x09, 0xD0, 0x75, 0xCF, 0x81, 0x35, 0x11, 0xF4, 0x88, 0xE0,
0x18, 0xD0, 0x1D, 0xD0, 0x80, 0xE1, 0x01, 0xD0, 0x61, 0xCF, 0x98, 0x2F, 0x80, 0x91, 0xC0, 0x00,
0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xC6, 0x00, 0x08, 0x95, 0x80, 0x91, 0xC0, 0x00, 0x87, 0xFF,
0xFC, 0xCF, 0x80, 0x91, 0xC0, 0x00, 0x84, 0xFD, 0x01, 0xC0, 0xA8, 0x95, 0x80, 0x91, 0xC6, 0x00,
0x08, 0x95, 0xE0, 0xE6, 0xF0, 0xE0, 0x98, 0xE1, 0x90, 0x83, 0x80, 0x83, 0x08, 0x95, 0xED, 0xDF,
0x80, 0x32, 0x19, 0xF0, 0x88, 0xE0, 0xF5, 0xDF, 0xFF, 0xCF, 0x84, 0xE1, 0xDE, 0xCF, 0x1F, 0x93,
0x18, 0x2F, 0xE3, 0xDF, 0x11, 0x50, 0xE9, 0xF7, 0xF2, 0xDF, 0x1F, 0x91, 0x08, 0x95, 0x80, 0xE0,
0xE8, 0xDF, 0xEE, 0x27, 0xFF, 0x27, 0x09, 0x94,
}; // end of optiboot_atmega1280_hex
Also in the main sketch change these lines:
// Atmega2560 family
{ { 0x1E, 0x96, 0x08 }, "ATmega640", 64 * kb, 1 * kb },
{ { 0x1E, 0x97, 0x03 }, "ATmega1280", 128 * kb, 1 * kb,
ATmegaBOOT_168_atmega1280_hex,
0x1F000, // start address
sizeof ATmegaBOOT_168_atmega1280_hex,
256, // page size (for committing)
0xFF, // fuse low byte: external clock, max start-up time
0xDA, // fuse high byte: SPI enable, boot into bootloader, 4096 byte bootloader
0xF5, // fuse extended byte: brown-out detection at 2.7V
0x2F }, // lock bits: SPM is not allowed to write to the Boot Loader section.
to read:
// Atmega2560 family
{ { 0x1E, 0x96, 0x08 }, "ATmega640", 64 * kb, 1 * kb },
{ { 0x1E, 0x97, 0x03 }, "ATmega1280", 128 * kb, 1 * kb,
optiboot_atmega1280_hex,
0x1FC00, // start address
sizeof optiboot_atmega1280_hex,
256, // page size (for committing)
0xFF, // fuse low byte: external clock, max start-up time
0xDE, // fuse high byte: SPI enable, boot into bootloader, 1280 byte bootloader
0xF5, // fuse extended byte: brown-out detection at 2.7V
0x2F }, // lock bits: SPM is not allowed to write to the Boot Loader section.
The changes above allow for the different bootloader name, start address, size, and fuses.
If possible, can you confirm that works OK? Then I can commit the changes.