DFU: fix transitions between runtime and DFU mode

we now always go through a processor reset to avoid any state that might
be persistent/left-over during the switch.
diff --git a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h
index b49cce0..dd0e5e2 100644
--- a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h
+++ b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h
@@ -86,12 +86,11 @@
 /* magic value we use during boot to detect if we should start in DFU
  * mode or runtime mode */
 #define USB_DFU_MAGIC	0xDFDFDFDF
-/* RAM address for this magic value above */
-#define USB_DFU_MAGIC_ADDR	IRAM_ADDR
 
 /* The API between the core DFU handler and the board/soc specific code */
 
 struct dfudata {
+	uint32_t magic;
 	uint8_t status;
 	uint32_t state;
 	int past_manifest;