From 1e162f52d92282cd0dce7c828793b9a938d26547 Mon Sep 17 00:00:00 2001 From: Adrien Descamps Date: Fri, 29 Jul 2016 21:53:44 +0200 Subject: [PATCH 1/2] Set unused bits of extended fuse to 1 Avrdude has changed the way it handle unused bits in the extended fuse for atmega 328 and atmega 168, they are now at 1 instead of 0. See http://svn.savannah.nongnu.org/viewvc?view=rev&root=avrdude&revision=1335 for more info. This causes avrdude to fail when one try to write the fuse with the unused bits at 0, because the value it read back is not the same than the one it tried to write. This commit fixes the fuse value for all boards that use atmega328 or 168. --- hardware/arduino/avr/boards.txt | 34 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/hardware/arduino/avr/boards.txt b/hardware/arduino/avr/boards.txt index 7b55a6d98b8..eda90bfa9f7 100644 --- a/hardware/arduino/avr/boards.txt +++ b/hardware/arduino/avr/boards.txt @@ -66,7 +66,7 @@ uno.upload.speed=115200 uno.bootloader.tool=avrdude uno.bootloader.low_fuses=0xFF uno.bootloader.high_fuses=0xDE -uno.bootloader.extended_fuses=0x05 +uno.bootloader.extended_fuses=0xFD uno.bootloader.unlock_bits=0x3F uno.bootloader.lock_bits=0x0F uno.bootloader.file=optiboot/optiboot_atmega328.hex @@ -103,7 +103,7 @@ diecimila.menu.cpu.atmega328.upload.maximum_data_size=2048 diecimila.menu.cpu.atmega328.upload.speed=57600 diecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA -diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0x05 +diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0xFD diecimila.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex diecimila.menu.cpu.atmega328.build.mcu=atmega328p @@ -117,7 +117,7 @@ diecimila.menu.cpu.atmega168.upload.maximum_data_size=1024 diecimila.menu.cpu.atmega168.upload.speed=19200 diecimila.menu.cpu.atmega168.bootloader.high_fuses=0xdd -diecimila.menu.cpu.atmega168.bootloader.extended_fuses=0x00 +diecimila.menu.cpu.atmega168.bootloader.extended_fuses=0xF8 diecimila.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex diecimila.menu.cpu.atmega168.build.mcu=atmega168 @@ -148,7 +148,7 @@ nano.menu.cpu.atmega328.upload.speed=57600 nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA -nano.menu.cpu.atmega328.bootloader.extended_fuses=0x05 +nano.menu.cpu.atmega328.bootloader.extended_fuses=0xFD nano.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex nano.menu.cpu.atmega328.build.mcu=atmega328p @@ -163,7 +163,7 @@ nano.menu.cpu.atmega168.upload.speed=19200 nano.menu.cpu.atmega168.bootloader.low_fuses=0xff nano.menu.cpu.atmega168.bootloader.high_fuses=0xdd -nano.menu.cpu.atmega168.bootloader.extended_fuses=0x00 +nano.menu.cpu.atmega168.bootloader.extended_fuses=0xF8 nano.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex nano.menu.cpu.atmega168.build.mcu=atmega168 @@ -424,7 +424,7 @@ mini.menu.cpu.atmega328.upload.maximum_data_size=2048 mini.menu.cpu.atmega328.upload.speed=115200 mini.menu.cpu.atmega328.bootloader.high_fuses=0xd8 -mini.menu.cpu.atmega328.bootloader.extended_fuses=0x05 +mini.menu.cpu.atmega328.bootloader.extended_fuses=0xFD mini.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328-Mini.hex mini.menu.cpu.atmega328.build.mcu=atmega328p @@ -438,7 +438,7 @@ mini.menu.cpu.atmega168.upload.maximum_data_size=1024 mini.menu.cpu.atmega168.upload.speed=19200 mini.menu.cpu.atmega168.bootloader.high_fuses=0xdd -mini.menu.cpu.atmega168.bootloader.extended_fuses=0x00 +mini.menu.cpu.atmega168.bootloader.extended_fuses=0xF8 mini.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex mini.menu.cpu.atmega168.build.mcu=atmega168 @@ -480,7 +480,7 @@ fio.upload.speed=57600 fio.bootloader.tool=avrdude fio.bootloader.low_fuses=0xFF fio.bootloader.high_fuses=0xDA -fio.bootloader.extended_fuses=0x05 +fio.bootloader.extended_fuses=0xFD fio.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex fio.bootloader.unlock_bits=0x3F fio.bootloader.lock_bits=0x0F @@ -517,7 +517,7 @@ bt.menu.cpu.atmega328.upload.maximum_size=28672 bt.menu.cpu.atmega328.upload.maximum_data_size=2048 bt.menu.cpu.atmega328.bootloader.high_fuses=0xd8 -bt.menu.cpu.atmega328.bootloader.extended_fuses=0x05 +bt.menu.cpu.atmega328.bootloader.extended_fuses=0xFD bt.menu.cpu.atmega328.bootloader.file=bt/ATmegaBOOT_168_atmega328_bt.hex bt.menu.cpu.atmega328.build.mcu=atmega328p @@ -529,7 +529,7 @@ bt.menu.cpu.atmega168.upload.maximum_size=14336 bt.menu.cpu.atmega168.upload.maximum_data_size=1024 bt.menu.cpu.atmega168.bootloader.high_fuses=0xdd -bt.menu.cpu.atmega168.bootloader.extended_fuses=0x00 +bt.menu.cpu.atmega168.bootloader.extended_fuses=0xF8 bt.menu.cpu.atmega168.bootloader.file=bt/ATmegaBOOT_168.hex bt.menu.cpu.atmega168.build.mcu=atmega168 @@ -595,7 +595,7 @@ lilypad.menu.cpu.atmega328.upload.speed=57600 lilypad.menu.cpu.atmega328.bootloader.low_fuses=0xFF lilypad.menu.cpu.atmega328.bootloader.high_fuses=0xDA -lilypad.menu.cpu.atmega328.bootloader.extended_fuses=0x05 +lilypad.menu.cpu.atmega328.bootloader.extended_fuses=0xFD lilypad.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex lilypad.menu.cpu.atmega328.build.mcu=atmega328p @@ -610,7 +610,7 @@ lilypad.menu.cpu.atmega168.upload.speed=19200 lilypad.menu.cpu.atmega168.bootloader.low_fuses=0xe2 lilypad.menu.cpu.atmega168.bootloader.high_fuses=0xdd -lilypad.menu.cpu.atmega168.bootloader.extended_fuses=0x00 +lilypad.menu.cpu.atmega168.bootloader.extended_fuses=0xF8 lilypad.menu.cpu.atmega168.bootloader.file=lilypad/LilyPadBOOT_168.hex lilypad.menu.cpu.atmega168.build.mcu=atmega168 @@ -640,7 +640,7 @@ pro.menu.cpu.16MHzatmega328.upload.speed=57600 pro.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF pro.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xDA -pro.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x05 +pro.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0xFD pro.menu.cpu.16MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex pro.menu.cpu.16MHzatmega328.build.mcu=atmega328p @@ -656,7 +656,7 @@ pro.menu.cpu.8MHzatmega328.upload.speed=57600 pro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xFF pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA -pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0x05 +pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0xFD pro.menu.cpu.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex pro.menu.cpu.8MHzatmega328.build.mcu=atmega328p @@ -672,7 +672,7 @@ pro.menu.cpu.16MHzatmega168.upload.speed=19200 pro.menu.cpu.16MHzatmega168.bootloader.low_fuses=0xff pro.menu.cpu.16MHzatmega168.bootloader.high_fuses=0xdd -pro.menu.cpu.16MHzatmega168.bootloader.extended_fuses=0x00 +pro.menu.cpu.16MHzatmega168.bootloader.extended_fuses=0xF8 pro.menu.cpu.16MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex pro.menu.cpu.16MHzatmega168.build.mcu=atmega168 @@ -688,7 +688,7 @@ pro.menu.cpu.8MHzatmega168.upload.speed=19200 pro.menu.cpu.8MHzatmega168.bootloader.low_fuses=0xc6 pro.menu.cpu.8MHzatmega168.bootloader.high_fuses=0xdd -pro.menu.cpu.8MHzatmega168.bootloader.extended_fuses=0x00 +pro.menu.cpu.8MHzatmega168.bootloader.extended_fuses=0xF8 pro.menu.cpu.8MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_pro_8MHz.hex pro.menu.cpu.8MHzatmega168.build.mcu=atmega168 @@ -721,7 +721,7 @@ atmegang.menu.cpu.atmega168.upload.maximum_data_size=1024 atmegang.menu.cpu.atmega168.bootloader.low_fuses=0xff atmegang.menu.cpu.atmega168.bootloader.high_fuses=0xdd -atmegang.menu.cpu.atmega168.bootloader.extended_fuses=0x00 +atmegang.menu.cpu.atmega168.bootloader.extended_fuses=0xF8 atmegang.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex atmegang.menu.cpu.atmega168.build.mcu=atmega168 From cb4c269663e26e0ae0e8f4a0168e418495b6affb Mon Sep 17 00:00:00 2001 From: Adrien Descamps Date: Sun, 31 Jul 2016 11:21:50 +0200 Subject: [PATCH 2/2] fix extended fuse bits for ethernet board Forgot to fix ethernet board in previous commit --- hardware/arduino/avr/boards.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hardware/arduino/avr/boards.txt b/hardware/arduino/avr/boards.txt index eda90bfa9f7..0d0f88f2d2f 100644 --- a/hardware/arduino/avr/boards.txt +++ b/hardware/arduino/avr/boards.txt @@ -456,7 +456,7 @@ ethernet.upload.speed=115200 ethernet.bootloader.tool=avrdude ethernet.bootloader.low_fuses=0xff ethernet.bootloader.high_fuses=0xde -ethernet.bootloader.extended_fuses=0x05 +ethernet.bootloader.extended_fuses=0xFD ethernet.bootloader.file=optiboot/optiboot_atmega328.hex ethernet.bootloader.unlock_bits=0x3F ethernet.bootloader.lock_bits=0x0F