This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Hoernchen gerrit-no-reply at lists.osmocom.orgHoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/22529 ) Change subject: dfu: let the device reset itself ...................................................................... dfu: let the device reset itself dfu flashing the sam attache to port 1 was easy, but i was never able to get the sam at port 4 into dfu mode. Changing the firmware so it resets itself just like the octsim instead of starting a timer and waiting for a reset form the host made it work every time for me. Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd --- M firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h M firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c 2 files changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/29/22529/1 diff --git a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h index 5bd8684..84ce14e 100644 --- a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h +++ b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h @@ -39,8 +39,8 @@ #define DFU_FUNC_DESC { \ .bLength = USB_DT_DFU_SIZE, \ .bDescriptorType = USB_DT_DFU, \ - .bmAttributes = USB_DFU_CAN_UPLOAD | USB_DFU_CAN_DOWNLOAD, \ - .wDetachTimeOut = 0xff00, \ + .bmAttributes = USB_DFU_CAN_UPLOAD | USB_DFU_CAN_DOWNLOAD | USB_DFU_WILL_DETACH, \ + .wDetachTimeOut = 0x00, \ .wTransferSize = BOARD_DFU_PAGE_SIZE, \ .bcdDFUVersion = 0x0100, \ } diff --git a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c index 4467cc9..f2cf64c 100644 --- a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c +++ b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c @@ -165,6 +165,8 @@ * will then trigger DFURT_SwitchToDFU() below */ TRACE_DEBUG("\r\n====dfu_detach\n\r"); g_dfu->state = DFU_STATE_appDETACH; + USBD_Write(0, 0, 0, 0, 0); + DFURT_SwitchToDFU(); ret = DFU_RET_ZLP; goto out; break; @@ -209,13 +211,14 @@ void DFURT_SwitchToDFU(void) { + __disable_irq(); + /* store the magic value that the DFU loader can detect and * activate itself, rather than boot into the application */ g_dfu->magic = USB_DFU_MAGIC; - + __DMB(); /* Disconnect the USB by removing the pull-up */ USBD_Disconnect(); - __disable_irq(); /* reset the processor, we will start execution with the * ResetVector of the bootloader */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/22529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd Gerrit-Change-Number: 22529 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen <ewild at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210129/04e11883/attachment.htm>