Hi Alexis,
On 8/1/23 10:09, Alexis Lothoré wrote:
Hi,
I am currently using an ATSAMA5D27-WLSOM1-EK1. This boards embeds an
ATSAMA5D27-WLSOM1, which in turns holds an ATSAMA5D27 and a 8MB QSPI flash. I
have been wanting to program u-boot in the QSPI flash thanks to DFU, since the
board is able to boot from QSPI and is supported in uboot. To do so, I have
executed the following steps:
- check out recent uboot version (2023.07.02, but issed described below is
observed on master too)
- load sama5d27_wlsom1_ek_qspiflash_defconfig
- tune the configuration to enable DFU:
- CONFIG_CMD_DFU=y
- CONFIG_DFU_SF=y
- CONFIG_USB_GADGET_DOWNLOAD=y
- build uboot, upload and run it onto external ram thanks to snagrecover ([1]).
- running "bdinfo" shows that board is properly defined/recognized
- "sf probe" properly detects the qspi flash chip
- in u-boot console, configure dfu:
- setenv dfu_alt_info uboot raw 0 0x80000
- start DFU:
- dfu 0 sf 2:0
Unfortunately, this step systematically and immediately leads to a data abort
with the following log:
=> dfu 0 sf 2:0
data abort
pc : [<2fda9ee0>] lr : [<2fd8dc08>]
reloc pc : [<26f3fee0>]lr : [<26f23c08>]
sp : 2f963fe8 ip : 2f9829cc fp : 00000000
r10: 2fde1cd9 r9 : 2f969e80 r8 : 2fdfc304
r7 : 00000000 r6 : 00000000 r5 : 2fdf3034 r4 : 2f982948
r3 : 0a299cfc r2 : ffffffec r1 : 00000000 r0 : 00000000
Flags: nzCv IRQs off FIQs off Mode SVC_32
Code: e5843058 e5950004 e3a01000 e5903008 (e5933008)
Resetting CPU ...
resetting ...
System reset not supported on this platform
### ERROR ### Please RESET the board ###
A quick translation with addr2line shows that the data abort occurs in
include/linux/usb/gagdet.h, in usb_ep_alloc_request, likely because of ep being
NULL, which seems confirmed by adding some custom logs in both
usb_ep_alloc_request and its caller (composite_bind). Before digging further,
does anyone have successfully used DFU on SAMA5D2 boards (and if so, am I
missing something in the configuration) ? Or does this data abort show that some
support is still missing to make it work for SAMA5D2 ?
I believe this is related to the gadget more than DFU itself.
Zixun LI (in CC) has attempted gadget on this platform at some point.
Mihai (also in CC) has did some tests with USB on this platform as well.
Cristian has more knowledge of the USB implementation on sama5d2.
Eugen
Kind regards,
Alexis
[1] https://github.com/bootlin/snagboot