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

Reply via email to