We need to be able to upgrade the firmware of the Atmel SAME70Q21. The SAME70Q21 needs to have two parts assigned in flash. One for the running and one for the upgrade. A bootloader should take care of the upgrade (switch) so it is be able to survive a power outage during the upgrade. A CRC and some other smart things should be used to decide if upgrading is needed and if the upgrade succeeded. Code needs to be well structured, abstracted and documented. Including proper linker scripts so that we can easily integrate into our overall project.