-
-
Notifications
You must be signed in to change notification settings - Fork 85
Reference RevE Bootloader
NOTE: this is NOT required to flash the RevE rebooted with a new firmware from a regular user perspective. Please go to "Flashing" section of this Wiki menu if you want to flash a new firmware to RevE rebooted.
The problem is that RevE rebooted as we buy them are stuffed with a modified bootloader. Such bootloader does not accept firmware flashing through USB with standard DFU tools, and require compiled firmwares to be encrypted/scrambled, with @slurdge crypto_operations.py
tool in this repo for OSX and GNU/Linux, or with original manufacturer-provided Windows binaries.
This describes the 'reverse-engineering' current work on original RevE bootloader, in order to find a way to build and flash it ourselves through USB, and fully unlock the RevE. This is mainly based on issue #11 for now.
- The original bootloader in RevE is an Atmel-provided ATxmega32A4U DFU USB bootloader source, with changed default ISP I/O pining (PORTA instead of PORTC, and PIN6 instead of PIN3), and which is then patched, using script
Firmware/Atmel DFU Bootloader/GenerateBootloader.bat
in this repo; - The result of this previous operation is the original compiled RevE bootloader, as found in
Firmware/Compiled/ChameleonMiniRDV2.0_ATxmega32A4U.hex
in this repo; - The compiled Atmel-provided ATxmega32A4U DFU USB bootloader source, with ISP I/O pining adapted for RevE, as it is supposed to be fed in
GenerateBootloader.bat
, is found asRevE-atxmega32a4u_104_modified.hex
in emsec ChameleonMini repo. It would have to be renamed asatxmega32a4u_104_PA6.hex
to work withGenerateBootloader.bat
; - We can access, and compile, the Atmel-provided ATxmega32A4U DFU USB bootloader source. Source is packed in ZIP file in this page from Atmel technical support centre. The source is originally attached to a Document of type "Application Note", called "Atmel AVR1916: USB DFU Boot Loader for XMEGA", which is notably linked in ATxmega32A4U product page;
- Compiled need to be 4Kbytes max in size. As so, it seems that the IAR AVR Workbench software/compiler is needed to compile the bootloader, as it is the only one that is able to produce such size. The software is expensive, but a free evaluation version is available, provided the compiled object is < 4K;
- @exander77 already provided a patch for Atmel-provided ATxmega32A4U DFU USB bootloader source to reflect RevE non-default ISP I/O pining, in this commit from his repo.
It is as so possible to flash a patched and compiled Atmel-provided ATxmega32A4U DFU USB bootloader into RevE rebooted, so that it is then fully unlocked and accepts to be firmware-flashed with standard DFU methods through USB.
For now, it is only possible to flash the patched and compiled Atmel-provided ATxmega32A4U DFU USB bootloader using a hardware interface, like described here.
Home
Getting started
Basic usage
Supported cards/config
Windows
Linux
OSX
Development Environment
Terminal commands
Slots configuration
Hardware summary
Program with AVRISP mkII
Program with modified USBASP
Reference fuses and lockbits
Reference SPI Flash
RevE Bootloader